Commit Graph

7720 Commits

Author SHA1 Message Date
Francisco 21718af3b6 avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type 2021-04-12 13:21:43 +01:00
David Rupprecht 5e02dbc536 Remove measurement id from trigger state nr allows to second nr reconfig 2021-04-12 10:32:40 +02:00
Francisco 437db3af03 forbid allocations when dispatching task to thread pool 2021-04-10 15:03:38 +01:00
Andre Puschmann b991b07167 rlc: add length check for RLC PDU generation
makes sure that RLC doesn't generate a PDU larger than
the provided grant size
2021-04-10 14:01:43 +02:00
Andre Puschmann c1b66e89a5 mux_nr: protect MAC PDU packing from concurrent access from PHY workers
this will be moved to UL HARQ shortly but for now we need
to protect the packing
2021-04-10 14:01:43 +02:00
Andre Puschmann cf696138d3 mac_nr: fix packing order of SDU and CEs
SDUs need to go first in the MAC PDU, followed by CEs
2021-04-10 14:01:43 +02:00
Andre Puschmann 399954a970 mac_nr: convert bytes to bits for DL metrics 2021-04-10 14:01:43 +02:00
Andre Puschmann b083b612de proc_bsr_nr_test: fix SBSR test 2021-04-10 14:01:43 +02:00
Andre Puschmann 7da68dfee3 proc_bsr_nr: disable SR activation temporarily
SR isn't currently working correctly resulting in random PRACHs
being sent.
2021-04-10 14:01:43 +02:00
Andre Puschmann d1ad315969 mac_nr: add various safety/length checks 2021-04-10 14:01:43 +02:00
Andre Puschmann b1aaadb51c nr,cc_worker: convert grant size in bytes before passing to MAC 2021-04-10 14:01:43 +02:00
Andre Puschmann 7f415189f3 ue,mac: enable basic MAC metrics
this adds basic MAC metrics calculation for the DL NR MAC
2021-04-10 14:01:43 +02:00
Andre Puschmann 8024bf7820 mux_nr: improve logging when building UL MAC PDU 2021-04-09 20:40:22 +02:00
Andre Puschmann 880bd66db4 mac_nr_test: add testcase for MAC PDU packing with long L field
this reproduces the issue found in #2609
2021-04-09 20:12:03 +02:00
Andre Puschmann 9950278a12 nr,mac_sch_pdu,mux: fix packing of MAC subPDUs with 16bit L field
the created RLC PDU was too large to fit inside the MAC grant
because only the header room for the short L field was used.

The patch determines the correct size before passing the opportunity to RLC.

It also improves logging in error case by using the MAC logger instead of
stderr/stdout when error occurs.
2021-04-09 20:12:03 +02:00
Francisco 99b4595b69 fix enb phy test by limiting the number of carriers to 5 2021-04-09 15:38:07 +01:00
Francisco ff8a43f6b0 avoid allocation of dl_sched_list and ul_sched_t by converting a std::vector to bounded_vector 2021-04-09 15:38:07 +01:00
Francisco d142d7b6a5 update test helpers for enb, so that the rrc tests pass 2021-04-09 12:54:22 +01:00
Francisco ac7cc3c42d change enb ue softbuffer initial allocation size 2021-04-09 12:54:22 +01:00
Francisco f1c67f5b2b pool - avoid concurrent batch allocations in background threads 2021-04-09 12:54:22 +01:00
Francisco 75e9700de0 rlc - usage of memory pool to allocate RLC bearers 2021-04-09 12:54:22 +01:00
Francisco 8fe27a72d0 enb - decreased default enb.conf mac.max_nof_ues to 8 to avoid large memory pool preallocations 2021-04-09 12:54:22 +01:00
Francisco 71f1f1b556 enb - log warning when rnti-specific memory block is full 2021-04-09 12:54:22 +01:00
Francisco a890a22ccd enb - rnti memory pool now fallbacks to new/delete if rnti-specific memory block is full 2021-04-09 12:54:22 +01:00
Francisco a780a6a7b6 fix obj pool interface 2021-04-09 12:54:22 +01:00
Francisco 344bdf3165 allocation of UE rlc and pdcp classes in the ue dedicated memory pool 2021-04-09 12:54:22 +01:00
Francisco 60d5c6df7b implementation of memory pool with individual memory blocks per UE that get accessed via their rnti 2021-04-09 12:54:22 +01:00
Andre Puschmann db496df1e6 mac_nr: add support for periodic BSR reporting
building on the previous refactor this patch now adds support
for peridoic BSR reporting (using short BSR). It furthermore does
the following changes:

* add BSR packing
* add proc_bsr_nr unit test
* move mac_nr test code into test folder under src (needs to be done with other test code too)
2021-04-09 12:28:05 +02:00
Andre Puschmann 7188603f2e mac_nr: don't push MAC CE LCIDs to RLC when unpacking DL MAC PDU
this should fix log warnings then demux was trying to feed MAC CEs
to RLC:

10:50:54.845116 [MAC ] [I] [ 1153] Handling subPDU 1/2: rnti=0x0 lcid=61, sdu_len=1
10:50:54.845117 [RLC ] [E] Radio bearer id must be in [0:11] - 61
10:50:54.845118 [RLC ] [W] LCID 61 doesn't exist. Dropping PDU.
10:50:54.845119 [MAC ] [I] [ 1153] Handling subPDU 2/2: rnti=0x0 lcid=63, sdu_len=33
10:50:54.845119 [RLC ] [E] Radio bearer id must be in [0:11] - 63
2021-04-09 09:49:14 +02:00
Andre Puschmann 6dd8c21073 mac_sch_pdu_nr: add unpacking of TA CE in DL-SCH
also add basic test to verify correct unpacking
2021-04-09 09:49:14 +02:00
Francisco 9b7060a098 check ptr value before dereferencing 2021-04-08 21:44:42 +01:00
Francisco dc763b5045 rlc am - fix bugs in buffered_pdcp_pdu_list
The count and container elements were not being correctly updated in the events
of SN overwrite, clear(), clear_pdcp_sdu(sn) of sn that doesnt exist
2021-04-08 20:11:15 +01:00
Francisco ebbb74e639 rlc am - use of circular_map container in RLC AM window
The window elements are not being correctly cleaned up when clear() is called
or when overwritten by newer SN. Furthermore, the window count member is not being
correctly updated when the insertion of a newer SN overwrites the previous one.

I used the circular_map container to avoid this sort of bugs
2021-04-08 20:11:15 +01:00
Ismael Gomez c4069b58af Call HARQ new tti only for the current PID 2021-04-08 20:24:21 +02:00
David Rupprecht 82c9636156 Refactor pdcp ctor seperate the configure function 2021-04-08 19:08:17 +02:00
Andre Puschmann 1a42e0b1d1 epc,nas: add error handling for all make_byte_buffer() calls
not handling the case where allocation was failing was causing a
segfault. It seems that when doing high rate UDP iperf and
disconnecting the UE causes the buffer pool to become empty due
to the PDU buffering. Thus, causing a crash when attaching the UE again.
2021-04-08 18:20:44 +02:00
Andre Puschmann cbe7980d7d enb,mac_controller: apply new MAC config with disabled DRB
fix regression in RRC that updated the local MAC config to
disable DRB scheduling after maxRetx, but didn't actually apply the config
2021-04-08 18:19:55 +02:00
David Rupprecht 56e947bf27 Added functionality for releasing a NR bearer 2021-04-08 17:37:36 +02:00
David Rupprecht cc6d8128ad Added gw interface if it is running 2021-04-08 17:37:36 +02:00
David Rupprecht 7a481c40ab Added mac prach nr proc error handling 2021-04-08 17:37:36 +02:00
David Rupprecht f9ea02b6bf Added functions for rrc reestablishing procedure if nr reconfig failes 2021-04-08 17:37:36 +02:00
David Rupprecht 43ec714ce1 Added functionality for printing nr metrics 2021-04-08 15:55:28 +02:00
Xavier Arteaga 58a9ef6e7f Minor NR PHY tweaks and aesthetic 2021-04-08 11:39:55 +02:00
Xavier Arteaga db1a1c059c NR PHY workers TTI synchronization between DL and UL work 2021-04-08 11:39:55 +02:00
Xavier Arteaga 991c6e7016 Refactored NR HARQ-ACK feedback enqueue 2021-04-08 11:39:55 +02:00
Xavier Arteaga bd11b66b6c Fix unitialised NR PHY arguments 2021-04-08 11:39:55 +02:00
Xavier Arteaga 22239b29c5 Disable smoothing filter for NR PDCCH DMRS 2021-04-08 11:39:55 +02:00
Xavier Arteaga 9f54c6ae6d Fix NR PUCCH info string and memory leak 2021-04-08 11:39:55 +02:00
Francisco bb9601c13b gtpu - fix gptu manager members destruction order 2021-04-07 22:26:42 +01:00
Francisco b7d4a72ea1 adt - fix circular map clear() and erase(it) functions 2021-04-07 22:26:42 +01:00