Commit Graph
100 Commits
Author SHA1 Message Date
Robert Schmidt 8a47fa484c Handle residual MAC PDU < 0 gracefully 2020-03-24 17:54:08 +01:00
Robert Schmidt daefb67c82 Fix: correct check for dummy-traffic 2020-03-24 17:54:08 +01:00
Robert Schmidt 69c16efe07 Fix: check that UE RRC config files are found 2020-03-24 17:54:08 +01:00
Robert Schmidt 2c21e8229c Fix: correctly set context before calling pdcp_run() 2020-03-24 17:54:08 +01:00
Robert Schmidt 8a589f5b08 Fix: rx_indication length is in bytes 2020-03-24 15:54:45 +01:00
Robert Schmidt df0bc30e28 Make function static inline, not inline
inline alone does only define a function without a corresponding
declaration. static solves this problem
2020-03-24 15:41:54 +01:00
Robert Schmidt 0de3c73475 Place MBMS tun fd into single int 2020-03-10 17:38:24 +01:00
Robert Schmidt 84482489e4 Reformat phy_stub_UE.c with clang-format 2020-03-08 20:34:20 +01:00
Robert Schmidt fa7ace4b1d Reimplement dl_config_req_UE_MAC() more concisely 2020-03-08 18:34:00 +01:00
Robert Schmidt 34e7952944 CI: Multi. UEs handled by 1 thread (no races) in l2sim 2020-03-08 18:33:34 +01:00
Robert Schmidt 719667895c Prevent memory leak in L2 sim due to NFAPI 2020-03-08 18:33:34 +01:00
Robert Schmidt 6ec6c8b261 Request CQI in all NFAPI modes (i.e., also for L2 sim) 2020-03-08 18:33:34 +01:00
Robert Schmidt 6866be7175 Trigger ULSCH CQI ind only when instructed 2020-03-08 18:33:34 +01:00
Robert Schmidt 943f907ae1 Send correct ULSCH CQI indication message in L2 sim 2020-03-08 18:33:34 +01:00
Robert Schmidt b34a0e2f54 Increase (fixed) PHR for UE phy stub mode (L2 sim) 2020-03-05 16:06:02 +01:00
Robert Schmidt 8af8836c4b Call oai_nfapi_cqi_indication() to send cqi_indications 2020-03-05 16:04:44 +01:00
Robert Schmidt 15a2767562 Don't call fill_ulsch_cqi_indication_UE_MAC()
This functions fills the ULSCH CQI indication message incorrectly. Also,
it should only be triggered when the eNB requests CSI. We disable it
here and a subsequent commit enables it again.
2020-03-05 16:04:44 +01:00
Robert Schmidt c321f9b5a3 Make UE mem alloc for UL_INFO only once in PHY stub mode 2020-03-05 16:04:44 +01:00
Robert Schmidt 5f851d45b3 Fill UE RX Indication Rel9 to prevent error message 2020-03-05 16:04:44 +01:00
Robert Schmidt 05577be422 Reduce logging verbosity and levels 2020-03-04 13:38:04 +01:00
Robert Schmidt a51dc94e8b Set correct UE ID in Kenb Refresh Req
NAS triggered the Kenb Refresh Req always for (hardcoded) UE 0. This
fixes this by setting the correct UE ID.

An effect of this was that the Kenb would always be set for UE 0,
regardless for which UE it was actually intended. This led for integrity
check failures for every UE with ID > 0.
2020-03-04 13:38:04 +01:00
Robert Schmidt dabe2ae7ab FlexRAN: remove unused import in protocol def 2020-01-20 14:05:05 +01:00
Robert Schmidt 1c8c839f65 FlexRAN: Reformat code for X2 HO NetControl activation 2020-01-20 14:05:05 +01:00
Robert Schmidt e33be3ccd3 FlexRAN: Re-enable the soft-restart, it works 2020-01-20 14:05:05 +01:00
Robert Schmidt c6e389ed4c FlexRAN: assert if out of memory 2020-01-20 14:05:05 +01:00
Robert Schmidt a87220d376 Add S1AP control module for FlexRAN with status monitoring support 2020-01-20 14:05:05 +01:00
Robert Schmidt 44fdb23f15 FlexRAN: fix RRC protobuf definition 2020-01-20 11:35:35 +01:00
Robert Schmidt 6a581d903b Add FlexRAN protobuf definition for S1AP 2020-01-20 11:35:35 +01:00
Robert Schmidt d2b1e6aa9a FlexRAN: report employed splits to controller 2020-01-20 11:35:35 +01:00
Robert Schmidt a8b4a62b82 Read RU config before FlexRAN to allow split identification 2020-01-20 11:35:35 +01:00
Robert Schmidt f87c1cbb92 FlexRAN refactor+format MAC stats function 2020-01-20 11:35:35 +01:00
Robert Schmidt b6d466d772 FlexRAN: reimplement timers without ITTI
The timer code used to trigger periodic statistics message sending used
ITTI. Together with a high frequency reporting (e.g. 1ms), this resulted
in high CPU usage. This commit reimplements this:
* using a thread that is synchronized to the RU (if there is no MAC, we
  assume there is no RU generating a tick so we create the tick source
  ourselves)
* no RB trees but plain arrays
* smaller interface for users
* slight user interface changes
* remove stopped timer state: such timer might be simply removed
* remove one-shot timers
2020-01-20 11:35:35 +01:00
Robert Schmidt 233affc9dd FlexRAN: include header, not C file 2020-01-20 11:34:54 +01:00
Robert Schmidt 5c4aa309eb FlexRAN: helper function to get No. UEs 2020-01-20 11:34:54 +01:00
Robert Schmidt 7415d08138 FlexRAN: Simplify stats request handling
* only set up timer for sending requests
* simplify interface for timer setup
* on timer expiry, do not pass through stats request function but
  directly send the reply
* Remove whatever report structure and use stats request directly for
  inferring the data to send
2020-01-20 11:34:54 +01:00
Robert Schmidt a21c1b1f73 Remove unused sleep function() 2020-01-20 11:33:32 +01:00
Robert Schmidt e26f7d7555 F1: correctly initialize CU RRC params (clean up code after 99012f88b9) 2019-06-27 14:22:10 +02:00
Robert Schmidt 5b12a60950 Flexran-triggered RRC Reconf: free memory of mac_MainConfig after setting new, do not free new memory 2019-06-25 15:47:52 +02:00
Robert Schmidt 0f568fd40a FlexRAN: Comment non-functional code regarding Neigh CGI PLMN ID reporting 2019-06-25 10:40:12 +02:00
Robert Schmidt f1a1ff036d FlexRAN: HO request first check whether X2 is active, minor indentation fixes 2019-06-24 17:55:13 +02:00
Robert Schmidt a6be54a6f4 Fix: X2 Setup Req/Resp: first check, then increase number of cells 2019-06-24 17:54:38 +02:00
Robert Schmidt 960e8dc9d8 FlexRAN: Calculate sfnsn such that diff 1s = 1000 2019-06-24 16:29:14 +02:00
Robert Schmidt a90a7f352e Additional messages for error diagnosis for net-ctrld HO 2019-06-24 16:29:14 +02:00
Robert Schmidt 67fc2f7c62 FlexRAN: add GTP statistics in UE stats through RRC module 2019-06-24 16:29:14 +02:00
Robert Schmidt 939251e004 Fix: Memory allocation for offsetFreq parameter 2019-06-24 16:29:14 +02:00
Robert Schmidt 8cf520d283 Rename FlexRAN RRC reconfiguration function, simplify function 2019-06-24 16:29:11 +02:00
Robert Schmidt 76a7b7036e FlexRAN: Add Protobuf UE-specific RRC measurement report configuration 2019-06-24 16:15:44 +02:00
Robert Schmidt 82db432191 Make separate func_ptr setters for PDCP Ind/RLC Req 2019-04-19 14:06:48 +02:00
Robert Schmidt 42713b95fc Configure complete PDCP in lte-(ue)softmodem
* Instead of partly initializing in read_config_and_init(), everything of
  PDCP is initialized in main() of lte-softmodem
* Omit RC.rrc access in RRU through checking of RC.nb_inst > 0
* Includes FlexRAN, i.e. do not start FlexRAN in RRU
* Function pointers to PDCP functions have to be set explicitly (avoid
  confusion of multiply setting function pointers)
2019-04-19 14:05:51 +02:00
Robert Schmidt de1dc5c9d7 Correct if before call free() 2019-04-18 16:03:01 +02:00
Robert Schmidt b4f462b9c8 Align PROTO_AGENT functions with PDCP/RLC function pointers 2019-04-18 13:42:20 +02:00
Robert Schmidt 896ea4a72a Fix: Check for node type in L2_interface only when not UE 2019-03-26 13:37:14 +01:00
Robert Schmidt 024007716a Check type of node using NODE_IS_CU/DU/MONOLITHIC macros 2019-03-26 13:15:02 +01:00
Robert Schmidt f0fced85f2 Execute pdcp_run from rrc_data_req only when in CU mode 2019-03-26 10:50:11 +01:00
Robert Schmidt dc9a68ff30 Correct condition to read MIB/SIB1 params only when not CU 2019-03-26 10:49:47 +01:00
Robert Schmidt cdc2d921c1 FlexRAN: fix total_size_ul_mac_sdus parameter 2019-03-24 16:45:32 +01:00
Robert Schmidt c1f142cc44 Fix warnings: space between literal and identifier in macro
This resolves the following warning:
"error: invalid suffix on literal; C++11 requires a space between literal and
identifier"
Since this file might be included from a C++11 file. It only adds spaces.
2019-03-23 17:32:28 +01:00
Robert Schmidt 4f6b1e46a5 Remove warnings for DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER() include 2019-03-23 17:10:43 +01:00
Robert Schmidt 10a5e5fd75 Use OAI NUM_ENB/UE defines for F1U (removes warnings) 2019-03-23 16:57:26 +01:00
Robert Schmidt 9611a22a65 Remove warnings in RRC 2019-03-23 16:40:47 +01:00
Robert Schmidt 7519b8e061 Free UE in RRC/S1/GTP if not DU 2019-03-23 16:20:43 +01:00
Robert Schmidt 9fd0f9f8bf Re-comment Assert for unconfigured RLC as in current develop 2019-03-19 15:48:00 +01:00
Robert Schmidt 1f590efe2b Merge branch 'develop' into feature-127-protocol-split 2019-03-19 14:49:07 +01:00
Robert Schmidt 13857c67e8 fix segfault RRU: check for nb_inst >0 before node_type 2019-03-14 14:24:16 +01:00
Robert Schmidt 62d9b8cf36 Merge branch 'develop' into feature-127-protocol-split 2019-03-14 13:10:21 +01:00
Robert Schmidt 7edf4387f9 Fix bug in eNB: correctly set brOption for RRC R14 2019-03-08 16:58:45 +01:00
Robert Schmidt 20c35748ca Fix lte-uesoftmodem: segfaults & logic errors
* prevent segfault: guard access to RC.rrc with UETARGET
* in rlc_data_ind(): correct logic to test for all cases eNB, CU, DU, UE
2019-03-08 16:52:34 +01:00
Robert Schmidt 05ebea4a24 Reduce PHY layer logging (as in current develop) 2019-03-08 16:51:57 +01:00
Robert Schmidt 02d99edf23 Fix cppcheck errors: RRC, F1AP 2019-03-07 14:16:16 +01:00
Robert Schmidt ede37e56b8 Use correct RNTI for RRC data req 2019-03-07 12:46:34 +01:00
Robert Schmidt bbedd315e7 Correctly link lte-uesoftmodem(-nos1) (hack)
Although not used in the UE, we currently need to link the F1 library into it.
This is because we do not define ASN_DISABLE_OER_SUPPORT (otherwise, F1 has
compilation problems). In this case, some functions are apparently not
correctly defined, giving linker errors in the UE. Linking F1 in solves the
problem.

This is a hack. It would be better to be able to define ASN_DISABLE_OER_SUPPORT
and have no compilation errors or compile everything with
ASN_DISABLE_OER_SUPPORT except F1. I did not do this because I did not find
another way than add target_compile_definitions() to every target except F1
which adds many lines just so that one target (F1 ASN.1) compiles correctly (in
other words, F1 needs to be fixed).
2019-03-06 19:28:12 +01:00
Robert Schmidt 275b559fbf Fix linker error: link F1-U protobuf for eNB noS1 case 2019-03-06 14:18:54 +01:00
Robert Schmidt 7a7c2afa11 Handle cppcheck errors in ASYNC_IF 2019-03-06 13:59:39 +01:00
Robert Schmidt 66d4c4e92d Fix cppcheck issues in PROTO_AGENT 2019-03-06 13:43:09 +01:00
Robert Schmidt 56af9c60e4 Fix compilation/linking errors in lte-uesoftmodem 2019-03-05 18:47:29 +01:00
Robert Schmidt e3bb3ab7d3 Change integer based conf parameter from string 2019-03-05 18:27:54 +01:00
Robert Schmidt f9c4c501e3 Merge branch 'develop' into feature-127-protocol-split 2019-03-05 14:17:38 +01:00
Robert Schmidt 1e3d0c9a16 Update F1 CU/DU configuration (tested, formatted) 2019-02-27 15:31:52 +01:00
Robert Schmidt 544d80c40d Merge branch 'develop' into feature-127-protocol-split 2019-02-25 18:06:35 +01:00
Robert Schmidt 97126eb57e Fix carrierFreq MeasObj calculation to handle F1 case 2019-02-25 16:33:02 +01:00
Robert Schmidt cc2a507d59 Unify and comment RRC container print of F1 2019-02-25 16:23:42 +01:00
Robert Schmidt 80b6245213 Remove comments left after merge 2019-02-22 18:38:34 +01:00
Robert Schmidt eab78405cc Log received F1 messages correctly 2019-02-22 18:33:12 +01:00
Robert Schmidt 549e72d001 Trigger UL RRC Message through ITTI Message 2019-02-22 16:36:26 +01:00
Robert Schmidt c75fd52e3a Remove many warnings 2019-02-22 15:22:13 +01:00
Robert Schmidt bd36a9ef0c Gracefully handle different numbers of UE in MAC and RRC 2019-02-22 15:22:09 +01:00
Robert Schmidt a4d909bca8 Initialize variables to prevent illegal free() 2019-02-22 10:51:40 +01:00
Robert Schmidt 1a07a1e067 Replace redundant CU_F1AP/DU_F1AP with F1AP 2019-02-22 10:26:41 +01:00
Robert Schmidt 030e11ba9a Merge branch 'develop' into feature-127-protocol-split 2019-02-21 20:18:35 +01:00
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