Andre Puschmann
b9ae064338
mac_nr: add DL HARQ
...
this commit adds a complete DL HARQ entity to the MAC of the UE.
It also refactors demux into an own class and adapts the PHY-MAC
interface to use the new MAC capabilities.
2021-04-16 15:32:09 +02:00
Francisco
e3e4564a7e
fix inconsistency in use of invalid_sn and status_report_sn throughout rlc am code
2021-04-16 13:54:10 +01:00
Francisco
c3ec28002b
refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes
2021-04-16 13:54:10 +01:00
Francisco
7f0083a985
implementation of intrusive list abstract classes to be used in RLC for lists of segments
2021-04-16 13:54:10 +01:00
Francisco
b06f16891d
use of a single array-based pool of RLC AM PDU segments to build data PDUs, while
...
avoiding any allocations.
Each segment stores its own PDCP SN and RLC SN and has two pointers,
one for the next segment of the same RLC PDU, and another for the next segment
of the same PDCP PDU.
2021-04-16 13:54:10 +01:00
faluco
e1752c0878
Replace the queue in thread pool in favour of a static circular buffer to avoid allocations.
2021-04-16 09:29:44 +02:00
David Rupprecht
1cbd1c9d26
Deleted hardcoded phy config
2021-04-16 09:02:29 +02:00
David Rupprecht
fe8727050b
Added new rrc_nr to phy flattening functions and fixes
2021-04-16 09:02:29 +02:00
Ismael Gomez
635db8dde1
Initialize metrics in hub
2021-04-15 21:32:35 +02:00
Xavier Arteaga
e4e3456d76
Refactored PDSCH/PUSCH decoder for LDPC early stopping
2021-04-15 20:42:41 +02:00
Xavier Arteaga
422d479852
Added CRC match function and optimised byte packing
2021-04-15 20:42:41 +02:00
Xavier Arteaga
5aa7f9dd8b
Condensed LDPC Decoder config arguments into an structure and unified common decoder code
2021-04-15 20:42:41 +02:00
Francisco
1f1233782f
timers - fix old gcc compilation issue. Changed free list to intrusive list.
2021-04-15 18:46:42 +01:00
Francisco
e37968410e
simplification of timers handler design, relying solely on one time wheel.
2021-04-15 18:46:42 +01:00
Francisco
60896e30b5
implementation of time wheel-based timer handler, using a circular array and intrusive list
2021-04-15 18:46:42 +01:00
Ismael Gomez
77b11b82ac
Release UE if no activity in DRB ( #2658 )
...
* Count user activity with DRB only and SRBs for initial procedures. Add counter to release user after max KO in UL.
2021-04-15 19:13:01 +02:00
Francisco
4838cd2f5e
implement cell measurement bandwidth feature
2021-04-15 17:48:18 +01:00
Francisco
14d32db92f
implement Handover direct forwarding path availability configuration feature
2021-04-15 17:48:18 +01:00
faluco
582ad5f6de
Replace the std::stack member in the buffer_pool class for a vector to avoid reallocs.
2021-04-15 14:56:56 +02:00
Francisco
b8fa1d1b61
fix rrc mobility test
2021-04-15 09:45:31 +01:00
Francisco
66988ffd32
s1ap - simplified erab setup procedure. Handle correctly the failure to setup causes
2021-04-15 09:45:31 +01:00
Francisco
f401683960
s1ap - simplified erab modify procedure
2021-04-15 09:45:31 +01:00
Francisco
76978f0d14
s1ap - simplified erab release procedure
2021-04-15 09:45:31 +01:00
Francisco
c5fc543516
s1ap - handling of ts1 reloc overall timer.
2021-04-15 09:45:31 +01:00
Andre Puschmann
44baea6666
mac_nr: add UL HARQ
...
this patch adds a basic UL HARQ entity for NR.
The patch also updates some interfaces between MAC/RA/HARQ,
i.e. get_temp_crnti().
It also adds a Msg3 unit test.
2021-04-14 13:40:31 +02:00
Andre Puschmann
b7146c41b2
nr: add NDI for PUSCH grant to sch cfg struct
2021-04-14 13:40:31 +02:00
faluco
a474a0f293
SRSLOG: Avoid calling unordered_map::emplace if element already exists since it will allocate even if the insertion is not going to take place.
2021-04-14 12:41:35 +02:00
Xavier Arteaga
7823bfc28c
Fix append NR to loggers for NR components
2021-04-14 08:16:44 +02:00
Francisco
c2a99a8112
handover - support for handover cancellation causes, check for E-RAB QoS requirements, cancellation of handover if E-RABs are not supported in the target eNB
2021-04-13 21:23:13 +01:00
faluco
a2f6e13138
Add a tag to the string memory pool in fmt to discriminate between pool vs heap allocated buffers. Heap allocated buffers are used as a fallback mechanism when the buffer runs out of space.
2021-04-13 17:36:39 +02:00
faluco
0465f6badd
Implement a pool in FMT to avoid allocating heap memory when passing a char* to the backend, usually when formatting a %s argument.
...
Previously since a char* can have any length, this was managed by FMT by converting it into a std::string.
Now we store it into a configurable size node that can store a fixed size string, otherwise it falls back to std::string.
2021-04-13 17:36:39 +02:00
Xavier Arteaga
2f453b43ba
Initial NR PHY interface
2021-04-13 16:02:53 +02:00
Francisco
d2c404b166
handover - setup s1ap cause in case of handover failure at the target enb
2021-04-13 09:30:40 +01:00
Francisco
49bd895e29
s1ap - handle invalid or repeated erab ids in s1ap erab release command
2021-04-12 22:07:26 +01:00
Francisco
7842e3bff3
s1ap - add unit test to check correct handling of invalid E-RAB ids in modification request. Fix s1ap in order for the test to pass
2021-04-12 22:07:26 +01:00
Francisco
985846e3bd
s1ap - set multiple erab ids cause in replay when s1ap erab modify request has repeated ids.
2021-04-12 22:07:26 +01:00
David Rupprecht
5a3a2a6d6f
Added functions for adding phr and tag config
2021-04-12 20:50:30 +02:00
Andre Puschmann
48537f3fe7
pdcp,rlc: increase number of PDCP SDUs for notification from RLC
...
the current value of 256 limits the number of PDCP SDUs that can be
notified from RLC. The limit is quickly hit when too many SDUs
are in flight. This can cause unwanted log entries and weird PDCP
behaviour.
the patch increases the value to 1024, which still can be too few if
many smaller SDUs are traveling.
The patch also set the log level to warning to quicker spot
misconfigs in logs.
Fixes #2616
2021-04-12 20:09:20 +02:00
Andre Puschmann
c9da21c9bb
mac_nr: add error handling when unpacking SCH MAC PDU
...
* only handle PDU if unpacking was successfull
* add TC unpacking with malformed PDU
2021-04-12 18:26:31 +02:00
Xavier Arteaga
b8a9a7fc70
Review soft demodulator zero check
2021-04-12 17:05:53 +02:00
Xavier Arteaga
17a3c76540
Fix NR TDD pattern configuration
2021-04-12 17:05:53 +02:00
Xavier Arteaga
3889f1369f
Added partial NR time resource mapping tables
2021-04-12 17:05:53 +02:00
Xavier Arteaga
2e3c00aa97
NR PDSCH zeroes RE around the DC. Added delay and CFO emulation to phy_dl_nr_test
2021-04-12 17:05:53 +02:00
Xavier Arteaga
667cc0b552
NR PDSCH/PUSCH DMRS estimation precompensates Synch error and CFO before interpolation
2021-04-12 17:05:53 +02:00
Francisco
685c971dc2
fix recursive call to get rb name
2021-04-12 13:21:43 +01:00
Francisco
f7a8b8bf94
separate drb srb ids into separate enum types
2021-04-12 13:21:43 +01:00
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
Francisco
437db3af03
forbid allocations when dispatching task to thread pool
2021-04-10 15:03:38 +01:00
Andre Puschmann
8024bf7820
mux_nr: improve logging when building UL MAC PDU
2021-04-09 20:40:22 +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