RRC-PHY interface refactor. Moved RRC-MAC interface to rrc_asn1_utils and created RRC-PHY interface also in rrc_asn1_utils. All ASN1 includes should be made from rrc_asn1_utils only keeping ue_interfaces clean of ASN1
Tested with different common and dedicated configurations (64QAM UL, 256QAM, CA, SRS enabled/disabled, etc)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.
* moved timers out of the UE MAC
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
- all RLC entities are now initialized during contruction
- there is no need to check for, e.g., existance of timers, during
runtime
- there is also no need to call re-init during resume
- timers are freed in dtor
this will also extend all classes that use srslte::thread
to specify the name of the thread in the ctor as well
as to set the name of the worker threads in the thread pool
the thread name will be displayed in gdb.
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly
- there was an issue in the stack allocation of the large
m2ap pdu struct that was fixed by heap-allocating it
- there was also an issue in the m2ap packing that used
a temporary struct that was not initialized
* Starting to add EIA1 tests.
* Initial tests for EIA1
* Bit shifted bearer by 27. Test case 1 and 4 are passing now.
* Adding EIA test case 7.
* Making sure the test is called.
* Fixed double initialization of msg_len_bits.
* Starting to add M2AP serialization structures.
* Added M2AP procedure ids.
* Added some M2AP max values.
* Removing m2ap.cc for now.
* Adding cause IE.
* Adding dummy m2ap.cc to check correct compilation of m2ap.h
* Fixed compilation issues in m2ap.h
* Adding Cell Information IE.
* Added Criticality diagnostics IE.
* Adding eNB-MBMS-ConfigurationDataItem.
* Adding MBMS-Service-Area-Id-List
* Added MBMS Service Area Id.
* Added Global eNB Id IE.
* Added Global MCE id IE.
* Added MBMS-Service-associatedLogicalM2-ConnectionItem IE.
* Added MBSFN_SUBFRAME_CONFIGURATION IE
* Added MCCHrelatedBCCH-ConfigPerMBSFNArea IE.
* Added MCH scheduling period IE.
* Added PMCH-Configuration IE.
* Added Time-to-Wait IE.
* Added TNL-Information IE.
* Starting to add M2SetupRequest msg.
* Adding M2 Setup Request message.
* Fixed up enums related to initiating messages, successful outcome and unscesseful outcome.
* Starting to add m2ap apck/unpack PDU functions.
* Started to add a test for M2 Setup Request Pack/Unpack.
* Filling in M2SetupRequest structure.
* Adding packing of more IEs in the M2SetupRequest.
* Starting to add unpacking functions to M2SetupRequest.
* Continuing to unpack M2SetupRequest. Unpacking PLMN Identity correctly now.
* Fixed up enb_id unpacking. eNB Id and eNB name unpacking correctly now.
* Starting to add unpacking for dataconfiguration item.
* Adding support for eCGI unpacking.
* Adding MBSFN Synchronization Area id Unpacking.
* Adding service area unpacking.
* Added unpacking functionality to the rest of the IEs in the M2 Setup Request. Unpacking the M2 Setup Request is passing unit test.
* Fized mistake in packing eNB Id. Starting to add packing to eCGI.
* Starting to pack value in ENB MBMS Configuration item.
* Fixed packing of ENB MBMS configuration item header.
* Packing of M2 Setup request is now passing the unit test.
* Starting to add M2setup response.
* Starting to add packing/unpacking succeful outcome.
* Starting to add M2SetupResponse to test.
* Continue to add testing to setup response. Choice type seems OK.
* Starting to add unpacking to MCE Id.
* Adding MCEname packing/unpacking.
* Continue to unpack m2setupresponse.
* Adding MBMS Area Id unpacking
* Added pddch length unpacking.
* Adding more IE unpacking.
* Adding more code to unpack M2 Setup response.
* Added M2 Setup response unpacking.
* Added M2 response packing. Fixed mistake on eCGI packing/unpacking, which broke M2 Setup request.
* M2 setup request and response pack and unpacking seems to work.
* Starting to add MBMS Session Start Request.
* Continue to unpack MBMS session start request.
* Added TMGI unpacking.
* Continue to add unpacking to MBMS session start request
* Starting to add TNL Information unpacking
* Added unpack for MBMS session start request.
* Strating to add MBMS session start request packing.
* Adding MCE MBMS M2AP Id packing.
* Added MBMS Session Start Reqeust pack and unpack.
* Added MBMS Session start response packing/unpacking.
* Starting to add unpacking of MBMS Scheduling information.
* Adding MCCH Update time Unpacking.
* Adding MBSFN Area Configuration List Unpacking.
* Starting to add unpack PMCH configuration Item.
* Adding AllocatedSubframesEnd unpack
* Fixed multiple mistakes in unpacking PMCH configuration.
* Unpacking MCH Scheduling Period
* Continue to unpack MBMS Session List Per PMCH Item.
* Added unpacking of PMCH Configuration List. Starting to add unpacking of MBSFN Subframe Configuration List.
* Adding radioframe allocation period and offset unpacking.
* Added unpacking of MBMS Scheduling Information (needs testing.)
* Added more testing to MBMS Scheduling Info.
* Small commit.
* Added more testing to the unpacking of MBMS Scheduling Information. Unpacking correctly now.
* Continue to pack MBMS Scheduling information. Packing PMCH Configuration.
* Fixed mistach in packing PMCH configuration list.
* Adding more packing to MBMS scheduling info message.
* Fixed more mistakes in MBMS Scheduling information packing. Passing tests now.
* Added MBMS Scheduling Information Response.
* Remove debug prints.
* fixed some issues with the UL scheduling
* Hack to fix UL scheduler
* minor fix
* Cleaned up code and fixed issue with the update_allocation function
* fixed the console printing in the enb
* log/console fix
* fixed the log print
* added a normalization factor
* RLC: entity uses dynamic instances. Simplified stop/reset/reestablish procedure. Added non-blocking interface
* Limit decimals in metrics stdout
* Changed mutexes to rwlock in RLC/RRC/MAC/PDCP to fix race conditions when removing users
* Fix deadlock bug for MIMO
* Remove headers
* Fix missing unlock causing overflows
* Do not decrease CQI when PUCCH (this is a temporal fix, requires to reduce the maximum MCS)
* Fix mutex unlock in worker
* Configurable RLC tx buffer. Default to 512 for enodeb
* Check NULL SDU in write_sdu()
* Protect RLC objects and tx_queue from being destroyed while using it
* Remove superfluous code
* Disable SIB logging
* Fix block_queue for enb