write_sdu and write_pdu are not re-entrant because all functions
that deal with the counters, e.g. integrity check and generate,
must be protected because MAC threads may call them at the same time.
this addresses issue #254
* 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.
- add a simple and low-overhead has_data() method to check whether
an RLC entity has data to transmit or not
- use this method for all calls that are actually not interested
in the amount of data to send
- use the more expensive get_buffer_state() for all cases where
the actual size of the buffer is of importance