Commit Graph
100 Commits
Author SHA1 Message Date
Robert Schmidt fe6f7244df Fix compiler warning: %ld in printf 2020-11-11 16:48:53 +01:00
Robert Schmidt 308de3b68d Lower PHY/HARQ log level 2020-11-11 16:48:40 +01:00
Robert Schmidt 67d6311143 Hotfix: disable TA to keep RTT low + HARQ retx intact 2020-11-11 16:47:18 +01:00
Robert Schmidt 434186fd9f Correct TA timer condition
- wrap around 1024 (frame number is 0-1023)
- check for equality of frames with high numbers will trigger every 10ms
2020-11-11 16:45:54 +01:00
Robert Schmidt 2e03cbe7bf Track RBs in vrb_map as binary 2020-11-03 20:02:48 +01:00
Robert Schmidt c4f8ff1561 Assert on condition UE not found in UE_list 2020-11-03 14:23:50 +01:00
Robert Schmidt ad0424cbba Check all RA procs in nr_rx_sdu() if unknown RNTI 2020-11-03 14:23:50 +01:00
Robert Schmidt d94b1cd1a5 Track RB allocation in vrb_map{,_UL} on per-symbol basis 2020-11-03 14:23:50 +01:00
Robert Schmidt 40175d244a Format schedule_nr_mib() 2020-11-03 14:23:50 +01:00
Robert Schmidt a94da10dee Remove UE from UE_list on disconnect 2020-11-03 14:23:50 +01:00
Robert Schmidt 9125fc8d22 Refactor/shorten interface of nr_fill_nfapi_dl_pdu() 2020-11-03 14:23:50 +01:00
Robert Schmidt 8651b7fd14 Remove commented/unused code in DLSCH/phytest scheduler 2020-11-03 14:23:50 +01:00
Robert Schmidt 0deb5d291d Use special dlsim preprocessor 2020-11-03 14:23:50 +01:00
Robert Schmidt b389e43eea Add phytest preprocessor
The phytest preprocessor schedules only one UE, as many RBs as possible
(largest continuous RB region), with a fixed MCS and time domain
allocation.
2020-11-03 14:22:28 +01:00
Robert Schmidt fd9f5d2d2c Use function pointer to call pre-processor 2020-11-03 14:22:27 +01:00
Robert Schmidt 14f15d7e77 Fix: postprocessor resets UE scheduling condition 2020-11-03 14:22:27 +01:00
Robert Schmidt fd3d49bbe7 Correctly check and apply the TA in DLSCH scheduler 2020-11-03 14:21:37 +01:00
Robert Schmidt 9d2651d080 CI: Parse UE TUN interface correctly in S1 mode
See also commit 8c5976e279

Above commit changed the TUN interface configuration to use program "ip"
only. This commit changes the CI script parsing correspondingly: the
pipeline will recognize the attempt to bring up the interface of the
first UE.
2020-10-28 17:10:21 +01:00
Robert Schmidt a6126a39a5 Remove MAX_NUMBER_NETIF and use num UE 2020-10-13 09:07:46 +02:00
Robert Schmidt 8c5976e279 Use "ip add" to add IP addresses
This then only uses the "modern" ip tool instead of ifconfig, and the
command is more "homogeneous".
2020-10-13 09:07:46 +02:00
Robert Schmidt 298956509f Delete double UE IP config setup 2020-10-13 09:07:46 +02:00
Robert Schmidt 4c7035e6e3 Remove UESIM_EXPANSION
This completely removes the UESIM_EXPANSION define: it does not compile
at the moment. Its function was to multiplex multiple UEs on the same
TUN interface. However, this functionality is not needed since it is
possible to allocate many TUN devices (i.e., >= 32).
2020-10-13 09:07:46 +02:00
Robert Schmidt ff48c369c5 Lower nFAPI eNB log level 2020-10-13 08:49:30 +02:00
Robert Schmidt ac4bb8bc55 Prevent deadlocks in nFAPI when no free index 2020-10-13 08:49:30 +02:00
Robert Schmidt 9882460607 Remove Mutexes in phy_stub_UE.c
Various mutexes are present in the phy_stub_UE.c file. However, it will
only be run in a single thread; the multiple-thread implementation also
runs the higher layers concurrently, which leads to races and segfaults.
Therefore, remove these mutexes, as we don't need them.
2020-10-13 08:49:30 +02:00
Robert Schmidt 581de8b2d8 Limit UE UL RBs to 48 2020-10-13 08:49:30 +02:00
Robert Schmidt 41a440fad2 Do not schedule static slices if 0 RB(G)s 2020-10-13 08:49:29 +02:00
Robert Schmidt ca1b0e2bbc Bugfix RR algo: if a UE cannot be allocated, skip it 2020-10-13 08:49:29 +02:00
Robert Schmidt 72556206e9 Simplify set_Y() 2020-10-12 18:59:14 +02:00
Robert Schmidt 8cb530d25c Address review in !913: rename functions 2020-10-09 09:02:59 +02:00
Robert Schmidt a389e6f5e9 Fixup: reserve space for TA command 2020-10-07 17:54:39 +02:00
Robert Schmidt f146b640d5 FlexRAN agent app: trigger UE-slice assoc through IMSI regex 2020-10-06 19:47:33 +02:00
Robert Schmidt e569577944 FlexRAN: send loaded apps/macObjects to RTC 2020-10-06 17:45:50 +02:00
Robert Schmidt 28c47996e4 When preparing slice update/search also loaded libraries 2020-10-06 17:45:50 +02:00
Robert Schmidt 38ace905aa Check for shared objects beforing setting scheduler 2020-10-06 17:45:50 +02:00
Robert Schmidt 21dcd834cc Save list of SOs used in user plane 2020-10-06 17:45:50 +02:00
Robert Schmidt 65e52fcf11 Inform MAC of control delegation and load in user plane 2020-10-06 17:44:16 +02:00
Robert Schmidt 0f641b7d9c If unknown scheduler, save message and contact controller 2020-10-06 17:44:16 +02:00
Robert Schmidt 9de83a047a FlexRAN: Add control_delegation_request protobuf message 2020-10-06 17:44:16 +02:00
Robert Schmidt c500babe8b FlexRAN fixup: FLPT_DELEGATE_REQUEST and corresp. destroy() 2020-10-06 17:44:16 +02:00
Robert Schmidt 865348b047 FlexRAN agent app: Add sample FlexRAN app 2020-10-06 17:44:16 +02:00
Robert Schmidt fde3127823 FlexRAN Agent reconfiguration: call flexran_agent_handle_apps() 2020-10-06 17:44:16 +02:00
Robert Schmidt 8772856fd4 FlexRAN: Add app loader/CM 2020-10-06 17:44:16 +02:00
Robert Schmidt 9e4320864f FlexRAN control delegation: write/remove depending if payload present 2020-10-06 17:44:09 +02:00
Robert Schmidt 6e2c8d847a FlexRAN: new agent reconfiguration syntax, instead of YAML 2020-10-06 17:44:09 +02:00
Robert Schmidt 1c5a4eb645 FlexRAN: add control app delegation type in protobuf 2020-10-06 17:44:09 +02:00
Robert Schmidt 61344db9dd FlexRAN delegation: mapper function to return path name 2020-10-06 17:44:08 +02:00
Robert Schmidt f63cf65919 FlexRAN: Improve handling of received shared objects 2020-10-06 17:44:08 +02:00
Robert Schmidt 5d9c61ea2a FlexRAN timers: Fix segfault timer no associated message 2020-10-06 17:27:12 +02:00
Robert Schmidt 33b73193e8 FlexRAN timers: enable timer add/remove within timer event
A lock help during executing a timer event prevented such event from
creating/removing new timers due to a dead lock. This commit changes the
logic of the timing loop and adding/removing code such that this dead
lock does not happen.
2020-10-06 17:27:12 +02:00
Robert Schmidt 7bdf807bab FlexRAN timers: Remove destroy_timers() 2020-10-06 17:27:12 +02:00
Robert Schmidt db933da183 FlexRAN bugfix: first timer expiry after period 2020-10-06 17:27:12 +02:00
Robert Schmidt 2904367165 Fixup: reserve space for TA command 2020-10-05 13:14:58 +02:00
Robert Schmidt 2e41782a12 Add configurable UE as param for nr_generate_dlsch_pdu() 2020-10-05 13:14:58 +02:00
Robert Schmidt eb263af39e Remove statistics from nr_generate_dlsch_pdu() 2020-10-05 13:14:58 +02:00
Robert Schmidt 4ecb236df6 nr_fill_nfapi_dl_pdu(): pdu index and nPDUs counting 2020-10-05 13:14:58 +02:00
Robert Schmidt cbd6250fdf Directly construct tx_req nFAPI message in DL postprocessor 2020-10-05 13:14:58 +02:00
Robert Schmidt 22cb1567d4 allocate only necessary amount of RBs 2020-10-05 13:14:58 +02:00
Robert Schmidt d145d8d662 Consider retransmissions in the preprocessor 2020-10-05 13:14:58 +02:00
Robert Schmidt 0ef332ef75 DL Post processor: distinguish tx/retx 2020-10-05 13:14:58 +02:00
Robert Schmidt acffd17d6f Store retx Info 2020-10-05 13:14:58 +02:00
Robert Schmidt 8a004df0c9 Create UE MAC Context after successful RA 2020-10-05 13:14:58 +02:00
Robert Schmidt ee850206e4 fixup: throughput correct only if first TDD slot 2020-10-05 13:14:58 +02:00
Robert Schmidt f80ab8797a Use vrb_map in in DL for NSA mode 2020-10-05 13:14:58 +02:00
Robert Schmidt d7d21efcf5 Post-processor: enable multi-UE handling 2020-10-05 13:14:58 +02:00
Robert Schmidt 059f585e06 Preprocessor: check for number of UEs 2020-10-05 13:14:58 +02:00
Robert Schmidt abd608b6cb Mark active in add_new_nr_ue() only if phytest 2020-10-05 13:14:58 +02:00
Robert Schmidt d921581922 Remove fiveG_connected and use active 2020-10-05 13:14:58 +02:00
Robert Schmidt 793cbda97e Simplify allocate_rn_CCEs() 2020-10-05 13:14:58 +02:00
Robert Schmidt 1a73ea6c6d Make UE_info.active C99 bool 2020-10-05 13:14:58 +02:00
Robert Schmidt 0032bcc905 add_nr_ue_list() 2020-10-05 13:14:58 +02:00
Robert Schmidt d0667d9ea4 Add NR_UE_list_t type 2020-10-05 13:14:58 +02:00
Robert Schmidt e956c17bf8 Rename NR_UE_list_t to NR_UE_info_t
The name NR_UE_list_t is misleading: beyond being a simple "list", this
structure carries all/most UE-related MAC information. If at all, it is
a container for multiple lists. The next commit introduces a
NR_UE_list_t structure that organizes UEs in lists such that it is
easier to go through the UEs.
2020-10-05 13:14:58 +02:00
Robert Schmidt f28679b360 PreProc IF: save MCS-info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt f9dd8292f8 PreProc IF: Freq domain allocation per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt 6c7ff44cd9 PreProc IF: save Time domain assignment info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt 112b30d79a PreProc IF: save PUCCH info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt 34a31a20b7 PreProc IF: save CCE info per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt dcdee083ac PreProc IF: RLC status per UE 2020-10-05 10:29:45 +02:00
Robert Schmidt d12180b25b Start PreProc interface, add UE active BWP 2020-10-05 10:29:45 +02:00
Robert Schmidt f86e4305f6 Reduce log DLSCH scheduler 2020-10-05 10:29:45 +02:00
Robert Schmidt 1b5558537f Move HARQ calculations out of nr_fill_nfapi_dl_pdu() 2020-10-05 10:29:45 +02:00
Robert Schmidt 4cebd0dd92 Only send random data if phytest 2020-10-05 10:29:45 +02:00
Robert Schmidt 7f51eca9d3 Remove UE-specific ulsch bitmap, special phy test slot
when in phy test, only schedule UE to be in slot 8
2020-10-05 10:29:45 +02:00
Robert Schmidt 14613222f3 clean up gNB_dlsch_ulsch_scheduler(), remove UE-specific DL bitmap 2020-10-05 10:29:45 +02:00
Robert Schmidt de2cf2393b Do not allocate CCE in nr_configure_pdcch()
nr_configure_pdcch() allocates the CCE, but this is not wanted, e.g., in
multi-user scheduling, since it might not be possible to allocate the
CCEs for these UEs. This commit makes the following changes:

- remove CCE allocation in nr_configure_pdcch()
- remove coreset search in nr_configure_pdcch()
- add functions get_coreset() and get_searchspace() to retrieve coresets
  and search spaces easily
- in nr_fill_nfapi_dl_pdu(), add extra parameters for aggregation level
  and CCE indices and the searchspace and coreset of a UE, which might
  be different for each UE
- allocate CCEs manually in phytest, RA, and DLSCH schedulers
2020-10-05 10:29:45 +02:00
Robert Schmidt 43f177e7df Restructure nr_schedule_ue_spec() 2020-10-05 10:29:44 +02:00
Robert Schmidt 3de6b619be Move TBS calculation out of nr_fill_nfapi_dl_pdu 2020-10-05 10:29:44 +02:00
Robert Schmidt 685c540353 nr_fill_nfapi_dl_pdu(): MCS + other params configurable 2020-10-05 10:29:44 +02:00
Robert Schmidt 041bb7a755 Inline nr_get_tbs_dl() 2020-10-05 10:29:44 +02:00
Robert Schmidt 7a0650c40c nr_fill_nfapi_dl_pdu(): Parameters by value, not pointers 2020-10-05 10:29:44 +02:00
Robert Schmidt 77f5d59691 Create separate nr_fill_nfapi_dl_pdu() 2020-10-05 10:29:44 +02:00
Robert Schmidt e259111f77 Create NR DLSCH nr_schedule_ue_spec() 2020-10-05 10:29:44 +02:00
Robert Schmidt 7cf7a0e8b1 Reduce log nr-softmodem 2020-10-05 10:24:41 +02:00
Robert Schmidt a2bf8f478a Add configurable UE as param for nr_generate_dlsch_pdu() 2020-09-30 14:52:59 +02:00
Robert Schmidt f97c4f8ae6 Remove statistics from nr_generate_dlsch_pdu() 2020-09-30 14:52:59 +02:00
Robert Schmidt 574f47d014 nr_fill_nfapi_dl_pdu(): pdu index and nPDUs counting 2020-09-30 14:52:59 +02:00
Robert Schmidt ea9aacd664 Directly construct tx_req nFAPI message in DL postprocessor 2020-09-30 14:52:59 +02:00
Robert Schmidt b7b32fbe77 allocate only necessary amount of RBs 2020-09-30 14:52:59 +02:00
Robert Schmidt 0c61983196 Consider retransmissions in the preprocessor 2020-09-30 14:52:59 +02:00