Commit Graph
8284 Commits
Author SHA1 Message Date
Robert Schmidt 2f23047900 Restructure F1AP UE list
* Restructure the code handling the UEs F1AP knows
* This fixes a bug that only two phones can be connected
2019-02-08 19:42:25 +01:00
Robert Schmidt 032fc48ac0 Remove unused, commented F1AP code 2019-02-08 18:01:56 +01:00
Robert Schmidt 36f192e873 Fix test of socket_link.c after interface change
link_send_packet() has been extended to use for multiple protocols (added UDP,
SCTP after TCP). The test was not update, though, which is fixed in this
commit.
2019-02-07 18:03:18 +01:00
Robert Schmidt 9fd4b45226 Remove F1-related flags from build_oai script 2019-02-07 18:03:17 +01:00
Robert Schmidt 822f9849a2 Stop CU's PROTO_AGENT when DU disconnects
This adds an exit flag as well as the proto_agent_async_msg_recv_unlock()
function to unlock and release the proto_agent worker thread correctly.
2019-02-07 18:00:20 +01:00
Robert Schmidt beec74b01a Correctly stop link_manager sender and receiver threads
This changes the destroy_link_manager() function to:
* call a new function message_get_unlock() to unlock the sending thread from
  its blocking message_get()
* calls pthread_cancel() on the receiving thread, because this unlocks any
  blocking read from a file descriptor

The same message_get_unlock() function has been added ringbuffer_queue to keep
the interfaces the same (it does nothing, because ringbuffer_queue is
non-blocking).
2019-02-07 17:56:56 +01:00
Robert Schmidt 0643d6b561 Make queue_recv() functions return size, not as out-param 2019-01-29 16:55:15 +01:00
Robert Schmidt 63c4a90eb7 Remove unused PROTO_AGENT code 2019-01-29 16:55:15 +01:00
Robert Schmidt 8c0ebfadda Add FlexRAN PLMN ID list and remove defunct cell_id 2019-01-28 08:36:32 +01:00
Robert Schmidt d9d6ce374f Perform S1 UE Context Release Complete after corresponding F1 message
This commits isolates the S1 UE Ctxt Rel Complete and GTP Tunnel Delete
Requests in functions and calls these function in the original place
(rrc_rx_tx()). The same functions are then used in the F1 UE Ctxt Rel
Complete handler to perform the same functionality, i.e. forward the UE
Ctxt Rel Complete message to the MME and free outstanding resources (RRC
context, GTP tunnels, S1 context).
2019-01-25 16:37:57 +01:00
Robert Schmidt 2cdcb6466b Move PDCP stats recording out from non-applying packet_forwarded FALSE case 2019-01-22 16:11:37 +01:00
Robert Schmidt 03b52216a0 FlexRAN: Access PDCP stats through RNTI 2019-01-19 18:22:43 +01:00
Robert Schmidt 767eaf5ba2 Initialize PDCP stats when UE is added 2019-01-19 18:22:40 +01:00
Robert Schmidt 6f9f2d8992 Correct PDCP stats defining constant to MAX_eNB from CC 2019-01-19 16:59:33 +01:00
Robert Schmidt ad9778be76 FlexRAN fix: correct array index var in loop 2019-01-19 16:13:38 +01:00
Robert Schmidt ca2f91072a F1AP: on UEContextRelCmd, DU distinguishes whether UE is out of sync 2019-01-18 16:44:00 +01:00
Robert Schmidt 7df8257526 F1AP: when UL_sync failure, send UEContextRelReq
When a phone loses connection, it should not simply be removed but first
CU should be informed which will send a ContextRelCmd. Correspondingly,
when the RRC releases the UE, it does not send a UE Context Release Req
2019-01-18 16:44:01 +01:00
Robert Schmidt 0699e539fe Put RRC S1AP UEContextReleaseReq message inside corresponding if 2019-01-17 18:21:47 +01:00
Robert Schmidt a26fad9e47 F1AP: Correct UEContextReleaseReq path, send corresp. S1AP message 2019-01-16 14:45:06 +01:00
Robert Schmidt 05e08d5094 Remove DU's UE RRC, MAC, RLC contexts correctly on UE RELEASE COMMAND 2019-01-10 16:51:04 +01:00
Robert Schmidt be17b9b655 Correctly handle UE RELEASE COMPLETE in CU
* remove PDCP/RRC contexts
* inform the FlexRAN controller
2019-01-10 16:50:17 +01:00
Robert Schmidt 29f23e161e Fix socket type to IPv4 in case of no-multi usage
sctp_create_new_listener() takes a parameter server_type which is NOT
the IP version but whether it is an SCTP multihoming server. There was a
bug that when multihoming is not wanted, it created an IPv6 socket
instead of IPv4. This commit fixes this.

IPv6 is not supported yet.
2019-01-10 14:28:25 +01:00
Robert Schmidt e389b79818 F1 handlers: Improve error message if RNTI obtained through CU/DU ID differ 2018-12-07 16:32:42 +01:00
Robert Schmidt 58850e3c86 Send F1 UE CONTEXT RELEASE REQ when RRC detects radio failure 2018-12-07 16:31:36 +01:00
Robert Schmidt 6f19bc4b8f Add F1AP_UE_CONTEXT_RELEASE_COMPLETE, tx in DU, correctly rx in CU 2018-12-07 15:49:04 +01:00
Robert Schmidt ae3ef27059 Move F1 UE ctxt release req to function mac_eNB_rrc_ul_failure() 2018-12-07 15:37:32 +01:00
Robert Schmidt 412caafd31 F1AP_UE_CONTEXT_RELEASE_COMMAND: Implement in DU, don't send COMPLETE 2018-12-07 14:17:33 +01:00
Robert Schmidt 956fafb51c F1AP_UE_CONTEXT_RELEASE_REQUEST/COMPLETE: Implement in CU 2018-12-07 14:16:42 +01:00
Robert Schmidt 707048c551 F1AP_UE_CONTEXT_RELEASE_REQUEST: Handle in CU, don't send CMD 2018-12-07 14:16:18 +01:00
Robert Schmidt f3f2bc584f F1AP_UE_CONTEXT_RELEASE_REQ: implement in DU
* MAC differentiates between DU/eNB
* sends ITTI message to DU task for F1AP_UE_CONTEXT_RELEASE_REQ
* message is dispatched to correctly in DU_TASK
* sender correctly fills IDs and cause and sends
2018-12-07 14:16:12 +01:00
Robert Schmidt d9bf26b9e8 Sort FlexRAN statistics by user before sending 2018-12-05 11:46:54 +01:00
Robert Schmidt 62b89f828a FlexRAN: Circumvent different RRC/MAC layer user ID sorting
* RRC and MAC might sort users differently
* therefore, we have to "reverse lookup" the MAC ID from the RNTI when filling
  user info
* For this purpose, add RAN API function flexran_get_mac_ue_id_rnti()
2018-12-05 11:46:26 +01:00
Robert Schmidt 8d862dace4 F1 test: fixes after merge 2018-11-07 16:13:04 +01:00
Robert Schmidt f3a5720dd9 FlexRAN: Apply slicing configuration if MAC CM present 2018-11-07 16:13:03 +01:00
Robert Schmidt f0c5f57159 Do not free mem_block in PDCP, it is freed in F1 or RLC 2018-11-07 16:13:03 +01:00
Robert Schmidt c32094685e Deliver SCTP ITTI messages with instance I 2018-11-07 16:13:03 +01:00
Robert Schmidt a477043a24 Add some useful LOG statements 2018-11-07 16:13:03 +01:00
Robert Schmidt 6c33f79095 Fix bugs after merge
* F1AP has to read MCC/MNC from list
* Do not stop if MACRLC list is not present in conf, it might be a CU
2018-11-07 16:13:03 +01:00
Robert Schmidt 04126f7bdc Do not compile with mem_block.c 2018-11-07 16:13:03 +01:00
Robert Schmidt 07d9c6a3be Cast malloc() to type 2018-11-07 16:13:03 +01:00
Robert Schmidt 6bd69d6eaa Leave OER support in asn1c enabled
OER can be disable with the switch -DASN_DISABLE_OER_SUPPORT. In F1AP,
disabling OER leads to a typedef void a_type; leading to lots of compilation
errors because of illegal void variable declarations. This commit leaves OER
support enabled, avoiding this error.
2018-11-07 16:13:03 +01:00
Robert Schmidt 397d2f4815 Merge commit 'develop' into feature-127-protocol-split
* remove a lot of white spaces
* many conflicts in enb_config.c
2018-11-07 16:07:59 +01:00
Robert Schmidt c1e680dd89 FlexRAN: free memory of statistics reports 2018-11-07 10:58:09 +01:00
Robert Schmidt 836f6c6374 Include statistics flag only when values are written 2018-11-07 10:54:35 +01:00
Robert Schmidt f02b539234 Correct init_cont_stats_update(), test for result 2018-11-07 10:54:35 +01:00
Robert Schmidt 2cf4060680 Implement stats_reply-specific destroy function 2018-11-07 10:54:35 +01:00
Robert Schmidt 86d8e21445 Test for CMs before taking CM-specific stats 2018-11-07 10:54:34 +01:00
Robert Schmidt 23650bdea3 Make flexran_agent_handle_stats() respect presence of MAC, RRC CMs 2018-11-07 10:54:34 +01:00
Robert Schmidt 3b3c9daefb Reformat flexran_agent_handle_stats() for better readability 2018-11-07 10:54:34 +01:00
Robert Schmidt 328448e875 Remove flexran_agent_send_update_stats() which is unnecessary 2018-11-07 10:54:34 +01:00