Add rnib functionality 45/6345/2
authoryc999.jang <yc999.jang@samsung.com>
Thu, 10 Jun 2021 10:04:18 +0000 (19:04 +0900)
committeryc999.jang <yc999.jang@samsung.com>
Fri, 18 Jun 2021 09:08:35 +0000 (18:08 +0900)
- The *_pb2.py files were added that compiled by protoc
- `get_list_gnb_ids`, `get_list_enb_ids` added to the _BaseXapp
- rnib repo added as a submodule

Issue-ID: RIC-788

Signed-off-by: yc999.jang <yc999.jang@samsung.com>
Change-Id: Id5c3392592422597b939fccda902c04369566e9e

26 files changed:
.coveragerc [new file with mode: 0644]
.gitmodules [new file with mode: 0644]
Dockerfile-Unit-Test
docs/developer-guide.rst
docs/index.rst
docs/release-notes.rst
docs/rnib.rst [new file with mode: 0644]
nodeb-rnib [new submodule]
ricxappframe/constants.py [new file with mode: 0644]
ricxappframe/entities/__init__.py [new file with mode: 0644]
ricxappframe/entities/rnib/__init__.py [new file with mode: 0644]
ricxappframe/entities/rnib/additional_cell_information_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/cell_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/cells_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/enb_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/gnb_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/nb_identity_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/nodeb_info_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/ran_function_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/ran_load_information_pb2.py [new file with mode: 0644]
ricxappframe/entities/rnib/x2_setup_failure_response_pb2.py [new file with mode: 0644]
ricxappframe/xapp_frame.py
setup.py
tests/conftest.py
tests/test_xapps.py
tox.ini

diff --git a/.coveragerc b/.coveragerc
new file mode 100644 (file)
index 0000000..00d1de4
--- /dev/null
@@ -0,0 +1,4 @@
+[run]
+omit =
+    # omit compiled protobuf files
+    ricxappframe/entities/*
diff --git a/.gitmodules b/.gitmodules
new file mode 100644 (file)
index 0000000..29a6d39
--- /dev/null
@@ -0,0 +1,3 @@
+[submodule "nodeb-rnib"]
+       path = nodeb-rnib
+       url = https://gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib
index ee754ce..6e6497d 100644 (file)
@@ -28,7 +28,7 @@ RUN pip install --upgrade pip && pip install tox
 # copies
 COPY ricxappframe/ /tmp/ricxappframe
 COPY tests/ /tmp/tests
-COPY setup.py tox.ini LICENSE.txt /tmp/
+COPY setup.py tox.ini LICENSE.txt .coveragerc /tmp/
 WORKDIR /tmp
 
 # Run the unit tests
index dc03c77..6892d15 100644 (file)
@@ -17,6 +17,7 @@ these packages provided by the O-RAN-SC project and third parties:
 * msgpack
 * mdclogpy
 * ricsdl
+* protobuf
 
 
 Version bumping the framework
index a3e3f27..74bc561 100644 (file)
@@ -15,6 +15,7 @@ xApp Python Framework
    user-guide.rst
    rmr_api.rst
    alarm_api.rst
+   rnib.rst
    developer-guide.rst
    release-notes.rst
 
index 1c06fc1..b35285e 100644 (file)
@@ -11,6 +11,11 @@ The format is based on `Keep a Changelog <http://keepachangelog.com/>`__
 and this project adheres to `Semantic Versioning <http://semver.org/>`__.
 
 
+[2.1.0] - 2021-06-18
+--------------------
+* Add `RNIB <https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/nodeb-rnib>`_ feature (`RIC-788 <https://jira.o-ran-sc.org/browse/RIC-788>`_)
+
+
 [2.0.0] - 2021-06-14
 --------------------
 * Add Xapp registration/deregistration APIs (`RIC-706 <https://jira.o-ran-sc.org/browse/RIC-706>`_)
diff --git a/docs/rnib.rst b/docs/rnib.rst
new file mode 100644 (file)
index 0000000..ec55bff
--- /dev/null
@@ -0,0 +1,46 @@
+..
+..  Copyright (c) 2021 Samsung Electronics.
+..
+..  Licensed under the Creative Commons Attribution 4.0 International
+..  Public License (the "License"); you may not use this file except
+..  in compliance with the License. You may obtain a copy of the License at
+..
+..    https://creativecommons.org/licenses/by/4.0/
+..
+..  Unless required by applicable law or agreed to in writing, documentation
+..  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.
+..
+
+
+RNIB(Radio network information base)
+====================================
+
+RNIB information is stored in SDL by E2mgr during the E2SETUP process.
+It is saved as protobuf serialized, see [nodeb-rnib](https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/nodeb-rnib) for .proto definition.
+
+The .proto files defines the message format is located in the rnib repo.
+The rnib repo is set to submodule.
+
+**How to compile .proto files**
+
+Prerequisite
+
+* protoc (v3.6.1)
+
+.. code-block:: bash
+
+    $ PYTHON_OUT="ricxappframe/entities/rnib"
+    $ RNIB_PROTO="nodeb-rnib/entities"
+    $ protoc --python_out="${PYTHON_OUT}" \
+             --proto_path="${RNIB_PROTO}" \
+             $(find "${RNIB_PROTO}" -iname "*.proto" -printf "%f ")
+    $ sed -i -E 's/^import.*_pb2/from . \0/' ${PYTHON_OUT}/*_pb2.py
+
+**The reason why sed is needed**
+
+*To use relative imports in generated modules* : `protobuf issue
+<https://github.com/protocolbuffers/protobuf/issues/1491>`_
diff --git a/nodeb-rnib b/nodeb-rnib
new file mode 160000 (submodule)
index 0000000..7ea1548
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 7ea1548d526b8fd834162cd13b207dc1abaea558
diff --git a/ricxappframe/constants.py b/ricxappframe/constants.py
new file mode 100644 (file)
index 0000000..4ffe17e
--- /dev/null
@@ -0,0 +1,12 @@
+from dataclasses import dataclass
+
+
+@dataclass(frozen=True)
+class SDLNamespaces:
+    """
+    This dataclass has namespace information about the well-known usecase.
+    """
+    E2_MANAGER = "e2Manager"  # Namespace where rnib information is stored
+
+
+sdl_namespaces = SDLNamespaces()
diff --git a/ricxappframe/entities/__init__.py b/ricxappframe/entities/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ricxappframe/entities/rnib/__init__.py b/ricxappframe/entities/rnib/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ricxappframe/entities/rnib/additional_cell_information_pb2.py b/ricxappframe/entities/rnib/additional_cell_information_pb2.py
new file mode 100644 (file)
index 0000000..64d575d
--- /dev/null
@@ -0,0 +1,118 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: additional_cell_information.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='additional_cell_information.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n!additional_cell_information.proto\x12\x08\x65ntities\"\xec\x01\n\x19\x41\x64\x64itionalCellInformation\x12\x15\n\rcell_latitude\x18\x01 \x01(\x02\x12\x16\n\x0e\x63\x65ll_longitude\x18\x02 \x01(\x02\x12\x16\n\x0e\x61ntenna_height\x18\x03 \x01(\x02\x12!\n\x19\x61ntenna_azimuth_direction\x18\x04 \x01(\x02\x12\x1a\n\x12\x61ntenna_tilt_angle\x18\x05 \x01(\x02\x12\x1c\n\x14\x61ntenna_max_transmit\x18\x06 \x01(\x02\x12\x18\n\x10\x61ntenna_max_gain\x18\x07 \x01(\x02\x12\x11\n\tsector_id\x18\x08 \x01(\rb\x06proto3')
+)
+
+
+
+
+_ADDITIONALCELLINFORMATION = _descriptor.Descriptor(
+  name='AdditionalCellInformation',
+  full_name='entities.AdditionalCellInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cell_latitude', full_name='entities.AdditionalCellInformation.cell_latitude', index=0,
+      number=1, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cell_longitude', full_name='entities.AdditionalCellInformation.cell_longitude', index=1,
+      number=2, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='antenna_height', full_name='entities.AdditionalCellInformation.antenna_height', index=2,
+      number=3, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='antenna_azimuth_direction', full_name='entities.AdditionalCellInformation.antenna_azimuth_direction', index=3,
+      number=4, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='antenna_tilt_angle', full_name='entities.AdditionalCellInformation.antenna_tilt_angle', index=4,
+      number=5, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='antenna_max_transmit', full_name='entities.AdditionalCellInformation.antenna_max_transmit', index=5,
+      number=6, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='antenna_max_gain', full_name='entities.AdditionalCellInformation.antenna_max_gain', index=6,
+      number=7, type=2, cpp_type=6, label=1,
+      has_default_value=False, default_value=float(0),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='sector_id', full_name='entities.AdditionalCellInformation.sector_id', index=7,
+      number=8, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=48,
+  serialized_end=284,
+)
+
+DESCRIPTOR.message_types_by_name['AdditionalCellInformation'] = _ADDITIONALCELLINFORMATION
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+AdditionalCellInformation = _reflection.GeneratedProtocolMessageType('AdditionalCellInformation', (_message.Message,), dict(
+  DESCRIPTOR = _ADDITIONALCELLINFORMATION,
+  __module__ = 'additional_cell_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.AdditionalCellInformation)
+  ))
+_sym_db.RegisterMessage(AdditionalCellInformation)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/cell_pb2.py b/ricxappframe/entities/rnib/cell_pb2.py
new file mode 100644 (file)
index 0000000..bd22582
--- /dev/null
@@ -0,0 +1,126 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: cell.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import gnb_pb2 as gnb__pb2
+from . import enb_pb2 as enb__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='cell.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\ncell.proto\x12\x08\x65ntities\x1a\tgnb.proto\x1a\tenb.proto\"\xce\x01\n\x04\x43\x65ll\x12!\n\x04type\x18\x01 \x01(\x0e\x32\x13.entities.Cell.Type\x12\x34\n\x10served_cell_info\x18\x02 \x01(\x0b\x32\x18.entities.ServedCellInfoH\x00\x12\x30\n\x0eserved_nr_cell\x18\x03 \x01(\x0b\x32\x16.entities.ServedNRCellH\x00\"3\n\x04Type\x12\x10\n\x0cUNKNOWN_CELL\x10\x00\x12\x0c\n\x08LTE_CELL\x10\x01\x12\x0b\n\x07NR_CELL\x10\x02\x42\x06\n\x04\x63\x65llb\x06proto3')
+  ,
+  dependencies=[gnb__pb2.DESCRIPTOR,enb__pb2.DESCRIPTOR,])
+
+
+
+_CELL_TYPE = _descriptor.EnumDescriptor(
+  name='Type',
+  full_name='entities.Cell.Type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_CELL', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='LTE_CELL', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NR_CELL', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=194,
+  serialized_end=245,
+)
+_sym_db.RegisterEnumDescriptor(_CELL_TYPE)
+
+
+_CELL = _descriptor.Descriptor(
+  name='Cell',
+  full_name='entities.Cell',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='entities.Cell.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='served_cell_info', full_name='entities.Cell.served_cell_info', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='served_nr_cell', full_name='entities.Cell.served_nr_cell', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _CELL_TYPE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='cell', full_name='entities.Cell.cell',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=47,
+  serialized_end=253,
+)
+
+_CELL.fields_by_name['type'].enum_type = _CELL_TYPE
+_CELL.fields_by_name['served_cell_info'].message_type = enb__pb2._SERVEDCELLINFO
+_CELL.fields_by_name['served_nr_cell'].message_type = gnb__pb2._SERVEDNRCELL
+_CELL_TYPE.containing_type = _CELL
+_CELL.oneofs_by_name['cell'].fields.append(
+  _CELL.fields_by_name['served_cell_info'])
+_CELL.fields_by_name['served_cell_info'].containing_oneof = _CELL.oneofs_by_name['cell']
+_CELL.oneofs_by_name['cell'].fields.append(
+  _CELL.fields_by_name['served_nr_cell'])
+_CELL.fields_by_name['served_nr_cell'].containing_oneof = _CELL.oneofs_by_name['cell']
+DESCRIPTOR.message_types_by_name['Cell'] = _CELL
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Cell = _reflection.GeneratedProtocolMessageType('Cell', (_message.Message,), dict(
+  DESCRIPTOR = _CELL,
+  __module__ = 'cell_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Cell)
+  ))
+_sym_db.RegisterMessage(Cell)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/cells_pb2.py b/ricxappframe/entities/rnib/cells_pb2.py
new file mode 100644 (file)
index 0000000..0d31c68
--- /dev/null
@@ -0,0 +1,179 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: cells.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import cell_pb2 as cell__pb2
+from . import gnb_pb2 as gnb__pb2
+from . import enb_pb2 as enb__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='cells.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x0b\x63\x65lls.proto\x12\x08\x65ntities\x1a\ncell.proto\x1a\tgnb.proto\x1a\tenb.proto\"\xa4\x01\n\x05\x43\x65lls\x12!\n\x04type\x18\x01 \x01(\x0e\x32\x13.entities.Cell.Type\x12\x39\n\x11served_cell_infos\x18\x02 \x01(\x0b\x32\x1c.entities.ServedCellInfoListH\x00\x12\x35\n\x0fserved_nr_cells\x18\x03 \x01(\x0b\x32\x1a.entities.ServedNRCellListH\x00\x42\x06\n\x04list\"D\n\x12ServedCellInfoList\x12.\n\x0cserved_cells\x18\x01 \x03(\x0b\x32\x18.entities.ServedCellInfo\"@\n\x10ServedNRCellList\x12,\n\x0cserved_cells\x18\x01 \x03(\x0b\x32\x16.entities.ServedNRCellb\x06proto3')
+  ,
+  dependencies=[cell__pb2.DESCRIPTOR,gnb__pb2.DESCRIPTOR,enb__pb2.DESCRIPTOR,])
+
+
+
+
+_CELLS = _descriptor.Descriptor(
+  name='Cells',
+  full_name='entities.Cells',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='type', full_name='entities.Cells.type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='served_cell_infos', full_name='entities.Cells.served_cell_infos', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='served_nr_cells', full_name='entities.Cells.served_nr_cells', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='list', full_name='entities.Cells.list',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=60,
+  serialized_end=224,
+)
+
+
+_SERVEDCELLINFOLIST = _descriptor.Descriptor(
+  name='ServedCellInfoList',
+  full_name='entities.ServedCellInfoList',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='served_cells', full_name='entities.ServedCellInfoList.served_cells', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=226,
+  serialized_end=294,
+)
+
+
+_SERVEDNRCELLLIST = _descriptor.Descriptor(
+  name='ServedNRCellList',
+  full_name='entities.ServedNRCellList',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='served_cells', full_name='entities.ServedNRCellList.served_cells', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=296,
+  serialized_end=360,
+)
+
+_CELLS.fields_by_name['type'].enum_type = cell__pb2._CELL_TYPE
+_CELLS.fields_by_name['served_cell_infos'].message_type = _SERVEDCELLINFOLIST
+_CELLS.fields_by_name['served_nr_cells'].message_type = _SERVEDNRCELLLIST
+_CELLS.oneofs_by_name['list'].fields.append(
+  _CELLS.fields_by_name['served_cell_infos'])
+_CELLS.fields_by_name['served_cell_infos'].containing_oneof = _CELLS.oneofs_by_name['list']
+_CELLS.oneofs_by_name['list'].fields.append(
+  _CELLS.fields_by_name['served_nr_cells'])
+_CELLS.fields_by_name['served_nr_cells'].containing_oneof = _CELLS.oneofs_by_name['list']
+_SERVEDCELLINFOLIST.fields_by_name['served_cells'].message_type = enb__pb2._SERVEDCELLINFO
+_SERVEDNRCELLLIST.fields_by_name['served_cells'].message_type = gnb__pb2._SERVEDNRCELL
+DESCRIPTOR.message_types_by_name['Cells'] = _CELLS
+DESCRIPTOR.message_types_by_name['ServedCellInfoList'] = _SERVEDCELLINFOLIST
+DESCRIPTOR.message_types_by_name['ServedNRCellList'] = _SERVEDNRCELLLIST
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Cells = _reflection.GeneratedProtocolMessageType('Cells', (_message.Message,), dict(
+  DESCRIPTOR = _CELLS,
+  __module__ = 'cells_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Cells)
+  ))
+_sym_db.RegisterMessage(Cells)
+
+ServedCellInfoList = _reflection.GeneratedProtocolMessageType('ServedCellInfoList', (_message.Message,), dict(
+  DESCRIPTOR = _SERVEDCELLINFOLIST,
+  __module__ = 'cells_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ServedCellInfoList)
+  ))
+_sym_db.RegisterMessage(ServedCellInfoList)
+
+ServedNRCellList = _reflection.GeneratedProtocolMessageType('ServedNRCellList', (_message.Message,), dict(
+  DESCRIPTOR = _SERVEDNRCELLLIST,
+  __module__ = 'cells_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ServedNRCellList)
+  ))
+_sym_db.RegisterMessage(ServedNRCellList)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/enb_pb2.py b/ricxappframe/entities/rnib/enb_pb2.py
new file mode 100644 (file)
index 0000000..7df3324
--- /dev/null
@@ -0,0 +1,1457 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: enb.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import additional_cell_information_pb2 as additional__cell__information__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='enb.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\tenb.proto\x12\x08\x65ntities\x1a!additional_cell_information.proto\"p\n\x03\x45nb\x12#\n\x08\x65nb_type\x18\x01 \x01(\x0e\x32\x11.entities.EnbType\x12.\n\x0cserved_cells\x18\x02 \x03(\x0b\x32\x18.entities.ServedCellInfo\x12\x14\n\x0cgu_group_ids\x18\x03 \x03(\t\"\xc0\x05\n\x0eServedCellInfo\x12\x0b\n\x03pci\x18\x01 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x02 \x01(\t\x12\x0b\n\x03tac\x18\x03 \x01(\t\x12\x17\n\x0f\x62roadcast_plmns\x18\x04 \x03(\t\x12\x34\n\x11\x63hoice_eutra_mode\x18\x05 \x01(\x0b\x32\x19.entities.ChoiceEUTRAMode\x12(\n\neutra_mode\x18\x06 \x01(\x0e\x32\x14.entities.Eutra.Mode\x12?\n\x17number_of_antenna_ports\x18\x07 \x01(\x0e\x32\x1e.entities.NumberOfAntennaPorts\x12\x39\n\x13prach_configuration\x18\x08 \x01(\x0b\x32\x1c.entities.PrachConfiguration\x12\x35\n\x14mbsfn_subframe_infos\x18\t \x03(\x0b\x32\x17.entities.MbsfnSubframe\x12\x0e\n\x06\x63sg_id\x18\n \x01(\t\x12$\n\x1cmbms_service_area_identities\x18\x0b \x03(\t\x12\x17\n\x0fmultiband_infos\x18\x0c \x03(\r\x12I\n\x1c\x66req_band_indicator_priority\x18\r \x01(\x0e\x32#.entities.FreqBandIndicatorPriority\x12:\n\x14\x62\x61ndwidth_reduced_si\x18\x0e \x01(\x0e\x32\x1c.entities.BandwidthReducedSI\x12\x37\n\x0fneighbour_infos\x18\x0f \x03(\x0b\x32\x1e.entities.NeighbourInformation\x12H\n\x1b\x61\x64\x64itional_cell_information\x18\x10 \x01(\x0b\x32#.entities.AdditionalCellInformation\"Q\n\x0f\x43hoiceEUTRAMode\x12\x1e\n\x03\x66\x64\x64\x18\x01 \x01(\x0b\x32\x11.entities.FddInfo\x12\x1e\n\x03tdd\x18\x02 \x01(\x0b\x32\x11.entities.TddInfo\".\n\x05\x45utra\"%\n\x04Mode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x46\x44\x44\x10\x01\x12\x07\n\x03TDD\x10\x02\"O\n\x14NeighbourInformation\x12\x0c\n\x04\x65\x63gi\x18\x01 \x01(\t\x12\x0b\n\x03pci\x18\x02 \x01(\r\x12\x0f\n\x07\x65\x61r_fcn\x18\x03 \x01(\r\x12\x0b\n\x03tac\x18\x04 \x01(\t\"\xe2\x01\n\rMbsfnSubframe\x12J\n\x1cradioframe_allocation_period\x18\x01 \x01(\x0e\x32$.entities.RadioframeAllocationPeriod\x12$\n\x1cradioframe_allocation_offset\x18\x02 \x01(\r\x12\x1b\n\x13subframe_allocation\x18\x03 \x01(\t\x12\x42\n\x18subframe_allocation_type\x18\x04 \x01(\x0e\x32 .entities.SubframeAllocationType\"\xba\x01\n\x12PrachConfiguration\x12\x1b\n\x13root_sequence_index\x18\x01 \x01(\r\x12+\n#zero_correlation_zone_configuration\x18\x02 \x01(\r\x12\x17\n\x0fhigh_speed_flag\x18\x03 \x01(\x08\x12\x1e\n\x16prach_frequency_offset\x18\x04 \x01(\r\x12!\n\x19prach_configuration_index\x18\x05 \x01(\r\"\x8d\x03\n\x07TddInfo\x12\x0f\n\x07\x65\x61r_fcn\x18\x01 \x01(\r\x12?\n\x16transmission_bandwidth\x18\x02 \x01(\x0e\x32\x1f.entities.TransmissionBandwidth\x12\x39\n\x13subframe_assignment\x18\x03 \x01(\x0e\x32\x1c.entities.SubframeAssignment\x12<\n\x15special_subframe_info\x18\x04 \x01(\x0b\x32\x1d.entities.SpecialSubframeInfo\x12Q\n additional_special_subframe_info\x18\x05 \x01(\x0b\x32\'.entities.AdditionalSpecialSubframeInfo\x12\x64\n*additional_special_subframe_extension_info\x18\x06 \x01(\x0b\x32\x30.entities.AdditionalSpecialSubframeExtensionInfo\"\xfb\x01\n&AdditionalSpecialSubframeExtensionInfo\x12m\n.additional_special_subframe_patterns_extension\x18\x01 \x01(\x0e\x32\x35.entities.AdditionalSpecialSubframePatterns.Extension\x12\x30\n\x10\x63yclic_prefix_dl\x18\x02 \x01(\x0e\x32\x16.entities.CyclicPrefix\x12\x30\n\x10\x63yclic_prefix_ul\x18\x03 \x01(\x0e\x32\x16.entities.CyclicPrefix\"\xdf\x01\n\x1d\x41\x64\x64itionalSpecialSubframeInfo\x12Z\n$additional_special_subframe_patterns\x18\x01 \x01(\x0e\x32,.entities.AdditionalSpecialSubframe.Patterns\x12\x30\n\x10\x63yclic_prefix_dl\x18\x02 \x01(\x0e\x32\x16.entities.CyclicPrefix\x12\x30\n\x10\x63yclic_prefix_ul\x18\x03 \x01(\x0e\x32\x16.entities.CyclicPrefix\"\xb7\x01\n\x07\x46\x64\x64Info\x12\x11\n\tulear_fcn\x18\x01 \x01(\r\x12\x11\n\tdlear_fcn\x18\x02 \x01(\r\x12\x42\n\x19ul_transmission_bandwidth\x18\x03 \x01(\x0e\x32\x1f.entities.TransmissionBandwidth\x12\x42\n\x19\x64l_transmission_bandwidth\x18\x04 \x01(\x0e\x32\x1f.entities.TransmissionBandwidth\"\xc0\x01\n\x13SpecialSubframeInfo\x12\x45\n\x19special_subframe_patterns\x18\x01 \x01(\x0e\x32\".entities.SpecialSubframe.Patterns\x12\x30\n\x10\x63yclic_prefix_dl\x18\x02 \x01(\x0e\x32\x16.entities.CyclicPrefix\x12\x30\n\x10\x63yclic_prefix_ul\x18\x03 \x01(\x0e\x32\x16.entities.CyclicPrefix\"\x84\x01\n\x0fSpecialSubframe\"q\n\x08Patterns\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04SSP0\x10\x01\x12\x08\n\x04SSP1\x10\x02\x12\x08\n\x04SSP2\x10\x03\x12\x08\n\x04SSP3\x10\x04\x12\x08\n\x04SSP4\x10\x05\x12\x08\n\x04SSP5\x10\x06\x12\x08\n\x04SSP6\x10\x07\x12\x08\n\x04SSP7\x10\x08\x12\x08\n\x04SSP8\x10\t\"\x98\x01\n\x19\x41\x64\x64itionalSpecialSubframe\"{\n\x08Patterns\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04SSP0\x10\x01\x12\x08\n\x04SSP1\x10\x02\x12\x08\n\x04SSP2\x10\x03\x12\x08\n\x04SSP3\x10\x04\x12\x08\n\x04SSP4\x10\x05\x12\x08\n\x04SSP5\x10\x06\x12\x08\n\x04SSP6\x10\x07\x12\x08\n\x04SSP7\x10\x08\x12\x08\n\x04SSP8\x10\t\x12\x08\n\x04SSP9\x10\n\"H\n!AdditionalSpecialSubframePatterns\"#\n\tExtension\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05SSP10\x10\x01*k\n\x19\x46reqBandIndicatorPriority\x12(\n$UNKNOWN_FREQ_BAND_INDICATOR_PRIORITY\x10\x00\x12\x13\n\x0fNOT_BROADCASTED\x10\x01\x12\x0f\n\x0b\x42ROADCASTED\x10\x02*E\n\x12\x42\x61ndwidthReducedSI\x12 \n\x1cUNKNOWN_BANDWIDTH_REDUCED_SI\x10\x00\x12\r\n\tSCHEDULED\x10\x01*]\n\x16SubframeAllocationType\x12$\n UNKNOWN_SUBFRAME_ALLOCATION_TYPE\x10\x00\x12\r\n\tONE_FRAME\x10\x01\x12\x0e\n\nFOUR_FRAME\x10\x02*x\n\x1aRadioframeAllocationPeriod\x12(\n$UNKNOWN_RADIOFRAME_ALLOCATION_PERIOD\x10\x00\x12\x06\n\x02N1\x10\x01\x12\x06\n\x02N2\x10\x02\x12\x06\n\x02N4\x10\x03\x12\x06\n\x02N8\x10\x04\x12\x07\n\x03N16\x10\x05\x12\x07\n\x03N32\x10\x06*V\n\x14NumberOfAntennaPorts\x12#\n\x1fUNKNOWN_NUMBER_OF_ANTENNA_PORTS\x10\x00\x12\x07\n\x03\x41N1\x10\x01\x12\x07\n\x03\x41N2\x10\x02\x12\x07\n\x03\x41N4\x10\x03*\xa6\x01\n\x07\x45nbType\x12\x14\n\x10UNKNOWN_ENB_TYPE\x10\x00\x12\r\n\tMACRO_ENB\x10\x01\x12\x0c\n\x08HOME_ENB\x10\x02\x12\x13\n\x0fSHORT_MACRO_ENB\x10\x03\x12\x12\n\x0eLONG_MACRO_ENB\x10\x04\x12\x10\n\x0cMACRO_NG_ENB\x10\x05\x12\x16\n\x12SHORT_MACRO_NG_ENB\x10\x06\x12\x15\n\x11LONG_MACRO_NG_ENB\x10\x07*t\n\x12SubframeAssignment\x12\x1f\n\x1bUNKNOWN_SUBFRAME_ASSIGNMENT\x10\x00\x12\x07\n\x03SA0\x10\x01\x12\x07\n\x03SA1\x10\x02\x12\x07\n\x03SA2\x10\x03\x12\x07\n\x03SA3\x10\x04\x12\x07\n\x03SA4\x10\x05\x12\x07\n\x03SA5\x10\x06\x12\x07\n\x03SA6\x10\x07*C\n\x0c\x43yclicPrefix\x12\x19\n\x15UNKNOWN_CYCLIC_PREFIX\x10\x00\x12\n\n\x06NORMAL\x10\x01\x12\x0c\n\x08\x45XTENDED\x10\x02*\x80\x01\n\x15TransmissionBandwidth\x12\"\n\x1eUNKNOWN_TRANSMISSION_BANDWIDTH\x10\x00\x12\x07\n\x03\x42W6\x10\x01\x12\x08\n\x04\x42W15\x10\x02\x12\x08\n\x04\x42W25\x10\x03\x12\x08\n\x04\x42W50\x10\x04\x12\x08\n\x04\x42W75\x10\x05\x12\t\n\x05\x42W100\x10\x06\x12\x07\n\x03\x42W1\x10\x07\x62\x06proto3')
+  ,
+  dependencies=[additional__cell__information__pb2.DESCRIPTOR,])
+
+_FREQBANDINDICATORPRIORITY = _descriptor.EnumDescriptor(
+  name='FreqBandIndicatorPriority',
+  full_name='entities.FreqBandIndicatorPriority',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_FREQ_BAND_INDICATOR_PRIORITY', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NOT_BROADCASTED', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BROADCASTED', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3134,
+  serialized_end=3241,
+)
+_sym_db.RegisterEnumDescriptor(_FREQBANDINDICATORPRIORITY)
+
+FreqBandIndicatorPriority = enum_type_wrapper.EnumTypeWrapper(_FREQBANDINDICATORPRIORITY)
+_BANDWIDTHREDUCEDSI = _descriptor.EnumDescriptor(
+  name='BandwidthReducedSI',
+  full_name='entities.BandwidthReducedSI',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_BANDWIDTH_REDUCED_SI', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SCHEDULED', index=1, number=1,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3243,
+  serialized_end=3312,
+)
+_sym_db.RegisterEnumDescriptor(_BANDWIDTHREDUCEDSI)
+
+BandwidthReducedSI = enum_type_wrapper.EnumTypeWrapper(_BANDWIDTHREDUCEDSI)
+_SUBFRAMEALLOCATIONTYPE = _descriptor.EnumDescriptor(
+  name='SubframeAllocationType',
+  full_name='entities.SubframeAllocationType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_SUBFRAME_ALLOCATION_TYPE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ONE_FRAME', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='FOUR_FRAME', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3314,
+  serialized_end=3407,
+)
+_sym_db.RegisterEnumDescriptor(_SUBFRAMEALLOCATIONTYPE)
+
+SubframeAllocationType = enum_type_wrapper.EnumTypeWrapper(_SUBFRAMEALLOCATIONTYPE)
+_RADIOFRAMEALLOCATIONPERIOD = _descriptor.EnumDescriptor(
+  name='RadioframeAllocationPeriod',
+  full_name='entities.RadioframeAllocationPeriod',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_RADIOFRAME_ALLOCATION_PERIOD', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='N1', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='N2', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='N4', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='N8', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='N16', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='N32', index=6, number=6,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3409,
+  serialized_end=3529,
+)
+_sym_db.RegisterEnumDescriptor(_RADIOFRAMEALLOCATIONPERIOD)
+
+RadioframeAllocationPeriod = enum_type_wrapper.EnumTypeWrapper(_RADIOFRAMEALLOCATIONPERIOD)
+_NUMBEROFANTENNAPORTS = _descriptor.EnumDescriptor(
+  name='NumberOfAntennaPorts',
+  full_name='entities.NumberOfAntennaPorts',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_NUMBER_OF_ANTENNA_PORTS', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='AN1', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='AN2', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='AN4', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3531,
+  serialized_end=3617,
+)
+_sym_db.RegisterEnumDescriptor(_NUMBEROFANTENNAPORTS)
+
+NumberOfAntennaPorts = enum_type_wrapper.EnumTypeWrapper(_NUMBEROFANTENNAPORTS)
+_ENBTYPE = _descriptor.EnumDescriptor(
+  name='EnbType',
+  full_name='entities.EnbType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_ENB_TYPE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MACRO_ENB', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='HOME_ENB', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SHORT_MACRO_ENB', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='LONG_MACRO_ENB', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MACRO_NG_ENB', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SHORT_MACRO_NG_ENB', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='LONG_MACRO_NG_ENB', index=7, number=7,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3620,
+  serialized_end=3786,
+)
+_sym_db.RegisterEnumDescriptor(_ENBTYPE)
+
+EnbType = enum_type_wrapper.EnumTypeWrapper(_ENBTYPE)
+_SUBFRAMEASSIGNMENT = _descriptor.EnumDescriptor(
+  name='SubframeAssignment',
+  full_name='entities.SubframeAssignment',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_SUBFRAME_ASSIGNMENT', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA0', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA1', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA2', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA3', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA4', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA5', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SA6', index=7, number=7,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3788,
+  serialized_end=3904,
+)
+_sym_db.RegisterEnumDescriptor(_SUBFRAMEASSIGNMENT)
+
+SubframeAssignment = enum_type_wrapper.EnumTypeWrapper(_SUBFRAMEASSIGNMENT)
+_CYCLICPREFIX = _descriptor.EnumDescriptor(
+  name='CyclicPrefix',
+  full_name='entities.CyclicPrefix',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_CYCLIC_PREFIX', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NORMAL', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='EXTENDED', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3906,
+  serialized_end=3973,
+)
+_sym_db.RegisterEnumDescriptor(_CYCLICPREFIX)
+
+CyclicPrefix = enum_type_wrapper.EnumTypeWrapper(_CYCLICPREFIX)
+_TRANSMISSIONBANDWIDTH = _descriptor.EnumDescriptor(
+  name='TransmissionBandwidth',
+  full_name='entities.TransmissionBandwidth',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_TRANSMISSION_BANDWIDTH', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW6', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW15', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW25', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW50', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW75', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW100', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BW1', index=7, number=7,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3976,
+  serialized_end=4104,
+)
+_sym_db.RegisterEnumDescriptor(_TRANSMISSIONBANDWIDTH)
+
+TransmissionBandwidth = enum_type_wrapper.EnumTypeWrapper(_TRANSMISSIONBANDWIDTH)
+UNKNOWN_FREQ_BAND_INDICATOR_PRIORITY = 0
+NOT_BROADCASTED = 1
+BROADCASTED = 2
+UNKNOWN_BANDWIDTH_REDUCED_SI = 0
+SCHEDULED = 1
+UNKNOWN_SUBFRAME_ALLOCATION_TYPE = 0
+ONE_FRAME = 1
+FOUR_FRAME = 2
+UNKNOWN_RADIOFRAME_ALLOCATION_PERIOD = 0
+N1 = 1
+N2 = 2
+N4 = 3
+N8 = 4
+N16 = 5
+N32 = 6
+UNKNOWN_NUMBER_OF_ANTENNA_PORTS = 0
+AN1 = 1
+AN2 = 2
+AN4 = 3
+UNKNOWN_ENB_TYPE = 0
+MACRO_ENB = 1
+HOME_ENB = 2
+SHORT_MACRO_ENB = 3
+LONG_MACRO_ENB = 4
+MACRO_NG_ENB = 5
+SHORT_MACRO_NG_ENB = 6
+LONG_MACRO_NG_ENB = 7
+UNKNOWN_SUBFRAME_ASSIGNMENT = 0
+SA0 = 1
+SA1 = 2
+SA2 = 3
+SA3 = 4
+SA4 = 5
+SA5 = 6
+SA6 = 7
+UNKNOWN_CYCLIC_PREFIX = 0
+NORMAL = 1
+EXTENDED = 2
+UNKNOWN_TRANSMISSION_BANDWIDTH = 0
+BW6 = 1
+BW15 = 2
+BW25 = 3
+BW50 = 4
+BW75 = 5
+BW100 = 6
+BW1 = 7
+
+
+_EUTRA_MODE = _descriptor.EnumDescriptor(
+  name='Mode',
+  full_name='entities.Eutra.Mode',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='FDD', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TDD', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=971,
+  serialized_end=1008,
+)
+_sym_db.RegisterEnumDescriptor(_EUTRA_MODE)
+
+_SPECIALSUBFRAME_PATTERNS = _descriptor.EnumDescriptor(
+  name='Patterns',
+  full_name='entities.SpecialSubframe.Patterns',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP0', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP1', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP2', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP3', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP4', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP5', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP6', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP7', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP8', index=9, number=9,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2790,
+  serialized_end=2903,
+)
+_sym_db.RegisterEnumDescriptor(_SPECIALSUBFRAME_PATTERNS)
+
+_ADDITIONALSPECIALSUBFRAME_PATTERNS = _descriptor.EnumDescriptor(
+  name='Patterns',
+  full_name='entities.AdditionalSpecialSubframe.Patterns',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP0', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP1', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP2', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP3', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP4', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP5', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP6', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP7', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP8', index=9, number=9,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP9', index=10, number=10,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2935,
+  serialized_end=3058,
+)
+_sym_db.RegisterEnumDescriptor(_ADDITIONALSPECIALSUBFRAME_PATTERNS)
+
+_ADDITIONALSPECIALSUBFRAMEPATTERNS_EXTENSION = _descriptor.EnumDescriptor(
+  name='Extension',
+  full_name='entities.AdditionalSpecialSubframePatterns.Extension',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SSP10', index=1, number=1,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3097,
+  serialized_end=3132,
+)
+_sym_db.RegisterEnumDescriptor(_ADDITIONALSPECIALSUBFRAMEPATTERNS_EXTENSION)
+
+
+_ENB = _descriptor.Descriptor(
+  name='Enb',
+  full_name='entities.Enb',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='enb_type', full_name='entities.Enb.enb_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='served_cells', full_name='entities.Enb.served_cells', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gu_group_ids', full_name='entities.Enb.gu_group_ids', index=2,
+      number=3, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=58,
+  serialized_end=170,
+)
+
+
+_SERVEDCELLINFO = _descriptor.Descriptor(
+  name='ServedCellInfo',
+  full_name='entities.ServedCellInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='pci', full_name='entities.ServedCellInfo.pci', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cell_id', full_name='entities.ServedCellInfo.cell_id', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='tac', full_name='entities.ServedCellInfo.tac', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='broadcast_plmns', full_name='entities.ServedCellInfo.broadcast_plmns', index=3,
+      number=4, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='choice_eutra_mode', full_name='entities.ServedCellInfo.choice_eutra_mode', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='eutra_mode', full_name='entities.ServedCellInfo.eutra_mode', index=5,
+      number=6, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='number_of_antenna_ports', full_name='entities.ServedCellInfo.number_of_antenna_ports', index=6,
+      number=7, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='prach_configuration', full_name='entities.ServedCellInfo.prach_configuration', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='mbsfn_subframe_infos', full_name='entities.ServedCellInfo.mbsfn_subframe_infos', index=8,
+      number=9, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='csg_id', full_name='entities.ServedCellInfo.csg_id', index=9,
+      number=10, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='mbms_service_area_identities', full_name='entities.ServedCellInfo.mbms_service_area_identities', index=10,
+      number=11, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='multiband_infos', full_name='entities.ServedCellInfo.multiband_infos', index=11,
+      number=12, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='freq_band_indicator_priority', full_name='entities.ServedCellInfo.freq_band_indicator_priority', index=12,
+      number=13, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='bandwidth_reduced_si', full_name='entities.ServedCellInfo.bandwidth_reduced_si', index=13,
+      number=14, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='neighbour_infos', full_name='entities.ServedCellInfo.neighbour_infos', index=14,
+      number=15, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='additional_cell_information', full_name='entities.ServedCellInfo.additional_cell_information', index=15,
+      number=16, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=173,
+  serialized_end=877,
+)
+
+
+_CHOICEEUTRAMODE = _descriptor.Descriptor(
+  name='ChoiceEUTRAMode',
+  full_name='entities.ChoiceEUTRAMode',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='fdd', full_name='entities.ChoiceEUTRAMode.fdd', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='tdd', full_name='entities.ChoiceEUTRAMode.tdd', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=879,
+  serialized_end=960,
+)
+
+
+_EUTRA = _descriptor.Descriptor(
+  name='Eutra',
+  full_name='entities.Eutra',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _EUTRA_MODE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=962,
+  serialized_end=1008,
+)
+
+
+_NEIGHBOURINFORMATION = _descriptor.Descriptor(
+  name='NeighbourInformation',
+  full_name='entities.NeighbourInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ecgi', full_name='entities.NeighbourInformation.ecgi', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='pci', full_name='entities.NeighbourInformation.pci', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ear_fcn', full_name='entities.NeighbourInformation.ear_fcn', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='tac', full_name='entities.NeighbourInformation.tac', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1010,
+  serialized_end=1089,
+)
+
+
+_MBSFNSUBFRAME = _descriptor.Descriptor(
+  name='MbsfnSubframe',
+  full_name='entities.MbsfnSubframe',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='radioframe_allocation_period', full_name='entities.MbsfnSubframe.radioframe_allocation_period', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='radioframe_allocation_offset', full_name='entities.MbsfnSubframe.radioframe_allocation_offset', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='subframe_allocation', full_name='entities.MbsfnSubframe.subframe_allocation', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='subframe_allocation_type', full_name='entities.MbsfnSubframe.subframe_allocation_type', index=3,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1092,
+  serialized_end=1318,
+)
+
+
+_PRACHCONFIGURATION = _descriptor.Descriptor(
+  name='PrachConfiguration',
+  full_name='entities.PrachConfiguration',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='root_sequence_index', full_name='entities.PrachConfiguration.root_sequence_index', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='zero_correlation_zone_configuration', full_name='entities.PrachConfiguration.zero_correlation_zone_configuration', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='high_speed_flag', full_name='entities.PrachConfiguration.high_speed_flag', index=2,
+      number=3, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='prach_frequency_offset', full_name='entities.PrachConfiguration.prach_frequency_offset', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='prach_configuration_index', full_name='entities.PrachConfiguration.prach_configuration_index', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1321,
+  serialized_end=1507,
+)
+
+
+_TDDINFO = _descriptor.Descriptor(
+  name='TddInfo',
+  full_name='entities.TddInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ear_fcn', full_name='entities.TddInfo.ear_fcn', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='transmission_bandwidth', full_name='entities.TddInfo.transmission_bandwidth', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='subframe_assignment', full_name='entities.TddInfo.subframe_assignment', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='special_subframe_info', full_name='entities.TddInfo.special_subframe_info', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='additional_special_subframe_info', full_name='entities.TddInfo.additional_special_subframe_info', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='additional_special_subframe_extension_info', full_name='entities.TddInfo.additional_special_subframe_extension_info', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1510,
+  serialized_end=1907,
+)
+
+
+_ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO = _descriptor.Descriptor(
+  name='AdditionalSpecialSubframeExtensionInfo',
+  full_name='entities.AdditionalSpecialSubframeExtensionInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='additional_special_subframe_patterns_extension', full_name='entities.AdditionalSpecialSubframeExtensionInfo.additional_special_subframe_patterns_extension', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cyclic_prefix_dl', full_name='entities.AdditionalSpecialSubframeExtensionInfo.cyclic_prefix_dl', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cyclic_prefix_ul', full_name='entities.AdditionalSpecialSubframeExtensionInfo.cyclic_prefix_ul', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1910,
+  serialized_end=2161,
+)
+
+
+_ADDITIONALSPECIALSUBFRAMEINFO = _descriptor.Descriptor(
+  name='AdditionalSpecialSubframeInfo',
+  full_name='entities.AdditionalSpecialSubframeInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='additional_special_subframe_patterns', full_name='entities.AdditionalSpecialSubframeInfo.additional_special_subframe_patterns', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cyclic_prefix_dl', full_name='entities.AdditionalSpecialSubframeInfo.cyclic_prefix_dl', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cyclic_prefix_ul', full_name='entities.AdditionalSpecialSubframeInfo.cyclic_prefix_ul', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2164,
+  serialized_end=2387,
+)
+
+
+_FDDINFO = _descriptor.Descriptor(
+  name='FddInfo',
+  full_name='entities.FddInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ulear_fcn', full_name='entities.FddInfo.ulear_fcn', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='dlear_fcn', full_name='entities.FddInfo.dlear_fcn', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ul_transmission_bandwidth', full_name='entities.FddInfo.ul_transmission_bandwidth', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='dl_transmission_bandwidth', full_name='entities.FddInfo.dl_transmission_bandwidth', index=3,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2390,
+  serialized_end=2573,
+)
+
+
+_SPECIALSUBFRAMEINFO = _descriptor.Descriptor(
+  name='SpecialSubframeInfo',
+  full_name='entities.SpecialSubframeInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='special_subframe_patterns', full_name='entities.SpecialSubframeInfo.special_subframe_patterns', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cyclic_prefix_dl', full_name='entities.SpecialSubframeInfo.cyclic_prefix_dl', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cyclic_prefix_ul', full_name='entities.SpecialSubframeInfo.cyclic_prefix_ul', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2576,
+  serialized_end=2768,
+)
+
+
+_SPECIALSUBFRAME = _descriptor.Descriptor(
+  name='SpecialSubframe',
+  full_name='entities.SpecialSubframe',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _SPECIALSUBFRAME_PATTERNS,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2771,
+  serialized_end=2903,
+)
+
+
+_ADDITIONALSPECIALSUBFRAME = _descriptor.Descriptor(
+  name='AdditionalSpecialSubframe',
+  full_name='entities.AdditionalSpecialSubframe',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _ADDITIONALSPECIALSUBFRAME_PATTERNS,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2906,
+  serialized_end=3058,
+)
+
+
+_ADDITIONALSPECIALSUBFRAMEPATTERNS = _descriptor.Descriptor(
+  name='AdditionalSpecialSubframePatterns',
+  full_name='entities.AdditionalSpecialSubframePatterns',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _ADDITIONALSPECIALSUBFRAMEPATTERNS_EXTENSION,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=3060,
+  serialized_end=3132,
+)
+
+_ENB.fields_by_name['enb_type'].enum_type = _ENBTYPE
+_ENB.fields_by_name['served_cells'].message_type = _SERVEDCELLINFO
+_SERVEDCELLINFO.fields_by_name['choice_eutra_mode'].message_type = _CHOICEEUTRAMODE
+_SERVEDCELLINFO.fields_by_name['eutra_mode'].enum_type = _EUTRA_MODE
+_SERVEDCELLINFO.fields_by_name['number_of_antenna_ports'].enum_type = _NUMBEROFANTENNAPORTS
+_SERVEDCELLINFO.fields_by_name['prach_configuration'].message_type = _PRACHCONFIGURATION
+_SERVEDCELLINFO.fields_by_name['mbsfn_subframe_infos'].message_type = _MBSFNSUBFRAME
+_SERVEDCELLINFO.fields_by_name['freq_band_indicator_priority'].enum_type = _FREQBANDINDICATORPRIORITY
+_SERVEDCELLINFO.fields_by_name['bandwidth_reduced_si'].enum_type = _BANDWIDTHREDUCEDSI
+_SERVEDCELLINFO.fields_by_name['neighbour_infos'].message_type = _NEIGHBOURINFORMATION
+_SERVEDCELLINFO.fields_by_name['additional_cell_information'].message_type = additional__cell__information__pb2._ADDITIONALCELLINFORMATION
+_CHOICEEUTRAMODE.fields_by_name['fdd'].message_type = _FDDINFO
+_CHOICEEUTRAMODE.fields_by_name['tdd'].message_type = _TDDINFO
+_EUTRA_MODE.containing_type = _EUTRA
+_MBSFNSUBFRAME.fields_by_name['radioframe_allocation_period'].enum_type = _RADIOFRAMEALLOCATIONPERIOD
+_MBSFNSUBFRAME.fields_by_name['subframe_allocation_type'].enum_type = _SUBFRAMEALLOCATIONTYPE
+_TDDINFO.fields_by_name['transmission_bandwidth'].enum_type = _TRANSMISSIONBANDWIDTH
+_TDDINFO.fields_by_name['subframe_assignment'].enum_type = _SUBFRAMEASSIGNMENT
+_TDDINFO.fields_by_name['special_subframe_info'].message_type = _SPECIALSUBFRAMEINFO
+_TDDINFO.fields_by_name['additional_special_subframe_info'].message_type = _ADDITIONALSPECIALSUBFRAMEINFO
+_TDDINFO.fields_by_name['additional_special_subframe_extension_info'].message_type = _ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO
+_ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO.fields_by_name['additional_special_subframe_patterns_extension'].enum_type = _ADDITIONALSPECIALSUBFRAMEPATTERNS_EXTENSION
+_ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO.fields_by_name['cyclic_prefix_dl'].enum_type = _CYCLICPREFIX
+_ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO.fields_by_name['cyclic_prefix_ul'].enum_type = _CYCLICPREFIX
+_ADDITIONALSPECIALSUBFRAMEINFO.fields_by_name['additional_special_subframe_patterns'].enum_type = _ADDITIONALSPECIALSUBFRAME_PATTERNS
+_ADDITIONALSPECIALSUBFRAMEINFO.fields_by_name['cyclic_prefix_dl'].enum_type = _CYCLICPREFIX
+_ADDITIONALSPECIALSUBFRAMEINFO.fields_by_name['cyclic_prefix_ul'].enum_type = _CYCLICPREFIX
+_FDDINFO.fields_by_name['ul_transmission_bandwidth'].enum_type = _TRANSMISSIONBANDWIDTH
+_FDDINFO.fields_by_name['dl_transmission_bandwidth'].enum_type = _TRANSMISSIONBANDWIDTH
+_SPECIALSUBFRAMEINFO.fields_by_name['special_subframe_patterns'].enum_type = _SPECIALSUBFRAME_PATTERNS
+_SPECIALSUBFRAMEINFO.fields_by_name['cyclic_prefix_dl'].enum_type = _CYCLICPREFIX
+_SPECIALSUBFRAMEINFO.fields_by_name['cyclic_prefix_ul'].enum_type = _CYCLICPREFIX
+_SPECIALSUBFRAME_PATTERNS.containing_type = _SPECIALSUBFRAME
+_ADDITIONALSPECIALSUBFRAME_PATTERNS.containing_type = _ADDITIONALSPECIALSUBFRAME
+_ADDITIONALSPECIALSUBFRAMEPATTERNS_EXTENSION.containing_type = _ADDITIONALSPECIALSUBFRAMEPATTERNS
+DESCRIPTOR.message_types_by_name['Enb'] = _ENB
+DESCRIPTOR.message_types_by_name['ServedCellInfo'] = _SERVEDCELLINFO
+DESCRIPTOR.message_types_by_name['ChoiceEUTRAMode'] = _CHOICEEUTRAMODE
+DESCRIPTOR.message_types_by_name['Eutra'] = _EUTRA
+DESCRIPTOR.message_types_by_name['NeighbourInformation'] = _NEIGHBOURINFORMATION
+DESCRIPTOR.message_types_by_name['MbsfnSubframe'] = _MBSFNSUBFRAME
+DESCRIPTOR.message_types_by_name['PrachConfiguration'] = _PRACHCONFIGURATION
+DESCRIPTOR.message_types_by_name['TddInfo'] = _TDDINFO
+DESCRIPTOR.message_types_by_name['AdditionalSpecialSubframeExtensionInfo'] = _ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO
+DESCRIPTOR.message_types_by_name['AdditionalSpecialSubframeInfo'] = _ADDITIONALSPECIALSUBFRAMEINFO
+DESCRIPTOR.message_types_by_name['FddInfo'] = _FDDINFO
+DESCRIPTOR.message_types_by_name['SpecialSubframeInfo'] = _SPECIALSUBFRAMEINFO
+DESCRIPTOR.message_types_by_name['SpecialSubframe'] = _SPECIALSUBFRAME
+DESCRIPTOR.message_types_by_name['AdditionalSpecialSubframe'] = _ADDITIONALSPECIALSUBFRAME
+DESCRIPTOR.message_types_by_name['AdditionalSpecialSubframePatterns'] = _ADDITIONALSPECIALSUBFRAMEPATTERNS
+DESCRIPTOR.enum_types_by_name['FreqBandIndicatorPriority'] = _FREQBANDINDICATORPRIORITY
+DESCRIPTOR.enum_types_by_name['BandwidthReducedSI'] = _BANDWIDTHREDUCEDSI
+DESCRIPTOR.enum_types_by_name['SubframeAllocationType'] = _SUBFRAMEALLOCATIONTYPE
+DESCRIPTOR.enum_types_by_name['RadioframeAllocationPeriod'] = _RADIOFRAMEALLOCATIONPERIOD
+DESCRIPTOR.enum_types_by_name['NumberOfAntennaPorts'] = _NUMBEROFANTENNAPORTS
+DESCRIPTOR.enum_types_by_name['EnbType'] = _ENBTYPE
+DESCRIPTOR.enum_types_by_name['SubframeAssignment'] = _SUBFRAMEASSIGNMENT
+DESCRIPTOR.enum_types_by_name['CyclicPrefix'] = _CYCLICPREFIX
+DESCRIPTOR.enum_types_by_name['TransmissionBandwidth'] = _TRANSMISSIONBANDWIDTH
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Enb = _reflection.GeneratedProtocolMessageType('Enb', (_message.Message,), dict(
+  DESCRIPTOR = _ENB,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Enb)
+  ))
+_sym_db.RegisterMessage(Enb)
+
+ServedCellInfo = _reflection.GeneratedProtocolMessageType('ServedCellInfo', (_message.Message,), dict(
+  DESCRIPTOR = _SERVEDCELLINFO,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ServedCellInfo)
+  ))
+_sym_db.RegisterMessage(ServedCellInfo)
+
+ChoiceEUTRAMode = _reflection.GeneratedProtocolMessageType('ChoiceEUTRAMode', (_message.Message,), dict(
+  DESCRIPTOR = _CHOICEEUTRAMODE,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ChoiceEUTRAMode)
+  ))
+_sym_db.RegisterMessage(ChoiceEUTRAMode)
+
+Eutra = _reflection.GeneratedProtocolMessageType('Eutra', (_message.Message,), dict(
+  DESCRIPTOR = _EUTRA,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Eutra)
+  ))
+_sym_db.RegisterMessage(Eutra)
+
+NeighbourInformation = _reflection.GeneratedProtocolMessageType('NeighbourInformation', (_message.Message,), dict(
+  DESCRIPTOR = _NEIGHBOURINFORMATION,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.NeighbourInformation)
+  ))
+_sym_db.RegisterMessage(NeighbourInformation)
+
+MbsfnSubframe = _reflection.GeneratedProtocolMessageType('MbsfnSubframe', (_message.Message,), dict(
+  DESCRIPTOR = _MBSFNSUBFRAME,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.MbsfnSubframe)
+  ))
+_sym_db.RegisterMessage(MbsfnSubframe)
+
+PrachConfiguration = _reflection.GeneratedProtocolMessageType('PrachConfiguration', (_message.Message,), dict(
+  DESCRIPTOR = _PRACHCONFIGURATION,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.PrachConfiguration)
+  ))
+_sym_db.RegisterMessage(PrachConfiguration)
+
+TddInfo = _reflection.GeneratedProtocolMessageType('TddInfo', (_message.Message,), dict(
+  DESCRIPTOR = _TDDINFO,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.TddInfo)
+  ))
+_sym_db.RegisterMessage(TddInfo)
+
+AdditionalSpecialSubframeExtensionInfo = _reflection.GeneratedProtocolMessageType('AdditionalSpecialSubframeExtensionInfo', (_message.Message,), dict(
+  DESCRIPTOR = _ADDITIONALSPECIALSUBFRAMEEXTENSIONINFO,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.AdditionalSpecialSubframeExtensionInfo)
+  ))
+_sym_db.RegisterMessage(AdditionalSpecialSubframeExtensionInfo)
+
+AdditionalSpecialSubframeInfo = _reflection.GeneratedProtocolMessageType('AdditionalSpecialSubframeInfo', (_message.Message,), dict(
+  DESCRIPTOR = _ADDITIONALSPECIALSUBFRAMEINFO,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.AdditionalSpecialSubframeInfo)
+  ))
+_sym_db.RegisterMessage(AdditionalSpecialSubframeInfo)
+
+FddInfo = _reflection.GeneratedProtocolMessageType('FddInfo', (_message.Message,), dict(
+  DESCRIPTOR = _FDDINFO,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.FddInfo)
+  ))
+_sym_db.RegisterMessage(FddInfo)
+
+SpecialSubframeInfo = _reflection.GeneratedProtocolMessageType('SpecialSubframeInfo', (_message.Message,), dict(
+  DESCRIPTOR = _SPECIALSUBFRAMEINFO,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.SpecialSubframeInfo)
+  ))
+_sym_db.RegisterMessage(SpecialSubframeInfo)
+
+SpecialSubframe = _reflection.GeneratedProtocolMessageType('SpecialSubframe', (_message.Message,), dict(
+  DESCRIPTOR = _SPECIALSUBFRAME,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.SpecialSubframe)
+  ))
+_sym_db.RegisterMessage(SpecialSubframe)
+
+AdditionalSpecialSubframe = _reflection.GeneratedProtocolMessageType('AdditionalSpecialSubframe', (_message.Message,), dict(
+  DESCRIPTOR = _ADDITIONALSPECIALSUBFRAME,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.AdditionalSpecialSubframe)
+  ))
+_sym_db.RegisterMessage(AdditionalSpecialSubframe)
+
+AdditionalSpecialSubframePatterns = _reflection.GeneratedProtocolMessageType('AdditionalSpecialSubframePatterns', (_message.Message,), dict(
+  DESCRIPTOR = _ADDITIONALSPECIALSUBFRAMEPATTERNS,
+  __module__ = 'enb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.AdditionalSpecialSubframePatterns)
+  ))
+_sym_db.RegisterMessage(AdditionalSpecialSubframePatterns)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/gnb_pb2.py b/ricxappframe/entities/rnib/gnb_pb2.py
new file mode 100644 (file)
index 0000000..8e0bce4
--- /dev/null
@@ -0,0 +1,1095 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: gnb.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import ran_function_pb2 as ran__function__pb2
+from . import additional_cell_information_pb2 as additional__cell__information__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='gnb.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\tgnb.proto\x12\x08\x65ntities\x1a\x12ran_function.proto\x1a!additional_cell_information.proto\"\x89\x01\n\x03Gnb\x12/\n\x0fserved_nr_cells\x18\x01 \x03(\x0b\x32\x16.entities.ServedNRCell\x12,\n\rran_functions\x18\x02 \x03(\x0b\x32\x15.entities.RanFunction\x12#\n\x08gnb_type\x18\x03 \x01(\x0e\x32\x11.entities.GnbType\"\x93\x01\n\x0cServedNRCell\x12\x45\n\x1aserved_nr_cell_information\x18\x01 \x01(\x0b\x32!.entities.ServedNRCellInformation\x12<\n\x12nr_neighbour_infos\x18\x02 \x03(\x0b\x32 .entities.NrNeighbourInformation\"\xc3\x06\n\x17ServedNRCellInformation\x12\x0e\n\x06nr_pci\x18\x01 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x02 \x01(\t\x12\x0e\n\x06stac5g\x18\x03 \x01(\t\x12\x17\n\x0f\x63onfigured_stac\x18\x04 \x01(\t\x12\x14\n\x0cserved_plmns\x18\x05 \x03(\t\x12\"\n\x07nr_mode\x18\x06 \x01(\x0e\x32\x11.entities.Nr.Mode\x12\x46\n\x0e\x63hoice_nr_mode\x18\x07 \x01(\x0b\x32..entities.ServedNRCellInformation.ChoiceNRMode\x12H\n\x1b\x61\x64\x64itional_cell_information\x18\x08 \x01(\x0b\x32#.entities.AdditionalCellInformation\x1a\x91\x04\n\x0c\x43hoiceNRMode\x12\x43\n\x03\x66\x64\x64\x18\x01 \x01(\x0b\x32\x36.entities.ServedNRCellInformation.ChoiceNRMode.FddInfo\x12\x43\n\x03tdd\x18\x02 \x01(\x0b\x32\x36.entities.ServedNRCellInformation.ChoiceNRMode.TddInfo\x1a\xf7\x01\n\x07\x46\x64\x64Info\x12/\n\x0cul_freq_info\x18\x01 \x01(\x0b\x32\x19.entities.NrFrequencyInfo\x12/\n\x0c\x64l_freq_info\x18\x02 \x01(\x0b\x32\x19.entities.NrFrequencyInfo\x12\x44\n\x19ul_transmission_bandwidth\x18\x03 \x01(\x0b\x32!.entities.NrTransmissionBandwidth\x12\x44\n\x19\x64l_transmission_bandwidth\x18\x04 \x01(\x0b\x32!.entities.NrTransmissionBandwidth\x1a}\n\x07TddInfo\x12/\n\x0cnr_freq_info\x18\x01 \x01(\x0b\x32\x19.entities.NrFrequencyInfo\x12\x41\n\x16transmission_bandwidth\x18\x02 \x01(\x0b\x32!.entities.NrTransmissionBandwidth\"+\n\x02Nr\"%\n\x04Mode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x46\x44\x44\x10\x01\x12\x07\n\x03TDD\x10\x02\"\x89\x02\n\x0fNrFrequencyInfo\x12\x11\n\tnr_ar_fcn\x18\x01 \x01(\x04\x12@\n\x0esulInformation\x18\x03 \x01(\x0b\x32(.entities.NrFrequencyInfo.SulInformation\x12\x34\n\x0f\x66requency_bands\x18\x04 \x03(\x0b\x32\x1b.entities.FrequencyBandItem\x1ak\n\x0eSulInformation\x12\x12\n\nsul_ar_fcn\x18\x01 \x01(\x04\x12\x45\n\x1asul_transmission_bandwidth\x18\x02 \x01(\x0b\x32!.entities.NrTransmissionBandwidth\"K\n\x11\x46requencyBandItem\x12\x19\n\x11nr_frequency_band\x18\x01 \x01(\r\x12\x1b\n\x13supported_sul_bands\x18\x02 \x03(\r\"Y\n\x17NrTransmissionBandwidth\x12\x1e\n\x05nrscs\x18\x01 \x01(\x0e\x32\x0f.entities.Nrscs\x12\x1e\n\x05ncnrb\x18\x02 \x01(\x0e\x32\x0f.entities.Ncnrb\"\xa1\x04\n\x16NrNeighbourInformation\x12\x0e\n\x06nr_pci\x18\x01 \x01(\r\x12\x0e\n\x06nr_cgi\x18\x02 \x01(\t\x12\"\n\x07nr_mode\x18\x03 \x01(\x0e\x32\x11.entities.Nr.Mode\x12\x45\n\x0e\x63hoice_nr_mode\x18\x04 \x01(\x0b\x32-.entities.NrNeighbourInformation.ChoiceNRMode\x12\x0e\n\x06stac5g\x18\x05 \x01(\t\x12\x17\n\x0f\x63onfigured_stac\x18\x06 \x01(\t\x1a\xd2\x02\n\x0c\x43hoiceNRMode\x12\x42\n\x03\x66\x64\x64\x18\x01 \x01(\x0b\x32\x35.entities.NrNeighbourInformation.ChoiceNRMode.FddInfo\x12\x42\n\x03tdd\x18\x02 \x01(\x0b\x32\x35.entities.NrNeighbourInformation.ChoiceNRMode.TddInfo\x1aw\n\x07\x46\x64\x64Info\x12\x35\n\x12ular_fcn_freq_info\x18\x01 \x01(\x0b\x32\x19.entities.NrFrequencyInfo\x12\x35\n\x12\x64lar_fcn_freq_info\x18\x02 \x01(\x0b\x32\x19.entities.NrFrequencyInfo\x1a\x41\n\x07TddInfo\x12\x36\n\x13\x61r_fcn_nr_freq_info\x18\x01 \x01(\x0b\x32\x19.entities.NrFrequencyInfo*G\n\x05Nrscs\x12\x11\n\rUNKNOWN_NRSCS\x10\x00\x12\t\n\x05SCS15\x10\x01\x12\t\n\x05SCS30\x10\x02\x12\t\n\x05SCS60\x10\x03\x12\n\n\x06SCS120\x10\x04*\xe8\x02\n\x05Ncnrb\x12\x11\n\rUNKNOWN_NCNRB\x10\x00\x12\t\n\x05NRB11\x10\x01\x12\t\n\x05NRB18\x10\x02\x12\t\n\x05NRB24\x10\x03\x12\t\n\x05NRB25\x10\x04\x12\t\n\x05NRB31\x10\x05\x12\t\n\x05NRB32\x10\x06\x12\t\n\x05NRB38\x10\x07\x12\t\n\x05NRB51\x10\x08\x12\t\n\x05NRB52\x10\t\x12\t\n\x05NRB65\x10\n\x12\t\n\x05NRB66\x10\x0b\x12\t\n\x05NRB78\x10\x0c\x12\t\n\x05NRB79\x10\r\x12\t\n\x05NRB93\x10\x0e\x12\n\n\x06NRB106\x10\x0f\x12\n\n\x06NRB107\x10\x10\x12\n\n\x06NRB121\x10\x11\x12\n\n\x06NRB132\x10\x12\x12\n\n\x06NRB133\x10\x13\x12\n\n\x06NRB135\x10\x14\x12\n\n\x06NRB160\x10\x15\x12\n\n\x06NRB162\x10\x16\x12\n\n\x06NRB189\x10\x17\x12\n\n\x06NRB216\x10\x18\x12\n\n\x06NRB217\x10\x19\x12\n\n\x06NRB245\x10\x1a\x12\n\n\x06NRB264\x10\x1b\x12\n\n\x06NRB270\x10\x1c\x12\n\n\x06NRB273\x10\x1d*4\n\x07GnbType\x12\x14\n\x10UNKNOWN_GNB_TYPE\x10\x00\x12\x07\n\x03GNB\x10\x01\x12\n\n\x06\x45N_GNB\x10\x02\x62\x06proto3')
+  ,
+  dependencies=[ran__function__pb2.DESCRIPTOR,additional__cell__information__pb2.DESCRIPTOR,])
+
+_NRSCS = _descriptor.EnumDescriptor(
+  name='Nrscs',
+  full_name='entities.Nrscs',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_NRSCS', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SCS15', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SCS30', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SCS60', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SCS120', index=4, number=4,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2235,
+  serialized_end=2306,
+)
+_sym_db.RegisterEnumDescriptor(_NRSCS)
+
+Nrscs = enum_type_wrapper.EnumTypeWrapper(_NRSCS)
+_NCNRB = _descriptor.EnumDescriptor(
+  name='Ncnrb',
+  full_name='entities.Ncnrb',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_NCNRB', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB11', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB18', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB24', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB25', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB31', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB32', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB38', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB51', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB52', index=9, number=9,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB65', index=10, number=10,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB66', index=11, number=11,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB78', index=12, number=12,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB79', index=13, number=13,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB93', index=14, number=14,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB106', index=15, number=15,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB107', index=16, number=16,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB121', index=17, number=17,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB132', index=18, number=18,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB133', index=19, number=19,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB135', index=20, number=20,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB160', index=21, number=21,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB162', index=22, number=22,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB189', index=23, number=23,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB216', index=24, number=24,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB217', index=25, number=25,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB245', index=26, number=26,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB264', index=27, number=27,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB270', index=28, number=28,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NRB273', index=29, number=29,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2309,
+  serialized_end=2669,
+)
+_sym_db.RegisterEnumDescriptor(_NCNRB)
+
+Ncnrb = enum_type_wrapper.EnumTypeWrapper(_NCNRB)
+_GNBTYPE = _descriptor.EnumDescriptor(
+  name='GnbType',
+  full_name='entities.GnbType',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_GNB_TYPE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='GNB', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='EN_GNB', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2671,
+  serialized_end=2723,
+)
+_sym_db.RegisterEnumDescriptor(_GNBTYPE)
+
+GnbType = enum_type_wrapper.EnumTypeWrapper(_GNBTYPE)
+UNKNOWN_NRSCS = 0
+SCS15 = 1
+SCS30 = 2
+SCS60 = 3
+SCS120 = 4
+UNKNOWN_NCNRB = 0
+NRB11 = 1
+NRB18 = 2
+NRB24 = 3
+NRB25 = 4
+NRB31 = 5
+NRB32 = 6
+NRB38 = 7
+NRB51 = 8
+NRB52 = 9
+NRB65 = 10
+NRB66 = 11
+NRB78 = 12
+NRB79 = 13
+NRB93 = 14
+NRB106 = 15
+NRB107 = 16
+NRB121 = 17
+NRB132 = 18
+NRB133 = 19
+NRB135 = 20
+NRB160 = 21
+NRB162 = 22
+NRB189 = 23
+NRB216 = 24
+NRB217 = 25
+NRB245 = 26
+NRB264 = 27
+NRB270 = 28
+NRB273 = 29
+UNKNOWN_GNB_TYPE = 0
+GNB = 1
+EN_GNB = 2
+
+
+_NR_MODE = _descriptor.EnumDescriptor(
+  name='Mode',
+  full_name='entities.Nr.Mode',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='FDD', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TDD', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1212,
+  serialized_end=1249,
+)
+_sym_db.RegisterEnumDescriptor(_NR_MODE)
+
+
+_GNB = _descriptor.Descriptor(
+  name='Gnb',
+  full_name='entities.Gnb',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='served_nr_cells', full_name='entities.Gnb.served_nr_cells', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ran_functions', full_name='entities.Gnb.ran_functions', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gnb_type', full_name='entities.Gnb.gnb_type', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=79,
+  serialized_end=216,
+)
+
+
+_SERVEDNRCELL = _descriptor.Descriptor(
+  name='ServedNRCell',
+  full_name='entities.ServedNRCell',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='served_nr_cell_information', full_name='entities.ServedNRCell.served_nr_cell_information', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='nr_neighbour_infos', full_name='entities.ServedNRCell.nr_neighbour_infos', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=219,
+  serialized_end=366,
+)
+
+
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO = _descriptor.Descriptor(
+  name='FddInfo',
+  full_name='entities.ServedNRCellInformation.ChoiceNRMode.FddInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ul_freq_info', full_name='entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.ul_freq_info', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='dl_freq_info', full_name='entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.dl_freq_info', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ul_transmission_bandwidth', full_name='entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.ul_transmission_bandwidth', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='dl_transmission_bandwidth', full_name='entities.ServedNRCellInformation.ChoiceNRMode.FddInfo.dl_transmission_bandwidth', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=830,
+  serialized_end=1077,
+)
+
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO = _descriptor.Descriptor(
+  name='TddInfo',
+  full_name='entities.ServedNRCellInformation.ChoiceNRMode.TddInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nr_freq_info', full_name='entities.ServedNRCellInformation.ChoiceNRMode.TddInfo.nr_freq_info', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='transmission_bandwidth', full_name='entities.ServedNRCellInformation.ChoiceNRMode.TddInfo.transmission_bandwidth', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1079,
+  serialized_end=1204,
+)
+
+_SERVEDNRCELLINFORMATION_CHOICENRMODE = _descriptor.Descriptor(
+  name='ChoiceNRMode',
+  full_name='entities.ServedNRCellInformation.ChoiceNRMode',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='fdd', full_name='entities.ServedNRCellInformation.ChoiceNRMode.fdd', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='tdd', full_name='entities.ServedNRCellInformation.ChoiceNRMode.tdd', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO, _SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=675,
+  serialized_end=1204,
+)
+
+_SERVEDNRCELLINFORMATION = _descriptor.Descriptor(
+  name='ServedNRCellInformation',
+  full_name='entities.ServedNRCellInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nr_pci', full_name='entities.ServedNRCellInformation.nr_pci', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cell_id', full_name='entities.ServedNRCellInformation.cell_id', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='stac5g', full_name='entities.ServedNRCellInformation.stac5g', index=2,
+      number=3, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='configured_stac', full_name='entities.ServedNRCellInformation.configured_stac', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='served_plmns', full_name='entities.ServedNRCellInformation.served_plmns', index=4,
+      number=5, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='nr_mode', full_name='entities.ServedNRCellInformation.nr_mode', index=5,
+      number=6, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='choice_nr_mode', full_name='entities.ServedNRCellInformation.choice_nr_mode', index=6,
+      number=7, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='additional_cell_information', full_name='entities.ServedNRCellInformation.additional_cell_information', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_SERVEDNRCELLINFORMATION_CHOICENRMODE, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=369,
+  serialized_end=1204,
+)
+
+
+_NR = _descriptor.Descriptor(
+  name='Nr',
+  full_name='entities.Nr',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _NR_MODE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1206,
+  serialized_end=1249,
+)
+
+
+_NRFREQUENCYINFO_SULINFORMATION = _descriptor.Descriptor(
+  name='SulInformation',
+  full_name='entities.NrFrequencyInfo.SulInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='sul_ar_fcn', full_name='entities.NrFrequencyInfo.SulInformation.sul_ar_fcn', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='sul_transmission_bandwidth', full_name='entities.NrFrequencyInfo.SulInformation.sul_transmission_bandwidth', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1410,
+  serialized_end=1517,
+)
+
+_NRFREQUENCYINFO = _descriptor.Descriptor(
+  name='NrFrequencyInfo',
+  full_name='entities.NrFrequencyInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nr_ar_fcn', full_name='entities.NrFrequencyInfo.nr_ar_fcn', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='sulInformation', full_name='entities.NrFrequencyInfo.sulInformation', index=1,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='frequency_bands', full_name='entities.NrFrequencyInfo.frequency_bands', index=2,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_NRFREQUENCYINFO_SULINFORMATION, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1252,
+  serialized_end=1517,
+)
+
+
+_FREQUENCYBANDITEM = _descriptor.Descriptor(
+  name='FrequencyBandItem',
+  full_name='entities.FrequencyBandItem',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nr_frequency_band', full_name='entities.FrequencyBandItem.nr_frequency_band', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='supported_sul_bands', full_name='entities.FrequencyBandItem.supported_sul_bands', index=1,
+      number=2, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1519,
+  serialized_end=1594,
+)
+
+
+_NRTRANSMISSIONBANDWIDTH = _descriptor.Descriptor(
+  name='NrTransmissionBandwidth',
+  full_name='entities.NrTransmissionBandwidth',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nrscs', full_name='entities.NrTransmissionBandwidth.nrscs', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ncnrb', full_name='entities.NrTransmissionBandwidth.ncnrb', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1596,
+  serialized_end=1685,
+)
+
+
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO = _descriptor.Descriptor(
+  name='FddInfo',
+  full_name='entities.NrNeighbourInformation.ChoiceNRMode.FddInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ular_fcn_freq_info', full_name='entities.NrNeighbourInformation.ChoiceNRMode.FddInfo.ular_fcn_freq_info', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='dlar_fcn_freq_info', full_name='entities.NrNeighbourInformation.ChoiceNRMode.FddInfo.dlar_fcn_freq_info', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2047,
+  serialized_end=2166,
+)
+
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_TDDINFO = _descriptor.Descriptor(
+  name='TddInfo',
+  full_name='entities.NrNeighbourInformation.ChoiceNRMode.TddInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ar_fcn_nr_freq_info', full_name='entities.NrNeighbourInformation.ChoiceNRMode.TddInfo.ar_fcn_nr_freq_info', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2168,
+  serialized_end=2233,
+)
+
+_NRNEIGHBOURINFORMATION_CHOICENRMODE = _descriptor.Descriptor(
+  name='ChoiceNRMode',
+  full_name='entities.NrNeighbourInformation.ChoiceNRMode',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='fdd', full_name='entities.NrNeighbourInformation.ChoiceNRMode.fdd', index=0,
+      number=1, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='tdd', full_name='entities.NrNeighbourInformation.ChoiceNRMode.tdd', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO, _NRNEIGHBOURINFORMATION_CHOICENRMODE_TDDINFO, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1895,
+  serialized_end=2233,
+)
+
+_NRNEIGHBOURINFORMATION = _descriptor.Descriptor(
+  name='NrNeighbourInformation',
+  full_name='entities.NrNeighbourInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='nr_pci', full_name='entities.NrNeighbourInformation.nr_pci', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='nr_cgi', full_name='entities.NrNeighbourInformation.nr_cgi', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='nr_mode', full_name='entities.NrNeighbourInformation.nr_mode', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='choice_nr_mode', full_name='entities.NrNeighbourInformation.choice_nr_mode', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='stac5g', full_name='entities.NrNeighbourInformation.stac5g', index=4,
+      number=5, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='configured_stac', full_name='entities.NrNeighbourInformation.configured_stac', index=5,
+      number=6, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[_NRNEIGHBOURINFORMATION_CHOICENRMODE, ],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1688,
+  serialized_end=2233,
+)
+
+_GNB.fields_by_name['served_nr_cells'].message_type = _SERVEDNRCELL
+_GNB.fields_by_name['ran_functions'].message_type = ran__function__pb2._RANFUNCTION
+_GNB.fields_by_name['gnb_type'].enum_type = _GNBTYPE
+_SERVEDNRCELL.fields_by_name['served_nr_cell_information'].message_type = _SERVEDNRCELLINFORMATION
+_SERVEDNRCELL.fields_by_name['nr_neighbour_infos'].message_type = _NRNEIGHBOURINFORMATION
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO.fields_by_name['ul_freq_info'].message_type = _NRFREQUENCYINFO
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO.fields_by_name['dl_freq_info'].message_type = _NRFREQUENCYINFO
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO.fields_by_name['ul_transmission_bandwidth'].message_type = _NRTRANSMISSIONBANDWIDTH
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO.fields_by_name['dl_transmission_bandwidth'].message_type = _NRTRANSMISSIONBANDWIDTH
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO.containing_type = _SERVEDNRCELLINFORMATION_CHOICENRMODE
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO.fields_by_name['nr_freq_info'].message_type = _NRFREQUENCYINFO
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO.fields_by_name['transmission_bandwidth'].message_type = _NRTRANSMISSIONBANDWIDTH
+_SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO.containing_type = _SERVEDNRCELLINFORMATION_CHOICENRMODE
+_SERVEDNRCELLINFORMATION_CHOICENRMODE.fields_by_name['fdd'].message_type = _SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO
+_SERVEDNRCELLINFORMATION_CHOICENRMODE.fields_by_name['tdd'].message_type = _SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO
+_SERVEDNRCELLINFORMATION_CHOICENRMODE.containing_type = _SERVEDNRCELLINFORMATION
+_SERVEDNRCELLINFORMATION.fields_by_name['nr_mode'].enum_type = _NR_MODE
+_SERVEDNRCELLINFORMATION.fields_by_name['choice_nr_mode'].message_type = _SERVEDNRCELLINFORMATION_CHOICENRMODE
+_SERVEDNRCELLINFORMATION.fields_by_name['additional_cell_information'].message_type = additional__cell__information__pb2._ADDITIONALCELLINFORMATION
+_NR_MODE.containing_type = _NR
+_NRFREQUENCYINFO_SULINFORMATION.fields_by_name['sul_transmission_bandwidth'].message_type = _NRTRANSMISSIONBANDWIDTH
+_NRFREQUENCYINFO_SULINFORMATION.containing_type = _NRFREQUENCYINFO
+_NRFREQUENCYINFO.fields_by_name['sulInformation'].message_type = _NRFREQUENCYINFO_SULINFORMATION
+_NRFREQUENCYINFO.fields_by_name['frequency_bands'].message_type = _FREQUENCYBANDITEM
+_NRTRANSMISSIONBANDWIDTH.fields_by_name['nrscs'].enum_type = _NRSCS
+_NRTRANSMISSIONBANDWIDTH.fields_by_name['ncnrb'].enum_type = _NCNRB
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO.fields_by_name['ular_fcn_freq_info'].message_type = _NRFREQUENCYINFO
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO.fields_by_name['dlar_fcn_freq_info'].message_type = _NRFREQUENCYINFO
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO.containing_type = _NRNEIGHBOURINFORMATION_CHOICENRMODE
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_TDDINFO.fields_by_name['ar_fcn_nr_freq_info'].message_type = _NRFREQUENCYINFO
+_NRNEIGHBOURINFORMATION_CHOICENRMODE_TDDINFO.containing_type = _NRNEIGHBOURINFORMATION_CHOICENRMODE
+_NRNEIGHBOURINFORMATION_CHOICENRMODE.fields_by_name['fdd'].message_type = _NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO
+_NRNEIGHBOURINFORMATION_CHOICENRMODE.fields_by_name['tdd'].message_type = _NRNEIGHBOURINFORMATION_CHOICENRMODE_TDDINFO
+_NRNEIGHBOURINFORMATION_CHOICENRMODE.containing_type = _NRNEIGHBOURINFORMATION
+_NRNEIGHBOURINFORMATION.fields_by_name['nr_mode'].enum_type = _NR_MODE
+_NRNEIGHBOURINFORMATION.fields_by_name['choice_nr_mode'].message_type = _NRNEIGHBOURINFORMATION_CHOICENRMODE
+DESCRIPTOR.message_types_by_name['Gnb'] = _GNB
+DESCRIPTOR.message_types_by_name['ServedNRCell'] = _SERVEDNRCELL
+DESCRIPTOR.message_types_by_name['ServedNRCellInformation'] = _SERVEDNRCELLINFORMATION
+DESCRIPTOR.message_types_by_name['Nr'] = _NR
+DESCRIPTOR.message_types_by_name['NrFrequencyInfo'] = _NRFREQUENCYINFO
+DESCRIPTOR.message_types_by_name['FrequencyBandItem'] = _FREQUENCYBANDITEM
+DESCRIPTOR.message_types_by_name['NrTransmissionBandwidth'] = _NRTRANSMISSIONBANDWIDTH
+DESCRIPTOR.message_types_by_name['NrNeighbourInformation'] = _NRNEIGHBOURINFORMATION
+DESCRIPTOR.enum_types_by_name['Nrscs'] = _NRSCS
+DESCRIPTOR.enum_types_by_name['Ncnrb'] = _NCNRB
+DESCRIPTOR.enum_types_by_name['GnbType'] = _GNBTYPE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Gnb = _reflection.GeneratedProtocolMessageType('Gnb', (_message.Message,), dict(
+  DESCRIPTOR = _GNB,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Gnb)
+  ))
+_sym_db.RegisterMessage(Gnb)
+
+ServedNRCell = _reflection.GeneratedProtocolMessageType('ServedNRCell', (_message.Message,), dict(
+  DESCRIPTOR = _SERVEDNRCELL,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ServedNRCell)
+  ))
+_sym_db.RegisterMessage(ServedNRCell)
+
+ServedNRCellInformation = _reflection.GeneratedProtocolMessageType('ServedNRCellInformation', (_message.Message,), dict(
+
+  ChoiceNRMode = _reflection.GeneratedProtocolMessageType('ChoiceNRMode', (_message.Message,), dict(
+
+    FddInfo = _reflection.GeneratedProtocolMessageType('FddInfo', (_message.Message,), dict(
+      DESCRIPTOR = _SERVEDNRCELLINFORMATION_CHOICENRMODE_FDDINFO,
+      __module__ = 'gnb_pb2'
+      # @@protoc_insertion_point(class_scope:entities.ServedNRCellInformation.ChoiceNRMode.FddInfo)
+      ))
+    ,
+
+    TddInfo = _reflection.GeneratedProtocolMessageType('TddInfo', (_message.Message,), dict(
+      DESCRIPTOR = _SERVEDNRCELLINFORMATION_CHOICENRMODE_TDDINFO,
+      __module__ = 'gnb_pb2'
+      # @@protoc_insertion_point(class_scope:entities.ServedNRCellInformation.ChoiceNRMode.TddInfo)
+      ))
+    ,
+    DESCRIPTOR = _SERVEDNRCELLINFORMATION_CHOICENRMODE,
+    __module__ = 'gnb_pb2'
+    # @@protoc_insertion_point(class_scope:entities.ServedNRCellInformation.ChoiceNRMode)
+    ))
+  ,
+  DESCRIPTOR = _SERVEDNRCELLINFORMATION,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ServedNRCellInformation)
+  ))
+_sym_db.RegisterMessage(ServedNRCellInformation)
+_sym_db.RegisterMessage(ServedNRCellInformation.ChoiceNRMode)
+_sym_db.RegisterMessage(ServedNRCellInformation.ChoiceNRMode.FddInfo)
+_sym_db.RegisterMessage(ServedNRCellInformation.ChoiceNRMode.TddInfo)
+
+Nr = _reflection.GeneratedProtocolMessageType('Nr', (_message.Message,), dict(
+  DESCRIPTOR = _NR,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Nr)
+  ))
+_sym_db.RegisterMessage(Nr)
+
+NrFrequencyInfo = _reflection.GeneratedProtocolMessageType('NrFrequencyInfo', (_message.Message,), dict(
+
+  SulInformation = _reflection.GeneratedProtocolMessageType('SulInformation', (_message.Message,), dict(
+    DESCRIPTOR = _NRFREQUENCYINFO_SULINFORMATION,
+    __module__ = 'gnb_pb2'
+    # @@protoc_insertion_point(class_scope:entities.NrFrequencyInfo.SulInformation)
+    ))
+  ,
+  DESCRIPTOR = _NRFREQUENCYINFO,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.NrFrequencyInfo)
+  ))
+_sym_db.RegisterMessage(NrFrequencyInfo)
+_sym_db.RegisterMessage(NrFrequencyInfo.SulInformation)
+
+FrequencyBandItem = _reflection.GeneratedProtocolMessageType('FrequencyBandItem', (_message.Message,), dict(
+  DESCRIPTOR = _FREQUENCYBANDITEM,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.FrequencyBandItem)
+  ))
+_sym_db.RegisterMessage(FrequencyBandItem)
+
+NrTransmissionBandwidth = _reflection.GeneratedProtocolMessageType('NrTransmissionBandwidth', (_message.Message,), dict(
+  DESCRIPTOR = _NRTRANSMISSIONBANDWIDTH,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.NrTransmissionBandwidth)
+  ))
+_sym_db.RegisterMessage(NrTransmissionBandwidth)
+
+NrNeighbourInformation = _reflection.GeneratedProtocolMessageType('NrNeighbourInformation', (_message.Message,), dict(
+
+  ChoiceNRMode = _reflection.GeneratedProtocolMessageType('ChoiceNRMode', (_message.Message,), dict(
+
+    FddInfo = _reflection.GeneratedProtocolMessageType('FddInfo', (_message.Message,), dict(
+      DESCRIPTOR = _NRNEIGHBOURINFORMATION_CHOICENRMODE_FDDINFO,
+      __module__ = 'gnb_pb2'
+      # @@protoc_insertion_point(class_scope:entities.NrNeighbourInformation.ChoiceNRMode.FddInfo)
+      ))
+    ,
+
+    TddInfo = _reflection.GeneratedProtocolMessageType('TddInfo', (_message.Message,), dict(
+      DESCRIPTOR = _NRNEIGHBOURINFORMATION_CHOICENRMODE_TDDINFO,
+      __module__ = 'gnb_pb2'
+      # @@protoc_insertion_point(class_scope:entities.NrNeighbourInformation.ChoiceNRMode.TddInfo)
+      ))
+    ,
+    DESCRIPTOR = _NRNEIGHBOURINFORMATION_CHOICENRMODE,
+    __module__ = 'gnb_pb2'
+    # @@protoc_insertion_point(class_scope:entities.NrNeighbourInformation.ChoiceNRMode)
+    ))
+  ,
+  DESCRIPTOR = _NRNEIGHBOURINFORMATION,
+  __module__ = 'gnb_pb2'
+  # @@protoc_insertion_point(class_scope:entities.NrNeighbourInformation)
+  ))
+_sym_db.RegisterMessage(NrNeighbourInformation)
+_sym_db.RegisterMessage(NrNeighbourInformation.ChoiceNRMode)
+_sym_db.RegisterMessage(NrNeighbourInformation.ChoiceNRMode.FddInfo)
+_sym_db.RegisterMessage(NrNeighbourInformation.ChoiceNRMode.TddInfo)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/nb_identity_pb2.py b/ricxappframe/entities/rnib/nb_identity_pb2.py
new file mode 100644 (file)
index 0000000..42c2227
--- /dev/null
@@ -0,0 +1,197 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: nb_identity.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='nb_identity.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x11nb_identity.proto\x12\x08\x65ntities\",\n\nGlobalNbId\x12\x0f\n\x07plmn_id\x18\x01 \x01(\t\x12\r\n\x05nb_id\x18\x02 \x01(\t\"\xd5\x01\n\nNbIdentity\x12\x16\n\x0einventory_name\x18\x01 \x01(\t\x12*\n\x0cglobal_nb_id\x18\x02 \x01(\x0b\x32\x14.entities.GlobalNbId\x12\x35\n\x11\x63onnection_status\x18\x03 \x01(\x0e\x32\x1a.entities.ConnectionStatus\x12#\n\x1bhealth_check_timestamp_sent\x18\x04 \x01(\x03\x12\'\n\x1fhealth_check_timestamp_received\x18\x05 \x01(\x03*\xa0\x01\n\x10\x43onnectionStatus\x12\x1d\n\x19UNKNOWN_CONNECTION_STATUS\x10\x00\x12\r\n\tCONNECTED\x10\x01\x12\x10\n\x0c\x44ISCONNECTED\x10\x02\x12\x1a\n\x16\x43ONNECTED_SETUP_FAILED\x10\x03\x12\x0e\n\nCONNECTING\x10\x04\x12\x11\n\rSHUTTING_DOWN\x10\x05\x12\r\n\tSHUT_DOWN\x10\x06\x62\x06proto3')
+)
+
+_CONNECTIONSTATUS = _descriptor.EnumDescriptor(
+  name='ConnectionStatus',
+  full_name='entities.ConnectionStatus',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_CONNECTION_STATUS', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='CONNECTED', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DISCONNECTED', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='CONNECTED_SETUP_FAILED', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='CONNECTING', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SHUTTING_DOWN', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SHUT_DOWN', index=6, number=6,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=294,
+  serialized_end=454,
+)
+_sym_db.RegisterEnumDescriptor(_CONNECTIONSTATUS)
+
+ConnectionStatus = enum_type_wrapper.EnumTypeWrapper(_CONNECTIONSTATUS)
+UNKNOWN_CONNECTION_STATUS = 0
+CONNECTED = 1
+DISCONNECTED = 2
+CONNECTED_SETUP_FAILED = 3
+CONNECTING = 4
+SHUTTING_DOWN = 5
+SHUT_DOWN = 6
+
+
+
+_GLOBALNBID = _descriptor.Descriptor(
+  name='GlobalNbId',
+  full_name='entities.GlobalNbId',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='plmn_id', full_name='entities.GlobalNbId.plmn_id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='nb_id', full_name='entities.GlobalNbId.nb_id', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=31,
+  serialized_end=75,
+)
+
+
+_NBIDENTITY = _descriptor.Descriptor(
+  name='NbIdentity',
+  full_name='entities.NbIdentity',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='inventory_name', full_name='entities.NbIdentity.inventory_name', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='global_nb_id', full_name='entities.NbIdentity.global_nb_id', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='connection_status', full_name='entities.NbIdentity.connection_status', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='health_check_timestamp_sent', full_name='entities.NbIdentity.health_check_timestamp_sent', index=3,
+      number=4, type=3, cpp_type=2, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='health_check_timestamp_received', full_name='entities.NbIdentity.health_check_timestamp_received', index=4,
+      number=5, type=3, cpp_type=2, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=78,
+  serialized_end=291,
+)
+
+_NBIDENTITY.fields_by_name['global_nb_id'].message_type = _GLOBALNBID
+_NBIDENTITY.fields_by_name['connection_status'].enum_type = _CONNECTIONSTATUS
+DESCRIPTOR.message_types_by_name['GlobalNbId'] = _GLOBALNBID
+DESCRIPTOR.message_types_by_name['NbIdentity'] = _NBIDENTITY
+DESCRIPTOR.enum_types_by_name['ConnectionStatus'] = _CONNECTIONSTATUS
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+GlobalNbId = _reflection.GeneratedProtocolMessageType('GlobalNbId', (_message.Message,), dict(
+  DESCRIPTOR = _GLOBALNBID,
+  __module__ = 'nb_identity_pb2'
+  # @@protoc_insertion_point(class_scope:entities.GlobalNbId)
+  ))
+_sym_db.RegisterMessage(GlobalNbId)
+
+NbIdentity = _reflection.GeneratedProtocolMessageType('NbIdentity', (_message.Message,), dict(
+  DESCRIPTOR = _NBIDENTITY,
+  __module__ = 'nb_identity_pb2'
+  # @@protoc_insertion_point(class_scope:entities.NbIdentity)
+  ))
+_sym_db.RegisterMessage(NbIdentity)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/nodeb_info_pb2.py b/ricxappframe/entities/rnib/nodeb_info_pb2.py
new file mode 100644 (file)
index 0000000..24865e4
--- /dev/null
@@ -0,0 +1,327 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: nodeb_info.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import gnb_pb2 as gnb__pb2
+from . import enb_pb2 as enb__pb2
+from . import x2_setup_failure_response_pb2 as x2__setup__failure__response__pb2
+from . import nb_identity_pb2 as nb__identity__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='nodeb_info.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x10nodeb_info.proto\x12\x08\x65ntities\x1a\tgnb.proto\x1a\tenb.proto\x1a\x1fx2_setup_failure_response.proto\x1a\x11nb_identity.proto\"\xf3\x03\n\tNodebInfo\x12\x10\n\x08ran_name\x18\x01 \x01(\t\x12\n\n\x02ip\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\x12@\n\x17\x65\x32_application_protocol\x18\x04 \x01(\x0e\x32\x1f.entities.E2ApplicationProtocol\x12\x35\n\x11\x63onnection_status\x18\x05 \x01(\x0e\x32\x1a.entities.ConnectionStatus\x12*\n\x0cglobal_nb_id\x18\x06 \x01(\x0b\x32\x14.entities.GlobalNbId\x12&\n\tnode_type\x18\x07 \x01(\x0e\x32\x13.entities.Node.Type\x12\x1c\n\x03\x65nb\x18\x08 \x01(\x0b\x32\r.entities.EnbH\x00\x12\x1c\n\x03gnb\x18\t \x01(\x0b\x32\r.entities.GnbH\x00\x12,\n\x0c\x66\x61ilure_type\x18\n \x01(\x0e\x32\x16.entities.Failure.Type\x12-\n\rsetup_failure\x18\x0b \x01(\x0b\x32\x16.entities.SetupFailure\x12\'\n\x1f\x61ssociated_e2t_instance_address\x18\x0c \x01(\t\x12\x1a\n\x12setup_from_network\x18\r \x01(\x08\x42\x0f\n\rconfiguration\"-\n\x04Node\"%\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x45NB\x10\x01\x12\x07\n\x03GNB\x10\x02\"T\n\x07\x46\x61ilure\"I\n\x04Type\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x14\n\x10X2_SETUP_FAILURE\x10\x01\x12\x19\n\x15\x45NDC_X2_SETUP_FAILURE\x10\x02*m\n\x15\x45\x32\x41pplicationProtocol\x12#\n\x1fUNKNOWN_E2_APPLICATION_PROTOCOL\x10\x00\x12\x14\n\x10X2_SETUP_REQUEST\x10\x01\x12\x19\n\x15\x45NDC_X2_SETUP_REQUEST\x10\x02\x62\x06proto3')
+  ,
+  dependencies=[gnb__pb2.DESCRIPTOR,enb__pb2.DESCRIPTOR,x2__setup__failure__response__pb2.DESCRIPTOR,nb__identity__pb2.DESCRIPTOR,])
+
+_E2APPLICATIONPROTOCOL = _descriptor.EnumDescriptor(
+  name='E2ApplicationProtocol',
+  full_name='entities.E2ApplicationProtocol',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_E2_APPLICATION_PROTOCOL', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='X2_SETUP_REQUEST', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ENDC_X2_SETUP_REQUEST', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=739,
+  serialized_end=848,
+)
+_sym_db.RegisterEnumDescriptor(_E2APPLICATIONPROTOCOL)
+
+E2ApplicationProtocol = enum_type_wrapper.EnumTypeWrapper(_E2APPLICATIONPROTOCOL)
+UNKNOWN_E2_APPLICATION_PROTOCOL = 0
+X2_SETUP_REQUEST = 1
+ENDC_X2_SETUP_REQUEST = 2
+
+
+_NODE_TYPE = _descriptor.EnumDescriptor(
+  name='Type',
+  full_name='entities.Node.Type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ENB', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='GNB', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=614,
+  serialized_end=651,
+)
+_sym_db.RegisterEnumDescriptor(_NODE_TYPE)
+
+_FAILURE_TYPE = _descriptor.EnumDescriptor(
+  name='Type',
+  full_name='entities.Failure.Type',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_TYPE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='X2_SETUP_FAILURE', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ENDC_X2_SETUP_FAILURE', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=664,
+  serialized_end=737,
+)
+_sym_db.RegisterEnumDescriptor(_FAILURE_TYPE)
+
+
+_NODEBINFO = _descriptor.Descriptor(
+  name='NodebInfo',
+  full_name='entities.NodebInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ran_name', full_name='entities.NodebInfo.ran_name', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ip', full_name='entities.NodebInfo.ip', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='port', full_name='entities.NodebInfo.port', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='e2_application_protocol', full_name='entities.NodebInfo.e2_application_protocol', index=3,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='connection_status', full_name='entities.NodebInfo.connection_status', index=4,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='global_nb_id', full_name='entities.NodebInfo.global_nb_id', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='node_type', full_name='entities.NodebInfo.node_type', index=6,
+      number=7, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='enb', full_name='entities.NodebInfo.enb', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='gnb', full_name='entities.NodebInfo.gnb', index=8,
+      number=9, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='failure_type', full_name='entities.NodebInfo.failure_type', index=9,
+      number=10, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='setup_failure', full_name='entities.NodebInfo.setup_failure', index=10,
+      number=11, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='associated_e2t_instance_address', full_name='entities.NodebInfo.associated_e2t_instance_address', index=11,
+      number=12, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='setup_from_network', full_name='entities.NodebInfo.setup_from_network', index=12,
+      number=13, type=8, cpp_type=7, label=1,
+      has_default_value=False, default_value=False,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='configuration', full_name='entities.NodebInfo.configuration',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=105,
+  serialized_end=604,
+)
+
+
+_NODE = _descriptor.Descriptor(
+  name='Node',
+  full_name='entities.Node',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _NODE_TYPE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=606,
+  serialized_end=651,
+)
+
+
+_FAILURE = _descriptor.Descriptor(
+  name='Failure',
+  full_name='entities.Failure',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _FAILURE_TYPE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=653,
+  serialized_end=737,
+)
+
+_NODEBINFO.fields_by_name['e2_application_protocol'].enum_type = _E2APPLICATIONPROTOCOL
+_NODEBINFO.fields_by_name['connection_status'].enum_type = nb__identity__pb2._CONNECTIONSTATUS
+_NODEBINFO.fields_by_name['global_nb_id'].message_type = nb__identity__pb2._GLOBALNBID
+_NODEBINFO.fields_by_name['node_type'].enum_type = _NODE_TYPE
+_NODEBINFO.fields_by_name['enb'].message_type = enb__pb2._ENB
+_NODEBINFO.fields_by_name['gnb'].message_type = gnb__pb2._GNB
+_NODEBINFO.fields_by_name['failure_type'].enum_type = _FAILURE_TYPE
+_NODEBINFO.fields_by_name['setup_failure'].message_type = x2__setup__failure__response__pb2._SETUPFAILURE
+_NODEBINFO.oneofs_by_name['configuration'].fields.append(
+  _NODEBINFO.fields_by_name['enb'])
+_NODEBINFO.fields_by_name['enb'].containing_oneof = _NODEBINFO.oneofs_by_name['configuration']
+_NODEBINFO.oneofs_by_name['configuration'].fields.append(
+  _NODEBINFO.fields_by_name['gnb'])
+_NODEBINFO.fields_by_name['gnb'].containing_oneof = _NODEBINFO.oneofs_by_name['configuration']
+_NODE_TYPE.containing_type = _NODE
+_FAILURE_TYPE.containing_type = _FAILURE
+DESCRIPTOR.message_types_by_name['NodebInfo'] = _NODEBINFO
+DESCRIPTOR.message_types_by_name['Node'] = _NODE
+DESCRIPTOR.message_types_by_name['Failure'] = _FAILURE
+DESCRIPTOR.enum_types_by_name['E2ApplicationProtocol'] = _E2APPLICATIONPROTOCOL
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+NodebInfo = _reflection.GeneratedProtocolMessageType('NodebInfo', (_message.Message,), dict(
+  DESCRIPTOR = _NODEBINFO,
+  __module__ = 'nodeb_info_pb2'
+  # @@protoc_insertion_point(class_scope:entities.NodebInfo)
+  ))
+_sym_db.RegisterMessage(NodebInfo)
+
+Node = _reflection.GeneratedProtocolMessageType('Node', (_message.Message,), dict(
+  DESCRIPTOR = _NODE,
+  __module__ = 'nodeb_info_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Node)
+  ))
+_sym_db.RegisterMessage(Node)
+
+Failure = _reflection.GeneratedProtocolMessageType('Failure', (_message.Message,), dict(
+  DESCRIPTOR = _FAILURE,
+  __module__ = 'nodeb_info_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Failure)
+  ))
+_sym_db.RegisterMessage(Failure)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/ran_function_pb2.py b/ricxappframe/entities/rnib/ran_function_pb2.py
new file mode 100644 (file)
index 0000000..fd48767
--- /dev/null
@@ -0,0 +1,83 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: ran_function.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='ran_function.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x12ran_function.proto\x12\x08\x65ntities\"f\n\x0bRanFunction\x12\x17\n\x0fran_function_id\x18\x01 \x01(\r\x12\x1f\n\x17ran_function_definition\x18\x02 \x01(\t\x12\x1d\n\x15ran_function_revision\x18\x03 \x01(\rb\x06proto3')
+)
+
+
+
+
+_RANFUNCTION = _descriptor.Descriptor(
+  name='RanFunction',
+  full_name='entities.RanFunction',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ran_function_id', full_name='entities.RanFunction.ran_function_id', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ran_function_definition', full_name='entities.RanFunction.ran_function_definition', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ran_function_revision', full_name='entities.RanFunction.ran_function_revision', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=32,
+  serialized_end=134,
+)
+
+DESCRIPTOR.message_types_by_name['RanFunction'] = _RANFUNCTION
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+RanFunction = _reflection.GeneratedProtocolMessageType('RanFunction', (_message.Message,), dict(
+  DESCRIPTOR = _RANFUNCTION,
+  __module__ = 'ran_function_pb2'
+  # @@protoc_insertion_point(class_scope:entities.RanFunction)
+  ))
+_sym_db.RegisterMessage(RanFunction)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/ran_load_information_pb2.py b/ricxappframe/entities/rnib/ran_load_information_pb2.py
new file mode 100644 (file)
index 0000000..1238cea
--- /dev/null
@@ -0,0 +1,1064 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: ran_load_information.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import enb_pb2 as enb__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='ran_load_information.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x1aran_load_information.proto\x12\x08\x65ntities\x1a\tenb.proto\"d\n\x12RanLoadInformation\x12\x16\n\x0eload_timestamp\x18\x01 \x01(\x04\x12\x36\n\x0f\x63\x65ll_load_infos\x18\x02 \x03(\x0b\x32\x1d.entities.CellLoadInformation\"\xb2\x05\n\x13\x43\x65llLoadInformation\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\t\x12X\n$ul_interference_overload_indications\x18\x02 \x03(\x0e\x32*.entities.UlInterferenceOverloadIndication\x12K\n\x1aul_high_interference_infos\x18\x03 \x03(\x0b\x32\'.entities.UlHighInterferenceInformation\x12I\n\x1crelative_narrowband_tx_power\x18\x04 \x01(\x0b\x32#.entities.RelativeNarrowbandTxPower\x12\x31\n\x0f\x61\x62s_information\x18\x05 \x01(\x0b\x32\x18.entities.AbsInformation\x12\x35\n\x11invoke_indication\x18\x06 \x01(\x0e\x32\x1a.entities.InvokeIndication\x12\x42\n\x1cintended_ul_dl_configuration\x18\x07 \x01(\x0e\x32\x1c.entities.SubframeAssignment\x12\\\n&extended_ul_interference_overload_info\x18\x08 \x01(\x0b\x32,.entities.ExtendedUlInterferenceOverloadInfo\x12\x33\n\x10\x63omp_information\x18\t \x01(\x0b\x32\x19.entities.CompInformation\x12W\n#dynamic_dl_transmission_information\x18\n \x01(\x0b\x32*.entities.DynamicDlTransmissionInformation\"`\n\x1dUlHighInterferenceInformation\x12\x16\n\x0etarget_cell_id\x18\x01 \x01(\t\x12\'\n\x1ful_high_interference_indication\x18\x02 \x01(\t\"\x9c\x02\n\x19RelativeNarrowbandTxPower\x12\x14\n\x0crntp_per_prb\x18\x01 \x01(\t\x12/\n\x0erntp_threshold\x18\x02 \x01(\x0e\x32\x17.entities.RntpThreshold\x12Y\n%number_of_cell_specific_antenna_ports\x18\x03 \x01(\x0e\x32*.entities.NumberOfCellSpecificAntennaPorts\x12\x0b\n\x03p_b\x18\x04 \x01(\r\x12!\n\x19pdcch_interference_impact\x18\x05 \x01(\r\x12-\n\renhanced_rntp\x18\x06 \x01(\x0b\x32\x16.entities.EnhancedRntp\"\x9f\x01\n\x0c\x45nhancedRntp\x12\x1c\n\x14\x65nhanced_rntp_bitmap\x18\x01 \x01(\t\x12:\n\x19rntp_high_power_threshold\x18\x02 \x01(\x0e\x32\x17.entities.RntpThreshold\x12\x35\n\x18\x65nhanced_rntp_start_time\x18\x03 \x01(\x0b\x32\x13.entities.StartTime\"=\n\tStartTime\x12\x11\n\tstart_sfn\x18\x01 \x01(\x05\x12\x1d\n\x15start_subframe_number\x18\x02 \x01(\x05\"\xcd\x01\n\x0e\x41\x62sInformation\x12*\n\x04mode\x18\x01 \x01(\x0e\x32\x1c.entities.AbsInformationMode\x12\x18\n\x10\x61\x62s_pattern_info\x18\x02 \x01(\t\x12Y\n%number_of_cell_specific_antenna_ports\x18\x03 \x01(\x0e\x32*.entities.NumberOfCellSpecificAntennaPorts\x12\x1a\n\x12measurement_subset\x18\x04 \x01(\t\"\xa5\x01\n\"ExtendedUlInterferenceOverloadInfo\x12\x1c\n\x14\x61ssociated_subframes\x18\x01 \x01(\t\x12\x61\n-extended_ul_interference_overload_indications\x18\x02 \x03(\x0e\x32*.entities.UlInterferenceOverloadIndication\"\x8a\x01\n\x0f\x43ompInformation\x12=\n\x16\x63omp_information_items\x18\x01 \x03(\x0b\x32\x1d.entities.CompInformationItem\x12\x38\n\x1b\x63omp_information_start_time\x18\x02 \x01(\x0b\x32\x13.entities.StartTime\"h\n\x13\x43ompInformationItem\x12\x39\n\x14\x63omp_hypothesis_sets\x18\x01 \x03(\x0b\x32\x1b.entities.CompHypothesisSet\x12\x16\n\x0e\x62\x65nefit_metric\x18\x02 \x01(\x05\"=\n\x11\x43ompHypothesisSet\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\t\x12\x17\n\x0f\x63omp_hypothesis\x18\x02 \x01(\t\"\x90\x01\n DynamicDlTransmissionInformation\x12#\n\x05state\x18\x01 \x01(\x0e\x32\x14.entities.NaicsState\x12\x1a\n\x12transmission_modes\x18\x02 \x01(\t\x12\x0b\n\x03p_b\x18\x03 \x01(\r\x12\x1e\n\x08p_a_list\x18\x04 \x03(\x0e\x32\x0c.entities.PA*\x99\x01\n UlInterferenceOverloadIndication\x12/\n+UNKNOWN_UL_INTERFERENCE_OVERLOAD_INDICATION\x10\x00\x12\x15\n\x11HIGH_INTERFERENCE\x10\x01\x12\x17\n\x13MEDIUM_INTERFERENCE\x10\x02\x12\x14\n\x10LOW_INTERFERENCE\x10\x03*\xd8\x01\n\rRntpThreshold\x12\x1a\n\x16UNKNOWN_RNTP_THRESHOLD\x10\x00\x12\x10\n\x0cNEG_INFINITY\x10\x01\x12\n\n\x06NEG_11\x10\x02\x12\n\n\x06NEG_10\x10\x03\x12\t\n\x05NEG_9\x10\x04\x12\t\n\x05NEG_8\x10\x05\x12\t\n\x05NEG_7\x10\x06\x12\t\n\x05NEG_6\x10\x07\x12\t\n\x05NEG_5\x10\x08\x12\t\n\x05NEG_4\x10\t\x12\t\n\x05NEG_3\x10\n\x12\t\n\x05NEG_2\x10\x0b\x12\t\n\x05NEG_1\x10\x0c\x12\x06\n\x02V0\x10\r\x12\x06\n\x02V1\x10\x0e\x12\x06\n\x02V2\x10\x0f\x12\x06\n\x02V3\x10\x10*\x85\x01\n NumberOfCellSpecificAntennaPorts\x12\x31\n-UNKNOWN_NUMBER_OF_CELL_SPECIFIC_ANTENNA_PORTS\x10\x00\x12\x0e\n\nV1_ANT_PRT\x10\x01\x12\x0e\n\nV2_ANT_PRT\x10\x02\x12\x0e\n\nV4_ANT_PRT\x10\x04*l\n\x12\x41\x62sInformationMode\x12 \n\x1cUNKNOWN_ABS_INFORMATION_MODE\x10\x00\x12\x10\n\x0c\x41\x42S_INFO_FDD\x10\x01\x12\x10\n\x0c\x41\x42S_INFO_TDD\x10\x02\x12\x10\n\x0c\x41\x42S_INACTIVE\x10\x03*\x7f\n\x10InvokeIndication\x12\x1d\n\x19UNKNOWN_INVOKE_INDICATION\x10\x00\x12\x13\n\x0f\x41\x42S_INFORMATION\x10\x01\x12\x1b\n\x17START_NAICS_INFORMATION\x10\x02\x12\x1a\n\x16STOP_NAICS_INFORMATION\x10\x03*K\n\nNaicsState\x12\x17\n\x13UNKNOWN_NAICS_STATE\x10\x00\x12\x10\n\x0cNAICS_ACTIVE\x10\x01\x12\x12\n\x0eNAICS_INACTIVE\x10\x02*\x82\x01\n\x02PA\x12\x0e\n\nUNKNOWN_PA\x10\x00\x12\x0c\n\x08\x44\x42_NEG_6\x10\x01\x12\x13\n\x0f\x44\x42_NEG_4_DOT_77\x10\x02\x12\x0c\n\x08\x44\x42_NEG_3\x10\x03\x12\x13\n\x0f\x44\x42_NEG_1_DOT_77\x10\x04\x12\x08\n\x04\x44\x42_0\x10\x05\x12\x08\n\x04\x44\x42_1\x10\x06\x12\x08\n\x04\x44\x42_2\x10\x07\x12\x08\n\x04\x44\x42_3\x10\x08\x62\x06proto3')
+  ,
+  dependencies=[enb__pb2.DESCRIPTOR,])
+
+_ULINTERFERENCEOVERLOADINDICATION = _descriptor.EnumDescriptor(
+  name='UlInterferenceOverloadIndication',
+  full_name='entities.UlInterferenceOverloadIndication',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_UL_INTERFERENCE_OVERLOAD_INDICATION', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='HIGH_INTERFERENCE', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MEDIUM_INTERFERENCE', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='LOW_INTERFERENCE', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2290,
+  serialized_end=2443,
+)
+_sym_db.RegisterEnumDescriptor(_ULINTERFERENCEOVERLOADINDICATION)
+
+UlInterferenceOverloadIndication = enum_type_wrapper.EnumTypeWrapper(_ULINTERFERENCEOVERLOADINDICATION)
+_RNTPTHRESHOLD = _descriptor.EnumDescriptor(
+  name='RntpThreshold',
+  full_name='entities.RntpThreshold',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_RNTP_THRESHOLD', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_INFINITY', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_11', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_10', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_9', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_8', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_7', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_6', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_5', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_4', index=9, number=9,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_3', index=10, number=10,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_2', index=11, number=11,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NEG_1', index=12, number=12,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V0', index=13, number=13,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V1', index=14, number=14,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V2', index=15, number=15,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V3', index=16, number=16,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2446,
+  serialized_end=2662,
+)
+_sym_db.RegisterEnumDescriptor(_RNTPTHRESHOLD)
+
+RntpThreshold = enum_type_wrapper.EnumTypeWrapper(_RNTPTHRESHOLD)
+_NUMBEROFCELLSPECIFICANTENNAPORTS = _descriptor.EnumDescriptor(
+  name='NumberOfCellSpecificAntennaPorts',
+  full_name='entities.NumberOfCellSpecificAntennaPorts',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_NUMBER_OF_CELL_SPECIFIC_ANTENNA_PORTS', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V1_ANT_PRT', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V2_ANT_PRT', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V4_ANT_PRT', index=3, number=4,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2665,
+  serialized_end=2798,
+)
+_sym_db.RegisterEnumDescriptor(_NUMBEROFCELLSPECIFICANTENNAPORTS)
+
+NumberOfCellSpecificAntennaPorts = enum_type_wrapper.EnumTypeWrapper(_NUMBEROFCELLSPECIFICANTENNAPORTS)
+_ABSINFORMATIONMODE = _descriptor.EnumDescriptor(
+  name='AbsInformationMode',
+  full_name='entities.AbsInformationMode',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_ABS_INFORMATION_MODE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABS_INFO_FDD', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABS_INFO_TDD', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABS_INACTIVE', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2800,
+  serialized_end=2908,
+)
+_sym_db.RegisterEnumDescriptor(_ABSINFORMATIONMODE)
+
+AbsInformationMode = enum_type_wrapper.EnumTypeWrapper(_ABSINFORMATIONMODE)
+_INVOKEINDICATION = _descriptor.EnumDescriptor(
+  name='InvokeIndication',
+  full_name='entities.InvokeIndication',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_INVOKE_INDICATION', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABS_INFORMATION', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='START_NAICS_INFORMATION', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='STOP_NAICS_INFORMATION', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2910,
+  serialized_end=3037,
+)
+_sym_db.RegisterEnumDescriptor(_INVOKEINDICATION)
+
+InvokeIndication = enum_type_wrapper.EnumTypeWrapper(_INVOKEINDICATION)
+_NAICSSTATE = _descriptor.EnumDescriptor(
+  name='NaicsState',
+  full_name='entities.NaicsState',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_NAICS_STATE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NAICS_ACTIVE', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NAICS_INACTIVE', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3039,
+  serialized_end=3114,
+)
+_sym_db.RegisterEnumDescriptor(_NAICSSTATE)
+
+NaicsState = enum_type_wrapper.EnumTypeWrapper(_NAICSSTATE)
+_PA = _descriptor.EnumDescriptor(
+  name='PA',
+  full_name='entities.PA',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_PA', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_NEG_6', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_NEG_4_DOT_77', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_NEG_3', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_NEG_1_DOT_77', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_0', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_1', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_2', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='DB_3', index=8, number=8,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3117,
+  serialized_end=3247,
+)
+_sym_db.RegisterEnumDescriptor(_PA)
+
+PA = enum_type_wrapper.EnumTypeWrapper(_PA)
+UNKNOWN_UL_INTERFERENCE_OVERLOAD_INDICATION = 0
+HIGH_INTERFERENCE = 1
+MEDIUM_INTERFERENCE = 2
+LOW_INTERFERENCE = 3
+UNKNOWN_RNTP_THRESHOLD = 0
+NEG_INFINITY = 1
+NEG_11 = 2
+NEG_10 = 3
+NEG_9 = 4
+NEG_8 = 5
+NEG_7 = 6
+NEG_6 = 7
+NEG_5 = 8
+NEG_4 = 9
+NEG_3 = 10
+NEG_2 = 11
+NEG_1 = 12
+V0 = 13
+V1 = 14
+V2 = 15
+V3 = 16
+UNKNOWN_NUMBER_OF_CELL_SPECIFIC_ANTENNA_PORTS = 0
+V1_ANT_PRT = 1
+V2_ANT_PRT = 2
+V4_ANT_PRT = 4
+UNKNOWN_ABS_INFORMATION_MODE = 0
+ABS_INFO_FDD = 1
+ABS_INFO_TDD = 2
+ABS_INACTIVE = 3
+UNKNOWN_INVOKE_INDICATION = 0
+ABS_INFORMATION = 1
+START_NAICS_INFORMATION = 2
+STOP_NAICS_INFORMATION = 3
+UNKNOWN_NAICS_STATE = 0
+NAICS_ACTIVE = 1
+NAICS_INACTIVE = 2
+UNKNOWN_PA = 0
+DB_NEG_6 = 1
+DB_NEG_4_DOT_77 = 2
+DB_NEG_3 = 3
+DB_NEG_1_DOT_77 = 4
+DB_0 = 5
+DB_1 = 6
+DB_2 = 7
+DB_3 = 8
+
+
+
+_RANLOADINFORMATION = _descriptor.Descriptor(
+  name='RanLoadInformation',
+  full_name='entities.RanLoadInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='load_timestamp', full_name='entities.RanLoadInformation.load_timestamp', index=0,
+      number=1, type=4, cpp_type=4, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='cell_load_infos', full_name='entities.RanLoadInformation.cell_load_infos', index=1,
+      number=2, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=51,
+  serialized_end=151,
+)
+
+
+_CELLLOADINFORMATION = _descriptor.Descriptor(
+  name='CellLoadInformation',
+  full_name='entities.CellLoadInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cell_id', full_name='entities.CellLoadInformation.cell_id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ul_interference_overload_indications', full_name='entities.CellLoadInformation.ul_interference_overload_indications', index=1,
+      number=2, type=14, cpp_type=8, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ul_high_interference_infos', full_name='entities.CellLoadInformation.ul_high_interference_infos', index=2,
+      number=3, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='relative_narrowband_tx_power', full_name='entities.CellLoadInformation.relative_narrowband_tx_power', index=3,
+      number=4, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='abs_information', full_name='entities.CellLoadInformation.abs_information', index=4,
+      number=5, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='invoke_indication', full_name='entities.CellLoadInformation.invoke_indication', index=5,
+      number=6, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='intended_ul_dl_configuration', full_name='entities.CellLoadInformation.intended_ul_dl_configuration', index=6,
+      number=7, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='extended_ul_interference_overload_info', full_name='entities.CellLoadInformation.extended_ul_interference_overload_info', index=7,
+      number=8, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='comp_information', full_name='entities.CellLoadInformation.comp_information', index=8,
+      number=9, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='dynamic_dl_transmission_information', full_name='entities.CellLoadInformation.dynamic_dl_transmission_information', index=9,
+      number=10, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=154,
+  serialized_end=844,
+)
+
+
+_ULHIGHINTERFERENCEINFORMATION = _descriptor.Descriptor(
+  name='UlHighInterferenceInformation',
+  full_name='entities.UlHighInterferenceInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='target_cell_id', full_name='entities.UlHighInterferenceInformation.target_cell_id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ul_high_interference_indication', full_name='entities.UlHighInterferenceInformation.ul_high_interference_indication', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=846,
+  serialized_end=942,
+)
+
+
+_RELATIVENARROWBANDTXPOWER = _descriptor.Descriptor(
+  name='RelativeNarrowbandTxPower',
+  full_name='entities.RelativeNarrowbandTxPower',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='rntp_per_prb', full_name='entities.RelativeNarrowbandTxPower.rntp_per_prb', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='rntp_threshold', full_name='entities.RelativeNarrowbandTxPower.rntp_threshold', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='number_of_cell_specific_antenna_ports', full_name='entities.RelativeNarrowbandTxPower.number_of_cell_specific_antenna_ports', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='p_b', full_name='entities.RelativeNarrowbandTxPower.p_b', index=3,
+      number=4, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='pdcch_interference_impact', full_name='entities.RelativeNarrowbandTxPower.pdcch_interference_impact', index=4,
+      number=5, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='enhanced_rntp', full_name='entities.RelativeNarrowbandTxPower.enhanced_rntp', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=945,
+  serialized_end=1229,
+)
+
+
+_ENHANCEDRNTP = _descriptor.Descriptor(
+  name='EnhancedRntp',
+  full_name='entities.EnhancedRntp',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='enhanced_rntp_bitmap', full_name='entities.EnhancedRntp.enhanced_rntp_bitmap', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='rntp_high_power_threshold', full_name='entities.EnhancedRntp.rntp_high_power_threshold', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='enhanced_rntp_start_time', full_name='entities.EnhancedRntp.enhanced_rntp_start_time', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1232,
+  serialized_end=1391,
+)
+
+
+_STARTTIME = _descriptor.Descriptor(
+  name='StartTime',
+  full_name='entities.StartTime',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='start_sfn', full_name='entities.StartTime.start_sfn', index=0,
+      number=1, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='start_subframe_number', full_name='entities.StartTime.start_subframe_number', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1393,
+  serialized_end=1454,
+)
+
+
+_ABSINFORMATION = _descriptor.Descriptor(
+  name='AbsInformation',
+  full_name='entities.AbsInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='mode', full_name='entities.AbsInformation.mode', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='abs_pattern_info', full_name='entities.AbsInformation.abs_pattern_info', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='number_of_cell_specific_antenna_ports', full_name='entities.AbsInformation.number_of_cell_specific_antenna_ports', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='measurement_subset', full_name='entities.AbsInformation.measurement_subset', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1457,
+  serialized_end=1662,
+)
+
+
+_EXTENDEDULINTERFERENCEOVERLOADINFO = _descriptor.Descriptor(
+  name='ExtendedUlInterferenceOverloadInfo',
+  full_name='entities.ExtendedUlInterferenceOverloadInfo',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='associated_subframes', full_name='entities.ExtendedUlInterferenceOverloadInfo.associated_subframes', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='extended_ul_interference_overload_indications', full_name='entities.ExtendedUlInterferenceOverloadInfo.extended_ul_interference_overload_indications', index=1,
+      number=2, type=14, cpp_type=8, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1665,
+  serialized_end=1830,
+)
+
+
+_COMPINFORMATION = _descriptor.Descriptor(
+  name='CompInformation',
+  full_name='entities.CompInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='comp_information_items', full_name='entities.CompInformation.comp_information_items', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='comp_information_start_time', full_name='entities.CompInformation.comp_information_start_time', index=1,
+      number=2, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1833,
+  serialized_end=1971,
+)
+
+
+_COMPINFORMATIONITEM = _descriptor.Descriptor(
+  name='CompInformationItem',
+  full_name='entities.CompInformationItem',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='comp_hypothesis_sets', full_name='entities.CompInformationItem.comp_hypothesis_sets', index=0,
+      number=1, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='benefit_metric', full_name='entities.CompInformationItem.benefit_metric', index=1,
+      number=2, type=5, cpp_type=1, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1973,
+  serialized_end=2077,
+)
+
+
+_COMPHYPOTHESISSET = _descriptor.Descriptor(
+  name='CompHypothesisSet',
+  full_name='entities.CompHypothesisSet',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='cell_id', full_name='entities.CompHypothesisSet.cell_id', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='comp_hypothesis', full_name='entities.CompHypothesisSet.comp_hypothesis', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2079,
+  serialized_end=2140,
+)
+
+
+_DYNAMICDLTRANSMISSIONINFORMATION = _descriptor.Descriptor(
+  name='DynamicDlTransmissionInformation',
+  full_name='entities.DynamicDlTransmissionInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='state', full_name='entities.DynamicDlTransmissionInformation.state', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='transmission_modes', full_name='entities.DynamicDlTransmissionInformation.transmission_modes', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='p_b', full_name='entities.DynamicDlTransmissionInformation.p_b', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='p_a_list', full_name='entities.DynamicDlTransmissionInformation.p_a_list', index=3,
+      number=4, type=14, cpp_type=8, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2143,
+  serialized_end=2287,
+)
+
+_RANLOADINFORMATION.fields_by_name['cell_load_infos'].message_type = _CELLLOADINFORMATION
+_CELLLOADINFORMATION.fields_by_name['ul_interference_overload_indications'].enum_type = _ULINTERFERENCEOVERLOADINDICATION
+_CELLLOADINFORMATION.fields_by_name['ul_high_interference_infos'].message_type = _ULHIGHINTERFERENCEINFORMATION
+_CELLLOADINFORMATION.fields_by_name['relative_narrowband_tx_power'].message_type = _RELATIVENARROWBANDTXPOWER
+_CELLLOADINFORMATION.fields_by_name['abs_information'].message_type = _ABSINFORMATION
+_CELLLOADINFORMATION.fields_by_name['invoke_indication'].enum_type = _INVOKEINDICATION
+_CELLLOADINFORMATION.fields_by_name['intended_ul_dl_configuration'].enum_type = enb__pb2._SUBFRAMEASSIGNMENT
+_CELLLOADINFORMATION.fields_by_name['extended_ul_interference_overload_info'].message_type = _EXTENDEDULINTERFERENCEOVERLOADINFO
+_CELLLOADINFORMATION.fields_by_name['comp_information'].message_type = _COMPINFORMATION
+_CELLLOADINFORMATION.fields_by_name['dynamic_dl_transmission_information'].message_type = _DYNAMICDLTRANSMISSIONINFORMATION
+_RELATIVENARROWBANDTXPOWER.fields_by_name['rntp_threshold'].enum_type = _RNTPTHRESHOLD
+_RELATIVENARROWBANDTXPOWER.fields_by_name['number_of_cell_specific_antenna_ports'].enum_type = _NUMBEROFCELLSPECIFICANTENNAPORTS
+_RELATIVENARROWBANDTXPOWER.fields_by_name['enhanced_rntp'].message_type = _ENHANCEDRNTP
+_ENHANCEDRNTP.fields_by_name['rntp_high_power_threshold'].enum_type = _RNTPTHRESHOLD
+_ENHANCEDRNTP.fields_by_name['enhanced_rntp_start_time'].message_type = _STARTTIME
+_ABSINFORMATION.fields_by_name['mode'].enum_type = _ABSINFORMATIONMODE
+_ABSINFORMATION.fields_by_name['number_of_cell_specific_antenna_ports'].enum_type = _NUMBEROFCELLSPECIFICANTENNAPORTS
+_EXTENDEDULINTERFERENCEOVERLOADINFO.fields_by_name['extended_ul_interference_overload_indications'].enum_type = _ULINTERFERENCEOVERLOADINDICATION
+_COMPINFORMATION.fields_by_name['comp_information_items'].message_type = _COMPINFORMATIONITEM
+_COMPINFORMATION.fields_by_name['comp_information_start_time'].message_type = _STARTTIME
+_COMPINFORMATIONITEM.fields_by_name['comp_hypothesis_sets'].message_type = _COMPHYPOTHESISSET
+_DYNAMICDLTRANSMISSIONINFORMATION.fields_by_name['state'].enum_type = _NAICSSTATE
+_DYNAMICDLTRANSMISSIONINFORMATION.fields_by_name['p_a_list'].enum_type = _PA
+DESCRIPTOR.message_types_by_name['RanLoadInformation'] = _RANLOADINFORMATION
+DESCRIPTOR.message_types_by_name['CellLoadInformation'] = _CELLLOADINFORMATION
+DESCRIPTOR.message_types_by_name['UlHighInterferenceInformation'] = _ULHIGHINTERFERENCEINFORMATION
+DESCRIPTOR.message_types_by_name['RelativeNarrowbandTxPower'] = _RELATIVENARROWBANDTXPOWER
+DESCRIPTOR.message_types_by_name['EnhancedRntp'] = _ENHANCEDRNTP
+DESCRIPTOR.message_types_by_name['StartTime'] = _STARTTIME
+DESCRIPTOR.message_types_by_name['AbsInformation'] = _ABSINFORMATION
+DESCRIPTOR.message_types_by_name['ExtendedUlInterferenceOverloadInfo'] = _EXTENDEDULINTERFERENCEOVERLOADINFO
+DESCRIPTOR.message_types_by_name['CompInformation'] = _COMPINFORMATION
+DESCRIPTOR.message_types_by_name['CompInformationItem'] = _COMPINFORMATIONITEM
+DESCRIPTOR.message_types_by_name['CompHypothesisSet'] = _COMPHYPOTHESISSET
+DESCRIPTOR.message_types_by_name['DynamicDlTransmissionInformation'] = _DYNAMICDLTRANSMISSIONINFORMATION
+DESCRIPTOR.enum_types_by_name['UlInterferenceOverloadIndication'] = _ULINTERFERENCEOVERLOADINDICATION
+DESCRIPTOR.enum_types_by_name['RntpThreshold'] = _RNTPTHRESHOLD
+DESCRIPTOR.enum_types_by_name['NumberOfCellSpecificAntennaPorts'] = _NUMBEROFCELLSPECIFICANTENNAPORTS
+DESCRIPTOR.enum_types_by_name['AbsInformationMode'] = _ABSINFORMATIONMODE
+DESCRIPTOR.enum_types_by_name['InvokeIndication'] = _INVOKEINDICATION
+DESCRIPTOR.enum_types_by_name['NaicsState'] = _NAICSSTATE
+DESCRIPTOR.enum_types_by_name['PA'] = _PA
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+RanLoadInformation = _reflection.GeneratedProtocolMessageType('RanLoadInformation', (_message.Message,), dict(
+  DESCRIPTOR = _RANLOADINFORMATION,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.RanLoadInformation)
+  ))
+_sym_db.RegisterMessage(RanLoadInformation)
+
+CellLoadInformation = _reflection.GeneratedProtocolMessageType('CellLoadInformation', (_message.Message,), dict(
+  DESCRIPTOR = _CELLLOADINFORMATION,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.CellLoadInformation)
+  ))
+_sym_db.RegisterMessage(CellLoadInformation)
+
+UlHighInterferenceInformation = _reflection.GeneratedProtocolMessageType('UlHighInterferenceInformation', (_message.Message,), dict(
+  DESCRIPTOR = _ULHIGHINTERFERENCEINFORMATION,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.UlHighInterferenceInformation)
+  ))
+_sym_db.RegisterMessage(UlHighInterferenceInformation)
+
+RelativeNarrowbandTxPower = _reflection.GeneratedProtocolMessageType('RelativeNarrowbandTxPower', (_message.Message,), dict(
+  DESCRIPTOR = _RELATIVENARROWBANDTXPOWER,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.RelativeNarrowbandTxPower)
+  ))
+_sym_db.RegisterMessage(RelativeNarrowbandTxPower)
+
+EnhancedRntp = _reflection.GeneratedProtocolMessageType('EnhancedRntp', (_message.Message,), dict(
+  DESCRIPTOR = _ENHANCEDRNTP,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.EnhancedRntp)
+  ))
+_sym_db.RegisterMessage(EnhancedRntp)
+
+StartTime = _reflection.GeneratedProtocolMessageType('StartTime', (_message.Message,), dict(
+  DESCRIPTOR = _STARTTIME,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.StartTime)
+  ))
+_sym_db.RegisterMessage(StartTime)
+
+AbsInformation = _reflection.GeneratedProtocolMessageType('AbsInformation', (_message.Message,), dict(
+  DESCRIPTOR = _ABSINFORMATION,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.AbsInformation)
+  ))
+_sym_db.RegisterMessage(AbsInformation)
+
+ExtendedUlInterferenceOverloadInfo = _reflection.GeneratedProtocolMessageType('ExtendedUlInterferenceOverloadInfo', (_message.Message,), dict(
+  DESCRIPTOR = _EXTENDEDULINTERFERENCEOVERLOADINFO,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.ExtendedUlInterferenceOverloadInfo)
+  ))
+_sym_db.RegisterMessage(ExtendedUlInterferenceOverloadInfo)
+
+CompInformation = _reflection.GeneratedProtocolMessageType('CompInformation', (_message.Message,), dict(
+  DESCRIPTOR = _COMPINFORMATION,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.CompInformation)
+  ))
+_sym_db.RegisterMessage(CompInformation)
+
+CompInformationItem = _reflection.GeneratedProtocolMessageType('CompInformationItem', (_message.Message,), dict(
+  DESCRIPTOR = _COMPINFORMATIONITEM,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.CompInformationItem)
+  ))
+_sym_db.RegisterMessage(CompInformationItem)
+
+CompHypothesisSet = _reflection.GeneratedProtocolMessageType('CompHypothesisSet', (_message.Message,), dict(
+  DESCRIPTOR = _COMPHYPOTHESISSET,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.CompHypothesisSet)
+  ))
+_sym_db.RegisterMessage(CompHypothesisSet)
+
+DynamicDlTransmissionInformation = _reflection.GeneratedProtocolMessageType('DynamicDlTransmissionInformation', (_message.Message,), dict(
+  DESCRIPTOR = _DYNAMICDLTRANSMISSIONINFORMATION,
+  __module__ = 'ran_load_information_pb2'
+  # @@protoc_insertion_point(class_scope:entities.DynamicDlTransmissionInformation)
+  ))
+_sym_db.RegisterMessage(DynamicDlTransmissionInformation)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ricxappframe/entities/rnib/x2_setup_failure_response_pb2.py b/ricxappframe/entities/rnib/x2_setup_failure_response_pb2.py
new file mode 100644 (file)
index 0000000..d234394
--- /dev/null
@@ -0,0 +1,866 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: x2_setup_failure_response.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='x2_setup_failure_response.proto',
+  package='entities',
+  syntax='proto3',
+  serialized_options=None,
+  serialized_pb=_b('\n\x1fx2_setup_failure_response.proto\x12\x08\x65ntities\"\x81\x03\n\x0cSetupFailure\x12@\n\x13network_layer_cause\x18\x01 \x01(\x0e\x32!.entities.RadioNetworkLayer.CauseH\x00\x12?\n\x15transport_layer_cause\x18\x02 \x01(\x0e\x32\x1e.entities.TransportLayer.CauseH\x00\x12\x32\n\x0eprotocol_cause\x18\x03 \x01(\x0e\x32\x18.entities.Protocol.CauseH\x00\x12<\n\x13miscellaneous_cause\x18\x04 \x01(\x0e\x32\x1d.entities.Miscellaneous.CauseH\x00\x12*\n\x0ctime_to_wait\x18\x05 \x01(\x0e\x32\x14.entities.TimeToWait\x12\x41\n\x17\x63riticality_diagnostics\x18\x06 \x01(\x0b\x32 .entities.CriticalityDiagnosticsB\r\n\x0b\x63\x61use_group\"\x9d\x0c\n\x11RadioNetworkLayer\"\x87\x0c\n\x05\x43\x61use\x12\x0b\n\x07UNKNOWN\x10\x00\x12(\n$HANDOVER_DESIRABLE_FOR_RADIO_REASONS\x10\x01\x12\x1a\n\x16TIME_CRITICAL_HANDOVER\x10\x02\x12\"\n\x1eRESOURCE_OPTIMISATION_HANDOVER\x10\x03\x12\x1f\n\x1bREDUCE_LOAD_IN_SERVING_CELL\x10\x04\x12\x14\n\x10PARTIAL_HANDOVER\x10\x05\x12\x1e\n\x1aUNKNOWN_NEW_ENB_UE_X2AP_ID\x10\x06\x12 \n\x1cUNKNOWN_OLD_ENBME_UE_X2AP_ID\x10\x07\x12\x1e\n\x1aUNKNOWN_PAIR_OF_UE_X2AP_ID\x10\x08\x12\x19\n\x15HO_TARGET_NOT_ALLOWED\x10\t\x12\x1c\n\x18TX2_RELOC_OVERALL_EXPIRY\x10\n\x12\x17\n\x13T_RELOC_PREP_EXPIRY\x10\x0b\x12\x16\n\x12\x43\x45LL_NOT_AVAILABLE\x10\x0c\x12/\n+NO_RADIO_RESOURCES_AVAILABLE_IN_TARGET_CELL\x10\r\x12\x18\n\x14INVALID_MME_GROUP_ID\x10\x0e\x12\x14\n\x10UNKNOWN_MME_CODE\x10\x0f\x12<\n8ENCRYPTION_INTEGRITY_PROTECTION_ALGORITHMS_NOT_SUPPORTED\x10\x10\x12 \n\x1cREPORT_CHARACTERISTICS_EMPTY\x10\x11\x12\x19\n\x15NO_REPORT_PERIODICITY\x10\x12\x12\x1b\n\x17\x45XISTING_MEASUREMENT_ID\x10\x13\x12\x1e\n\x1aUNKNOWN_ENB_MEASUREMENT_ID\x10\x14\x12)\n%MEASUREMENT_TEMPORARILY_NOT_AVAILABLE\x10\x15\x12\x0f\n\x0bUNSPECIFIED\x10\x16\x12\x12\n\x0eLOAD_BALANCING\x10\x17\x12\x19\n\x15HANDOVER_OPTIMISATION\x10\x18\x12\x1e\n\x1aVALUE_OUT_OF_ALLOWED_RANGE\x10\x19\x12\x1f\n\x1bMULTIPLE_E_RAB_ID_INSTANCES\x10\x1a\x12\x16\n\x12SWITCH_OFF_ONGOING\x10\x1b\x12\x1b\n\x17NOT_SUPPORTED_QCI_VALUE\x10\x1c\x12,\n(MEASUREMENT_NOT_SUPPORTED_FOR_THE_OBJECT\x10\x1d\x12\x16\n\x12TDC_OVERALL_EXPIRY\x10\x1e\x12\x13\n\x0fTDC_PREP_EXPIRY\x10\x1f\x12&\n\"ACTION_DESIRABLE_FOR_RADIO_REASONS\x10 \x12\x0f\n\x0bREDUCE_LOAD\x10!\x12\x19\n\x15RESOURCE_OPTIMISATION\x10\"\x12\x18\n\x14TIME_CRITICAL_ACTION\x10#\x12\x16\n\x12TARGET_NOT_ALLOWED\x10$\x12 \n\x1cNO_RADIO_RESOURCES_AVAILABLE\x10%\x12\x1b\n\x17INVALID_QOS_COMBINATION\x10&\x12\'\n#ENCRYPTION_ALGORITHMS_NOT_SUPPORTED\x10\'\x12\x17\n\x13PROCEDURE_CANCELLED\x10(\x12\x0f\n\x0bRRM_PURPOSE\x10)\x12\x19\n\x15IMPROVE_USER_BIT_RATE\x10*\x12\x13\n\x0fUSER_INACTIVITY\x10+\x12!\n\x1dRADIO_CONNECTION_WITH_UE_LOST\x10,\x12,\n(FAILURE_IN_THE_RADIO_INTERFACE_PROCEDURE\x10-\x12\x1f\n\x1b\x42\x45\x41RER_OPTION_NOT_SUPPORTED\x10.\x12\x10\n\x0cMCG_MOBILITY\x10/\x12\x10\n\x0cSCG_MOBILITY\x10\x30\x12\x1b\n\x17\x43OUNT_REACHES_MAX_VALUE\x10\x31\x12!\n\x1dUNKNOWN_OLD_EN_GNB_UE_X2AP_ID\x10\x32\x12\x11\n\rPDCP_OVERLOAD\x10\x33\"[\n\x0eTransportLayer\"I\n\x05\x43\x61use\x12\x0b\n\x07UNKNOWN\x10\x00\x12\"\n\x1eTRANSPORT_RESOURCE_UNAVAILABLE\x10\x01\x12\x0f\n\x0bUNSPECIFIED\x10\x02\"\x97\x02\n\x08Protocol\"\x8a\x02\n\x05\x43\x61use\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x19\n\x15TRANSFER_SYNTAX_ERROR\x10\x01\x12 \n\x1c\x41\x42STRACT_SYNTAX_ERROR_REJECT\x10\x02\x12+\n\'ABSTRACT_SYNTAX_ERROR_IGNORE_AND_NOTIFY\x10\x03\x12.\n*MESSAGE_NOT_COMPATIBLE_WITH_RECEIVER_STATE\x10\x04\x12\x12\n\x0eSEMANTIC_ERROR\x10\x05\x12\x0f\n\x0bUNSPECIFIED\x10\x06\x12\x35\n1ABSTRACT_SYNTAX_ERROR_FALSELY_CONSTRUCTED_MESSAGE\x10\x07\"\xb3\x01\n\rMiscellaneous\"\xa1\x01\n\x05\x43\x61use\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1f\n\x1b\x43ONTROL_PROCESSING_OVERLOAD\x10\x01\x12\x14\n\x10HARDWARE_FAILURE\x10\x02\x12\x13\n\x0fOM_INTERVENTION\x10\x03\x12.\n*NOT_ENOUGH_USER_PLANE_PROCESSING_RESOURCES\x10\x04\x12\x0f\n\x0bUNSPECIFIED\x10\x05\"\x87\x02\n\x16\x43riticalityDiagnostics\x12\x16\n\x0eprocedure_code\x18\x01 \x01(\r\x12\x37\n\x12triggering_message\x18\x02 \x01(\x0e\x32\x1b.entities.TriggeringMessage\x12\x34\n\x15procedure_criticality\x18\x03 \x01(\x0e\x32\x15.entities.Criticality\x12\x66\n+information_element_criticality_diagnostics\x18\x04 \x03(\x0b\x32\x31.entities.InformationElementCriticalityDiagnostic\"\x95\x01\n\'InformationElementCriticalityDiagnostic\x12-\n\x0eie_criticality\x18\x01 \x01(\x0e\x32\x15.entities.Criticality\x12\r\n\x05ie_id\x18\x02 \x01(\r\x12,\n\rtype_of_error\x18\x03 \x01(\x0e\x32\x15.entities.TypeOfError*A\n\x0bTypeOfError\x12\x11\n\rUNKNOWN_ERROR\x10\x00\x12\x12\n\x0eNOT_UNDERSTOOD\x10\x01\x12\x0b\n\x07MISSING\x10\x02*Z\n\nTimeToWait\x12\x13\n\x0fUNKNOWN_TIMEOUT\x10\x00\x12\x07\n\x03V1S\x10\x01\x12\x07\n\x03V2S\x10\x02\x12\x07\n\x03V5S\x10\x03\x12\x08\n\x04V10S\x10\x04\x12\x08\n\x04V20S\x10\x05\x12\x08\n\x04V60S\x10\x06*r\n\x11TriggeringMessage\x12\x13\n\x0fUNKNOWN_MESSAGE\x10\x00\x12\x16\n\x12INITIATING_MESSAGE\x10\x01\x12\x16\n\x12SUCCESSFUL_OUTCOME\x10\x02\x12\x18\n\x14UNSUCCESSFUL_OUTCOME\x10\x03*J\n\x0b\x43riticality\x12\x17\n\x13UNKNOWN_CRITICALITY\x10\x00\x12\n\n\x06REJECT\x10\x01\x12\n\n\x06IGNORE\x10\x02\x12\n\n\x06NOTIFY\x10\x03\x62\x06proto3')
+)
+
+_TYPEOFERROR = _descriptor.EnumDescriptor(
+  name='TypeOfError',
+  full_name='entities.TypeOfError',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_ERROR', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NOT_UNDERSTOOD', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MISSING', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2976,
+  serialized_end=3041,
+)
+_sym_db.RegisterEnumDescriptor(_TYPEOFERROR)
+
+TypeOfError = enum_type_wrapper.EnumTypeWrapper(_TYPEOFERROR)
+_TIMETOWAIT = _descriptor.EnumDescriptor(
+  name='TimeToWait',
+  full_name='entities.TimeToWait',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_TIMEOUT', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V1S', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V2S', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V5S', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V10S', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V20S', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='V60S', index=6, number=6,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3043,
+  serialized_end=3133,
+)
+_sym_db.RegisterEnumDescriptor(_TIMETOWAIT)
+
+TimeToWait = enum_type_wrapper.EnumTypeWrapper(_TIMETOWAIT)
+_TRIGGERINGMESSAGE = _descriptor.EnumDescriptor(
+  name='TriggeringMessage',
+  full_name='entities.TriggeringMessage',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_MESSAGE', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='INITIATING_MESSAGE', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SUCCESSFUL_OUTCOME', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNSUCCESSFUL_OUTCOME', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3135,
+  serialized_end=3249,
+)
+_sym_db.RegisterEnumDescriptor(_TRIGGERINGMESSAGE)
+
+TriggeringMessage = enum_type_wrapper.EnumTypeWrapper(_TRIGGERINGMESSAGE)
+_CRITICALITY = _descriptor.EnumDescriptor(
+  name='Criticality',
+  full_name='entities.Criticality',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_CRITICALITY', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='REJECT', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='IGNORE', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NOTIFY', index=3, number=3,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=3251,
+  serialized_end=3325,
+)
+_sym_db.RegisterEnumDescriptor(_CRITICALITY)
+
+Criticality = enum_type_wrapper.EnumTypeWrapper(_CRITICALITY)
+UNKNOWN_ERROR = 0
+NOT_UNDERSTOOD = 1
+MISSING = 2
+UNKNOWN_TIMEOUT = 0
+V1S = 1
+V2S = 2
+V5S = 3
+V10S = 4
+V20S = 5
+V60S = 6
+UNKNOWN_MESSAGE = 0
+INITIATING_MESSAGE = 1
+SUCCESSFUL_OUTCOME = 2
+UNSUCCESSFUL_OUTCOME = 3
+UNKNOWN_CRITICALITY = 0
+REJECT = 1
+IGNORE = 2
+NOTIFY = 3
+
+
+_RADIONETWORKLAYER_CAUSE = _descriptor.EnumDescriptor(
+  name='Cause',
+  full_name='entities.RadioNetworkLayer.Cause',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='HANDOVER_DESIRABLE_FOR_RADIO_REASONS', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TIME_CRITICAL_HANDOVER', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='RESOURCE_OPTIMISATION_HANDOVER', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='REDUCE_LOAD_IN_SERVING_CELL', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='PARTIAL_HANDOVER', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_NEW_ENB_UE_X2AP_ID', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_OLD_ENBME_UE_X2AP_ID', index=7, number=7,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_PAIR_OF_UE_X2AP_ID', index=8, number=8,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='HO_TARGET_NOT_ALLOWED', index=9, number=9,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TX2_RELOC_OVERALL_EXPIRY', index=10, number=10,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='T_RELOC_PREP_EXPIRY', index=11, number=11,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='CELL_NOT_AVAILABLE', index=12, number=12,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NO_RADIO_RESOURCES_AVAILABLE_IN_TARGET_CELL', index=13, number=13,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='INVALID_MME_GROUP_ID', index=14, number=14,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_MME_CODE', index=15, number=15,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ENCRYPTION_INTEGRITY_PROTECTION_ALGORITHMS_NOT_SUPPORTED', index=16, number=16,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='REPORT_CHARACTERISTICS_EMPTY', index=17, number=17,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NO_REPORT_PERIODICITY', index=18, number=18,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='EXISTING_MEASUREMENT_ID', index=19, number=19,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_ENB_MEASUREMENT_ID', index=20, number=20,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MEASUREMENT_TEMPORARILY_NOT_AVAILABLE', index=21, number=21,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNSPECIFIED', index=22, number=22,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='LOAD_BALANCING', index=23, number=23,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='HANDOVER_OPTIMISATION', index=24, number=24,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='VALUE_OUT_OF_ALLOWED_RANGE', index=25, number=25,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MULTIPLE_E_RAB_ID_INSTANCES', index=26, number=26,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SWITCH_OFF_ONGOING', index=27, number=27,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NOT_SUPPORTED_QCI_VALUE', index=28, number=28,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MEASUREMENT_NOT_SUPPORTED_FOR_THE_OBJECT', index=29, number=29,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TDC_OVERALL_EXPIRY', index=30, number=30,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TDC_PREP_EXPIRY', index=31, number=31,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ACTION_DESIRABLE_FOR_RADIO_REASONS', index=32, number=32,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='REDUCE_LOAD', index=33, number=33,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='RESOURCE_OPTIMISATION', index=34, number=34,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TIME_CRITICAL_ACTION', index=35, number=35,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TARGET_NOT_ALLOWED', index=36, number=36,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NO_RADIO_RESOURCES_AVAILABLE', index=37, number=37,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='INVALID_QOS_COMBINATION', index=38, number=38,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ENCRYPTION_ALGORITHMS_NOT_SUPPORTED', index=39, number=39,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='PROCEDURE_CANCELLED', index=40, number=40,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='RRM_PURPOSE', index=41, number=41,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='IMPROVE_USER_BIT_RATE', index=42, number=42,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='USER_INACTIVITY', index=43, number=43,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='RADIO_CONNECTION_WITH_UE_LOST', index=44, number=44,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='FAILURE_IN_THE_RADIO_INTERFACE_PROCEDURE', index=45, number=45,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='BEARER_OPTION_NOT_SUPPORTED', index=46, number=46,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MCG_MOBILITY', index=47, number=47,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SCG_MOBILITY', index=48, number=48,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='COUNT_REACHES_MAX_VALUE', index=49, number=49,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN_OLD_EN_GNB_UE_X2AP_ID', index=50, number=50,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='PDCP_OVERLOAD', index=51, number=51,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=456,
+  serialized_end=1999,
+)
+_sym_db.RegisterEnumDescriptor(_RADIONETWORKLAYER_CAUSE)
+
+_TRANSPORTLAYER_CAUSE = _descriptor.EnumDescriptor(
+  name='Cause',
+  full_name='entities.TransportLayer.Cause',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TRANSPORT_RESOURCE_UNAVAILABLE', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNSPECIFIED', index=2, number=2,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2019,
+  serialized_end=2092,
+)
+_sym_db.RegisterEnumDescriptor(_TRANSPORTLAYER_CAUSE)
+
+_PROTOCOL_CAUSE = _descriptor.EnumDescriptor(
+  name='Cause',
+  full_name='entities.Protocol.Cause',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='TRANSFER_SYNTAX_ERROR', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABSTRACT_SYNTAX_ERROR_REJECT', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABSTRACT_SYNTAX_ERROR_IGNORE_AND_NOTIFY', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='MESSAGE_NOT_COMPATIBLE_WITH_RECEIVER_STATE', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='SEMANTIC_ERROR', index=5, number=5,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNSPECIFIED', index=6, number=6,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='ABSTRACT_SYNTAX_ERROR_FALSELY_CONSTRUCTED_MESSAGE', index=7, number=7,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2108,
+  serialized_end=2374,
+)
+_sym_db.RegisterEnumDescriptor(_PROTOCOL_CAUSE)
+
+_MISCELLANEOUS_CAUSE = _descriptor.EnumDescriptor(
+  name='Cause',
+  full_name='entities.Miscellaneous.Cause',
+  filename=None,
+  file=DESCRIPTOR,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='CONTROL_PROCESSING_OVERLOAD', index=1, number=1,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='HARDWARE_FAILURE', index=2, number=2,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='OM_INTERVENTION', index=3, number=3,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='NOT_ENOUGH_USER_PLANE_PROCESSING_RESOURCES', index=4, number=4,
+      serialized_options=None,
+      type=None),
+    _descriptor.EnumValueDescriptor(
+      name='UNSPECIFIED', index=5, number=5,
+      serialized_options=None,
+      type=None),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2395,
+  serialized_end=2556,
+)
+_sym_db.RegisterEnumDescriptor(_MISCELLANEOUS_CAUSE)
+
+
+_SETUPFAILURE = _descriptor.Descriptor(
+  name='SetupFailure',
+  full_name='entities.SetupFailure',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='network_layer_cause', full_name='entities.SetupFailure.network_layer_cause', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='transport_layer_cause', full_name='entities.SetupFailure.transport_layer_cause', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='protocol_cause', full_name='entities.SetupFailure.protocol_cause', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='miscellaneous_cause', full_name='entities.SetupFailure.miscellaneous_cause', index=3,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='time_to_wait', full_name='entities.SetupFailure.time_to_wait', index=4,
+      number=5, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='criticality_diagnostics', full_name='entities.SetupFailure.criticality_diagnostics', index=5,
+      number=6, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+    _descriptor.OneofDescriptor(
+      name='cause_group', full_name='entities.SetupFailure.cause_group',
+      index=0, containing_type=None, fields=[]),
+  ],
+  serialized_start=46,
+  serialized_end=431,
+)
+
+
+_RADIONETWORKLAYER = _descriptor.Descriptor(
+  name='RadioNetworkLayer',
+  full_name='entities.RadioNetworkLayer',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _RADIONETWORKLAYER_CAUSE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=434,
+  serialized_end=1999,
+)
+
+
+_TRANSPORTLAYER = _descriptor.Descriptor(
+  name='TransportLayer',
+  full_name='entities.TransportLayer',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _TRANSPORTLAYER_CAUSE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2001,
+  serialized_end=2092,
+)
+
+
+_PROTOCOL = _descriptor.Descriptor(
+  name='Protocol',
+  full_name='entities.Protocol',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _PROTOCOL_CAUSE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2095,
+  serialized_end=2374,
+)
+
+
+_MISCELLANEOUS = _descriptor.Descriptor(
+  name='Miscellaneous',
+  full_name='entities.Miscellaneous',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _MISCELLANEOUS_CAUSE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2377,
+  serialized_end=2556,
+)
+
+
+_CRITICALITYDIAGNOSTICS = _descriptor.Descriptor(
+  name='CriticalityDiagnostics',
+  full_name='entities.CriticalityDiagnostics',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='procedure_code', full_name='entities.CriticalityDiagnostics.procedure_code', index=0,
+      number=1, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='triggering_message', full_name='entities.CriticalityDiagnostics.triggering_message', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='procedure_criticality', full_name='entities.CriticalityDiagnostics.procedure_criticality', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='information_element_criticality_diagnostics', full_name='entities.CriticalityDiagnostics.information_element_criticality_diagnostics', index=3,
+      number=4, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2559,
+  serialized_end=2822,
+)
+
+
+_INFORMATIONELEMENTCRITICALITYDIAGNOSTIC = _descriptor.Descriptor(
+  name='InformationElementCriticalityDiagnostic',
+  full_name='entities.InformationElementCriticalityDiagnostic',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='ie_criticality', full_name='entities.InformationElementCriticalityDiagnostic.ie_criticality', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ie_id', full_name='entities.InformationElementCriticalityDiagnostic.ie_id', index=1,
+      number=2, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='type_of_error', full_name='entities.InformationElementCriticalityDiagnostic.type_of_error', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=2825,
+  serialized_end=2974,
+)
+
+_SETUPFAILURE.fields_by_name['network_layer_cause'].enum_type = _RADIONETWORKLAYER_CAUSE
+_SETUPFAILURE.fields_by_name['transport_layer_cause'].enum_type = _TRANSPORTLAYER_CAUSE
+_SETUPFAILURE.fields_by_name['protocol_cause'].enum_type = _PROTOCOL_CAUSE
+_SETUPFAILURE.fields_by_name['miscellaneous_cause'].enum_type = _MISCELLANEOUS_CAUSE
+_SETUPFAILURE.fields_by_name['time_to_wait'].enum_type = _TIMETOWAIT
+_SETUPFAILURE.fields_by_name['criticality_diagnostics'].message_type = _CRITICALITYDIAGNOSTICS
+_SETUPFAILURE.oneofs_by_name['cause_group'].fields.append(
+  _SETUPFAILURE.fields_by_name['network_layer_cause'])
+_SETUPFAILURE.fields_by_name['network_layer_cause'].containing_oneof = _SETUPFAILURE.oneofs_by_name['cause_group']
+_SETUPFAILURE.oneofs_by_name['cause_group'].fields.append(
+  _SETUPFAILURE.fields_by_name['transport_layer_cause'])
+_SETUPFAILURE.fields_by_name['transport_layer_cause'].containing_oneof = _SETUPFAILURE.oneofs_by_name['cause_group']
+_SETUPFAILURE.oneofs_by_name['cause_group'].fields.append(
+  _SETUPFAILURE.fields_by_name['protocol_cause'])
+_SETUPFAILURE.fields_by_name['protocol_cause'].containing_oneof = _SETUPFAILURE.oneofs_by_name['cause_group']
+_SETUPFAILURE.oneofs_by_name['cause_group'].fields.append(
+  _SETUPFAILURE.fields_by_name['miscellaneous_cause'])
+_SETUPFAILURE.fields_by_name['miscellaneous_cause'].containing_oneof = _SETUPFAILURE.oneofs_by_name['cause_group']
+_RADIONETWORKLAYER_CAUSE.containing_type = _RADIONETWORKLAYER
+_TRANSPORTLAYER_CAUSE.containing_type = _TRANSPORTLAYER
+_PROTOCOL_CAUSE.containing_type = _PROTOCOL
+_MISCELLANEOUS_CAUSE.containing_type = _MISCELLANEOUS
+_CRITICALITYDIAGNOSTICS.fields_by_name['triggering_message'].enum_type = _TRIGGERINGMESSAGE
+_CRITICALITYDIAGNOSTICS.fields_by_name['procedure_criticality'].enum_type = _CRITICALITY
+_CRITICALITYDIAGNOSTICS.fields_by_name['information_element_criticality_diagnostics'].message_type = _INFORMATIONELEMENTCRITICALITYDIAGNOSTIC
+_INFORMATIONELEMENTCRITICALITYDIAGNOSTIC.fields_by_name['ie_criticality'].enum_type = _CRITICALITY
+_INFORMATIONELEMENTCRITICALITYDIAGNOSTIC.fields_by_name['type_of_error'].enum_type = _TYPEOFERROR
+DESCRIPTOR.message_types_by_name['SetupFailure'] = _SETUPFAILURE
+DESCRIPTOR.message_types_by_name['RadioNetworkLayer'] = _RADIONETWORKLAYER
+DESCRIPTOR.message_types_by_name['TransportLayer'] = _TRANSPORTLAYER
+DESCRIPTOR.message_types_by_name['Protocol'] = _PROTOCOL
+DESCRIPTOR.message_types_by_name['Miscellaneous'] = _MISCELLANEOUS
+DESCRIPTOR.message_types_by_name['CriticalityDiagnostics'] = _CRITICALITYDIAGNOSTICS
+DESCRIPTOR.message_types_by_name['InformationElementCriticalityDiagnostic'] = _INFORMATIONELEMENTCRITICALITYDIAGNOSTIC
+DESCRIPTOR.enum_types_by_name['TypeOfError'] = _TYPEOFERROR
+DESCRIPTOR.enum_types_by_name['TimeToWait'] = _TIMETOWAIT
+DESCRIPTOR.enum_types_by_name['TriggeringMessage'] = _TRIGGERINGMESSAGE
+DESCRIPTOR.enum_types_by_name['Criticality'] = _CRITICALITY
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+SetupFailure = _reflection.GeneratedProtocolMessageType('SetupFailure', (_message.Message,), dict(
+  DESCRIPTOR = _SETUPFAILURE,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.SetupFailure)
+  ))
+_sym_db.RegisterMessage(SetupFailure)
+
+RadioNetworkLayer = _reflection.GeneratedProtocolMessageType('RadioNetworkLayer', (_message.Message,), dict(
+  DESCRIPTOR = _RADIONETWORKLAYER,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.RadioNetworkLayer)
+  ))
+_sym_db.RegisterMessage(RadioNetworkLayer)
+
+TransportLayer = _reflection.GeneratedProtocolMessageType('TransportLayer', (_message.Message,), dict(
+  DESCRIPTOR = _TRANSPORTLAYER,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.TransportLayer)
+  ))
+_sym_db.RegisterMessage(TransportLayer)
+
+Protocol = _reflection.GeneratedProtocolMessageType('Protocol', (_message.Message,), dict(
+  DESCRIPTOR = _PROTOCOL,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Protocol)
+  ))
+_sym_db.RegisterMessage(Protocol)
+
+Miscellaneous = _reflection.GeneratedProtocolMessageType('Miscellaneous', (_message.Message,), dict(
+  DESCRIPTOR = _MISCELLANEOUS,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.Miscellaneous)
+  ))
+_sym_db.RegisterMessage(Miscellaneous)
+
+CriticalityDiagnostics = _reflection.GeneratedProtocolMessageType('CriticalityDiagnostics', (_message.Message,), dict(
+  DESCRIPTOR = _CRITICALITYDIAGNOSTICS,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.CriticalityDiagnostics)
+  ))
+_sym_db.RegisterMessage(CriticalityDiagnostics)
+
+InformationElementCriticalityDiagnostic = _reflection.GeneratedProtocolMessageType('InformationElementCriticalityDiagnostic', (_message.Message,), dict(
+  DESCRIPTOR = _INFORMATIONELEMENTCRITICALITYDIAGNOSTIC,
+  __module__ = 'x2_setup_failure_response_pb2'
+  # @@protoc_insertion_point(class_scope:entities.InformationElementCriticalityDiagnostic)
+  ))
+_sym_db.RegisterMessage(InformationElementCriticalityDiagnostic)
+
+
+# @@protoc_insertion_point(module_scope)
index 5428ce9..623bd37 100644 (file)
@@ -24,9 +24,15 @@ import os
 import queue
 import time
 from threading import Thread
+from typing import List, Set
+
 import inotify_simple
 from mdclogpy import Logger
+
 from ricxappframe import xapp_rmr
+from ricxappframe.constants import sdl_namespaces
+from ricxappframe.entities.rnib.nb_identity_pb2 import NbIdentity
+from ricxappframe.entities.rnib.nodeb_info_pb2 import Node
 from ricxappframe.rmr import rmr
 from ricxappframe.xapp_sdl import SDLWrapper
 import requests
@@ -464,6 +470,79 @@ class _BaseXapp:
         """
         self.sdl.delete(namespace, key)
 
+    def _get_rnib_info(self, node_type):
+        """
+        Since the difference between get_list_gnb_ids and get_list_enb_ids is only note-type,
+        this function extracted from the duplicated logic.
+
+        Parameters
+        ----------
+        node_type: string
+           Type of node. This is EnumDescriptor.
+           Available node types
+           - UNKNOWN
+           - ENG
+           - GNB
+
+        Returns
+        -------
+            List: (NbIdentity)
+
+        Raises
+        -------
+            SdlTypeError: If function's argument is of an inappropriate type.
+            NotConnected: If SDL is not connected to the backend data storage.
+            RejectedByBackend: If backend data storage rejects the request.
+            BackendError: If the backend data storage fails to process the request.
+        """
+        nbid_strings: Set[bytes] = self.sdl.get_members(sdl_namespaces.E2_MANAGER, node_type, usemsgpack=False)
+        ret: List[NbIdentity] = []
+        for nbid_string in nbid_strings:
+            nbid = NbIdentity()
+            nbid.ParseFromString(nbid_string)
+            ret.append(nbid)
+        return ret
+
+    def get_list_gnb_ids(self):
+        """
+        Retrieves the list of gNodeb identity entities
+
+        gNodeb information is stored in SDL by E2Manager. Therefore, gNode information
+        is stored in SDL's `e2Manager` namespace as protobuf serialized.
+
+        Returns
+        -------
+            List: (NbIdentity)
+
+        Raises
+        -------
+            SdlTypeError: If function's argument is of an inappropriate type.
+            NotConnected: If SDL is not connected to the backend data storage.
+            RejectedByBackend: If backend data storage rejects the request.
+            BackendError: If the backend data storage fails to process the request.
+        """
+        return self._get_rnib_info(Node.Type.Name(Node.Type.GNB))
+
+    def get_list_enb_ids(self):
+        """
+        Retrieves the list of eNodeb identity entities
+
+        eNodeb information is stored in SDL by E2Manager. Therefore, eNode information
+        is stored in SDL's `e2Manager` namespace as protobuf serialized.
+
+        Returns
+        -------
+            List: (NbIdentity)
+
+        Raises
+        ------
+            SdlTypeError: If function's argument is of an inappropriate type.
+            NotConnected: If SDL is not connected to the backend data storage.
+            RejectedByBackend: If backend data storage rejects the request.
+            BackendError: If the backend data storage fails to process the request.
+        """
+        return self._get_rnib_info(Node.Type.Name(Node.Type.ENB))
+
     # Health
 
     def healthcheck(self):
index af334cf..82d343f 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -32,12 +32,12 @@ def _long_descr():
 
 setup(
     name="ricxappframe",
-    version="2.0.0",
+    version="2.1.0",
     packages=find_packages(exclude=["tests.*", "tests"]),
     author="O-RAN Software Community",
     description="Xapp and RMR framework for Python",
     url="https://gerrit.o-ran-sc.org/r/admin/repos/ric-plt/xapp-frame-py",
-    install_requires=["inotify_simple", "msgpack", "mdclogpy", "ricsdl>=3.0.0,<4.0.0", "requests"],
+    install_requires=["inotify_simple", "msgpack", "mdclogpy", "ricsdl>=3.0.0,<4.0.0", "requests", "protobuf"],
     classifiers=[
         "Development Status :: 4 - Beta",
         "Intended Audience :: Telecommunications Industry",
index eead2c4..dbff888 100644 (file)
@@ -16,6 +16,8 @@
 # ==================================================================================
 import pytest
 
+from ricxappframe.entities.rnib.nb_identity_pb2 import NbIdentity
+
 
 # These are here just to reduce the size of the code in test_rmr so those (important) tests are more readable; in theory these dicts could be large
 # The actual value of the constants should be ignored by the tests; all we should care
@@ -75,3 +77,20 @@ def expected_states():
         14: "RMR_ERR_TRUNC",
         15: "RMR_ERR_INITFAILED",
     }
+
+
+@pytest.fixture
+def rnib_information():
+    rnib1 = NbIdentity()
+    rnib1.inventory_name = "nodeb_1234"
+    rnib1.global_nb_id.plmn_id = "plmn_1234"
+    rnib1.global_nb_id.nb_id = "nb_1234"
+    rnib1.connection_status = 1
+
+    rnib2 = NbIdentity()
+    rnib1.inventory_name = "nodeb_5678"
+    rnib1.global_nb_id.plmn_id = "plmn_5678"
+    rnib1.global_nb_id.nb_id = "nb_5678"
+    rnib1.connection_status = 6
+
+    return [rnib1.SerializeToString(), rnib2.SerializeToString()]
index a31bd48..6aa32da 100644 (file)
 import json
 import time
 from contextlib import suppress
-from ricxappframe.xapp_frame import Xapp, RMRXapp, RIC_HEALTH_CHECK_REQ, RIC_HEALTH_CHECK_RESP
+from ricxappframe.xapp_frame import _BaseXapp, Xapp, RMRXapp, RIC_HEALTH_CHECK_REQ, RIC_HEALTH_CHECK_RESP
+from ricxappframe.constants import sdl_namespaces
 
 rmr_xapp = None
 rmr_xapp_health = None
 gen_xapp = None
+rnib_xapp = None
 
 
 def test_rmr_init():
@@ -106,6 +108,32 @@ def test_rmr_healthcheck():
     assert health_pay == b"OK\n"
 
 
+def test_get_list_nodeb(rnib_information):
+    global rnib_xapp
+    rnib_xapp = _BaseXapp(rmr_port=4777, rmr_wait_for_ready=False, use_fake_sdl=True)
+
+    # Test there is no rnib information.
+    gnb_list = rnib_xapp.get_list_gnb_ids()
+    enb_list = rnib_xapp.get_list_enb_ids()
+    assert len(gnb_list) == 0
+    assert len(enb_list) == 0
+
+    # Add rnib information directly.
+    for rnib in rnib_information:
+        rnib_xapp.sdl.add_member(sdl_namespaces.E2_MANAGER, "ENB", rnib, usemsgpack=False)
+        rnib_xapp.sdl.add_member(sdl_namespaces.E2_MANAGER, "GNB", rnib, usemsgpack=False)
+
+    gnb_list = rnib_xapp.get_list_gnb_ids()
+    assert len(gnb_list) == len(rnib_information)
+    for gnb in gnb_list:
+        assert gnb.SerializeToString() in rnib_information
+
+    enb_list = rnib_xapp.get_list_enb_ids()
+    assert len(enb_list) == len(rnib_information)
+    for enb in enb_list:
+        assert enb.SerializeToString() in rnib_information
+
+
 def teardown_module():
     """
     this is like a "finally"; the name of this function is pytest magic
@@ -118,3 +146,5 @@ def teardown_module():
         rmr_xapp.stop()
     with suppress(Exception):
         rmr_xapp_health.stop()
+    with suppress(Exception):
+        rnib_xapp.stop()
diff --git a/tox.ini b/tox.ini
index 5142bb1..0cdf5e6 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -42,6 +42,7 @@ commands = flake8 setup.py ricxappframe tests
 
 [flake8]
 extend-ignore = E501,E741,E731
+exclude = ricxappframe/entities
 
 [testenv:clm]
 # use pip to gather dependencies with versions for CLM analysis
@@ -65,6 +66,7 @@ deps = sphinx
        mdclogpy
        msgpack
        ricsdl
+       protobuf
 commands =
     sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
     echo "Generated docs available in {toxinidir}/docs/_build/html"