Xavier Arteaga
290541993e
Fix debug compilation
2021-04-27 20:31:29 +02:00
Xavier Arteaga
efd6c569b8
Fix some static analisys warnings under lib/src/phy/fec
2021-04-27 20:31:29 +02:00
David Rupprecht
fafa03f7c8
Extended the band helper table
2021-04-27 20:28:36 +02:00
Francisco
3c4512cdd2
demote assert to expect check in circular stack pool destruction, when a leak is detected
2021-04-27 19:14:25 +01:00
Xavier Arteaga
217f3cb416
SRSENB: select highest with/without SR correlation PUCCH result
2021-04-27 16:55:51 +02:00
Andre Puschmann
ada6c71b5a
rf_soapy: fix logic to print warning when Lime is used with short sample rates
...
previously the warning was printed when a Lime was connected to the PC.
Now all connected devices are printed but the warning is only
shown if the selected device is the Lime.
2021-04-27 15:32:26 +02:00
faluco
aa3309157b
Fixed polar encoder and decoder initialization failure for ARM. Initialization unconditionally used x86 SIMD routines instead of getting disabled for ARM compilations.
2021-04-27 14:42:30 +02:00
faluco
d9e5f4ccc7
Replace a couple of inline functions in demod_soft with macros to allow constant propagation. The vgetq_lane_sX builtin expects a constant instead of a variable.
2021-04-27 14:42:30 +02:00
Francisco Paisana
d39183419c
Separate TPC PUSCH and PUCCH target SINR ( #2740 )
...
* separate target pusch and pucch sinr configurations in tpc class and rr.conf
2021-04-27 10:12:40 +01:00
Francisco
38bf895efa
fix asn1 compilation issue
2021-04-27 10:11:03 +01:00
Francisco
86dac9c823
several coverity high and medium impact fixes
2021-04-27 10:11:03 +01:00
Xavier Arteaga
9a4fcb605b
Reviewed UHD Tx FSM
2021-04-27 09:52:41 +02:00
Xavier Arteaga
3413f29cc8
Fix channel interpolator for 4 ports
2021-04-27 09:50:33 +02:00
Andre Puschmann
03e1277b0b
rf_soapy_imp: fix lowercase to detect Lime
2021-04-26 21:39:04 +02:00
Andre Puschmann
b569e81299
rf_soapy_imp: fix LTE sample rate info check
...
only print if Lime is substring in dev args, so don't print with blade
2021-04-26 09:43:58 +02:00
Andre Puschmann
f76cd5ef83
backward: fix compile error on aarch64
2021-04-26 09:43:58 +02:00
Andre Puschmann
0826b86cec
srsue: remove NR DL freq and ARFCN option
...
not required anymore as all NR carrier tuning is done
through RRC signaling
2021-04-25 21:05:23 +02:00
Andre Puschmann
4dd17aee45
rrc/phy/nr: calculate tuning freq of NR carrier from RRC signaling params
...
skip initial tuning to hard-coded NR frequency and use RRC-provided
values to calculate center frequency
2021-04-25 21:05:23 +02:00
Andre Puschmann
6e79ae67aa
ldpc/polar: add casts to avoid possible variable overflow before assignment
2021-04-25 21:03:53 +02:00
Andre Puschmann
92d4e6e746
adt/common: remove const from return type
...
reported by LGTM https://lgtm.com/projects/g/srsLTE/srsLTE/rev/pr-9ae46cae260b6b8137b34b9423bf1477bd6b5c42
2021-04-25 21:03:53 +02:00
Andre Puschmann
ff53d2b8b8
all: set of trivial changes reported by LGTM
...
mainly fixmes, unused/empty code, etc.
2021-04-25 21:03:53 +02:00
AlaiaL
0535473895
Fixes coverity 369570
2021-04-23 21:22:06 +02:00
AlaiaL
6332490cae
Fixes coverity 369581
2021-04-23 21:22:06 +02:00
AlaiaL
385b12a33a
Fixes coverity 369620
2021-04-23 21:22:06 +02:00
AlaiaL
23f0bd4d4f
Fixed coverity 369716
2021-04-23 21:22:06 +02:00
AlaiaL
862784ee46
Fixed coverity 369719
2021-04-23 21:22:06 +02:00
AlaiaL
82788ca094
Fixed issues from coverity:
...
- 370233
- 370234
- 370239
- 370240
- 370241
- 370242
- 370243
- 370295
2021-04-23 21:22:06 +02:00
herlesupreeth
0f06ec0d9c
Add feature to provide custom GTP-U (S1) address to be advertised inside S1AP messages
...
This feature is useful in scenarios where eNB is behind a NAT and EPC on public cloud
Since eNB's GTP-U can only bind to IP address visible in it's host (usually a private IP beind a NAT), it advertises the same to UE in S1AP message
resulting in traffic from EPC to eNB (DL traffic) not able to reach eNB. This commit solves this issue by providing a means to advertise a different IP address than the one GTP-U UDP socket is bound to.
This IP is usually advertised in InitialContextSetupResponse and E-RABSetupResponse.
In order to make use of this feature, use the following parameter in enb.conf
Example:
gtp_advertise_addr = 213.61.141.82
2021-04-23 20:31:36 +02:00
herlesupreeth
aff9091ad3
Make use of RF device passed as argument
2021-04-23 20:31:36 +02:00
herlesupreeth
00a7d3a4cd
Add option to provide RF device to use for cell search
2021-04-23 20:31:36 +02:00
Matan Perelman
7ee52dc676
srsUE: Add option to filter N_id_2 / PSS to configuration
2021-04-23 20:31:36 +02:00
David Rupprecht
102a943171
Fixed naming srsLTE to srsRAN
2021-04-23 14:25:02 +02:00
faluco
1ccb62af3d
Apply srsLTE formatting rules to srsLog. They were previously formatted with different rules when the project lived in the external rapo.
2021-04-22 16:35:23 +02:00
Xavier Arteaga
873f375ecc
Make NR DCI test more exhaustive and fix issues
2021-04-22 14:16:46 +02:00
Xavier Arteaga
ab6a5ef17a
Added NR DCI conversion to string for formats 1_0 and 1_1
2021-04-22 14:16:46 +02:00
Xavier Arteaga
bccfa8d875
Added NR DCI packing/unpacking format 1_1
2021-04-22 14:16:46 +02:00
Xavier Arteaga
11b9990224
Added NR DCI packing/unpacking format 0_1
2021-04-22 14:16:46 +02:00
faluco
0afd59a5a0
Replace a string with a const char * in the rlc to_string.
2021-04-22 12:38:14 +02:00
Francisco
289559af82
asn1 fix - fix choice access correct type assert
2021-04-22 10:21:08 +01:00
Francisco
ff3fc0826b
asn1 fixes and improvements
...
- use const char* instead of std::string in enumerated<>::to_string() to avoid mallocs.
- Remove the use of "typedef", and use "using" keyword instead.
- Fix rrc_nr::setup_release_c<>::to_string() broken linkage.
2021-04-22 10:21:08 +01:00
David Rupprecht
98914dab6a
Allow pdcp lte entity to use 18 bit SN
2021-04-22 09:55:34 +02:00
faluco
7df308c756
Remove two mallocs in the stack:
...
1) Extend the small buffer to 64bytes for the move_callback class.
2) Replace a std::map for a fixed size circular map in sched_time_pf.
2021-04-21 15:05:48 +02:00
Francisco
28f787f1de
extend timer handler unit test to check correct time wheel implementation
2021-04-21 10:02:03 +01:00
Francisco
2b572f5376
fix overwrite of timer timeout when it matches previous time wheel position
2021-04-21 10:02:03 +01:00
Xavier Arteaga
407903e0d6
SRSUE: refactor carrier setting for accepting a dynamic carrier configuration
2021-04-20 21:50:10 +02:00
Xavier Arteaga
47523935f6
Minor NR RRC fixes
2021-04-20 21:50:10 +02:00
Francisco
ce47cf5910
fix - re-add log flush to srsran_assert
2021-04-20 16:27:40 +01:00
Francisco
63913ff2b2
remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info.
2021-04-20 16:27:40 +01:00
Francisco
9efb959471
bugfix, scheduler - fix bit counter specializations for 32 and 64 bits.
2021-04-20 14:01:19 +01:00
Francisco
6137e4569b
fix srsran_assert definition when asserts are disabled
2021-04-20 14:01:05 +01:00
Francisco
3b78bf3730
bugfix - fix memcheck warnings. move instructions with side effects outside of asserts
2021-04-20 14:01:05 +01:00
David Rupprecht
a064e85c54
rename common lte header
2021-04-19 22:23:59 +02:00
David Rupprecht
81ad72b0ff
Refactor srb and drb handling
2021-04-19 22:23:59 +02:00
David Rupprecht
91ff8a2e6d
Add rrc_nr to rlc init function
2021-04-19 22:23:59 +02:00
David Rupprecht
6b41ae7e8b
Updated PDCP config struct for rat type
2021-04-19 22:23:59 +02:00
Xavier Arteaga
77b6b60b82
Fix rach_cfg.nof_groupA_preambles
2021-04-19 15:17:04 +02:00
Xavier Arteaga
aadbe6d880
Normalise NR PUSCH to maximum Tx power
2021-04-19 15:15:55 +02:00
Xavier Arteaga
53e41a165c
Revert zeros around DC REs in NR PDSCH
2021-04-19 15:15:55 +02:00
Xavier Arteaga
93c3dc1cb1
Revert "Demodulator sets LLR to zero for 0.0 symbols"
...
This reverts commit 1a6e5cdee5
.
2021-04-19 15:15:55 +02:00
Xavier Arteaga
1c1d7e2447
Revert "Review soft demodulator zero check"
...
This reverts commit b8a9a7fc70
.
2021-04-19 15:15:55 +02:00
Xavier Arteaga
0999b271ba
Added RFNOC based LO frequency offset
2021-04-19 15:15:55 +02:00
Francisco
ac375f07d9
add precompiler guards to restrict builtin use to gcc and clang
2021-04-19 13:31:20 +01:00
Francisco
22024ac35d
implemented bounded_bitset::find_lowest(...) for both reverse and non-reverse bit ordering. Applied this method to UL scheduling search for PRB intervals
2021-04-19 13:31:20 +01:00
Francisco
3f15fc2811
implemented bounded_bitset::find_first(...)
2021-04-19 13:31:20 +01:00
David Rupprecht
db9dd85783
Parse carrier config in NR RRC reconfig
2021-04-19 12:13:37 +02:00
David Rupprecht
f42d4dbc28
Refactored carrier config
2021-04-19 12:13:37 +02:00
Andre Puschmann
9009c3439c
rlc_um_nr: convert log entries to info if they are expected
...
dropping a PDU and not being able to build a PDU if the
grant is too small is expected and should therefore not cause a log warning.
2021-04-19 10:44:59 +02:00
Andre Puschmann
936bebcfd7
rrc_nr_utils: fix extraction of HARQ processes from ASN1 reconfig
2021-04-18 15:27:56 +02:00
Xavier Arteaga
53b38fccf9
Fix compile and other
2021-04-17 15:51:11 +02:00
Xavier Arteaga
ed0929b46d
NR PHY logging minor corrections
2021-04-17 15:51:11 +02:00
Xavier Arteaga
8ffced7e88
NR PHY logging minor corrections
2021-04-17 15:51:11 +02:00
Xavier Arteaga
abfc1da921
Multiple NR-PUSCH fixes
2021-04-17 15:51:11 +02:00
Xavier Arteaga
7e06e789d5
Fic NR UCI in the info string
2021-04-17 15:51:11 +02:00
Xavier Arteaga
01ce0718be
NR-PUSCH RE mapping correction and NR-SCH detailed grant information
2021-04-17 15:51:11 +02:00
David Rupprecht
bfe2ad98ef
Added parsing for NR DL HARQ cfg
2021-04-17 12:33:21 +02:00
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
6c5e28bc19
Optimised AVX512 LDPC decoder hard decision
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
Xavier Arteaga
faa6d01e9d
Fix RFNOC compilation
2021-04-15 09:24:10 +02:00
Xavier Arteaga
c82f609085
Fix b200mini external clock
2021-04-15 09:24:10 +02: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
80f5c82b53
Fix formatter test
2021-04-14 08:16:44 +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
daad20c9d4
Disable copy and move operations for dyn_node_pool.
2021-04-13 17:36:39 +02: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
Xavier Arteaga
2f8ea05132
SRSUE: Add periodic CQI R10 parsing
2021-04-12 20:08:22 +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
e989e62c52
Fix NR PDCCH DMRS test
2021-04-12 17:05:53 +02:00
Xavier Arteaga
b8a9a7fc70
Review soft demodulator zero check
2021-04-12 17:05:53 +02:00
Xavier Arteaga
dd26c6a90e
Added more comments for better understanding in NR PDCCH DMRS
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
c84e73541d
Offset FFT window for UE DL NR
2021-04-12 17:05:53 +02:00
Xavier Arteaga
f799ab6f94
Fix NR UL RV selection
2021-04-12 17:05:53 +02:00
Xavier Arteaga
42dcff45b2
Improve PDCCH NR detection
2021-04-12 17:05:53 +02:00
Xavier Arteaga
1a6e5cdee5
Demodulator sets LLR to zero for 0.0 symbols
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
de187d4c88
Fix copy-past issue in srsran_vec_apply_cfo_simd
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
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
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
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
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
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
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
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
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