Francisco
d42dc50c44
Write TPC sched unit test and fix sched logical channel test
2020-12-12 15:59:27 +01:00
Francisco
479602ed1d
add option to specify target ul sinr for UL power control to the enb rr.conf parser
2020-12-12 15:59:27 +01:00
Francisco
5865df39d1
created class that implements the scheduler transmit power control and PHR handling
2020-12-12 15:59:27 +01:00
Xavier Arteaga
788ed5ce70
Corrected PDCCH SEGFAULT
2020-12-12 15:59:27 +01:00
Xavier Arteaga
8cc023e168
Fix PDCCH NR Test
2020-12-12 15:59:27 +01:00
Xavier Arteaga
c0cdce6450
Updated license
2020-12-12 15:59:27 +01:00
Xavier Arteaga
e07cf513d0
Improved NR blind search and DL test
2020-12-12 15:59:27 +01:00
Xavier Arteaga
90aa4fbea7
Improved srslte_chest_set_smooth_filter_gauss
2020-12-12 15:59:27 +01:00
Xavier Arteaga
c635b1e467
Initial NR DCI blind-search
2020-12-12 15:59:27 +01:00
Xavier Arteaga
85d5026e38
Improved NR PDCCH unit test
2020-12-12 15:59:27 +01:00
Xavier Arteaga
315394560d
Fix Polar unitialised read
2020-12-12 15:59:27 +01:00
Xavier Arteaga
cd1aef7d76
Added NR PDCCH unit test plus fixes
2020-12-12 15:59:26 +01:00
Xavier Arteaga
53f6ac118e
Initial PDCCH encode/decode
2020-12-12 15:59:26 +01:00
Xavier Arteaga
159a3d84bd
Fix minor precoding issue
2020-12-12 15:59:26 +01:00
Xavier Arteaga
65d5fcf45d
Add minor DCI location comment
2020-12-12 15:59:26 +01:00
Xavier Arteaga
67ce4c1491
Avoid std memory functions in EVM measurement
2020-12-12 15:59:26 +01:00
Andre Puschmann
00a6e16c14
update license header for liblte_*.{h,cc} files
...
user license-agnostic text to refer to license file.
make sure copyrights/years are correct.
2020-12-12 15:59:26 +01:00
Andre Puschmann
47c5f9e85b
remove AGPL header from remaining cpp files
...
* also add commercial header to come CMake helpers
2020-12-12 15:59:26 +01:00
Andre Puschmann
b9f363db9a
ssl: rename liblte_ssl.h to ssl.h
2020-12-12 15:59:26 +01:00
Andre Puschmann
ef19b1a9bd
fix various uninit vars detected by cppcheck
...
non-critical fixes in tests mostly, still good to have those clean
2020-12-12 15:59:26 +01:00
Xavier Arteaga
81d72380b5
Reduce FEC Polar chain test time
2020-12-12 15:59:26 +01:00
Xavier Arteaga
f9643843a0
SRSENB/UE Fixed NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
b501f2eeaf
SRSENB/UE: Added NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
ac930003be
SRSUE: Integrated NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
6fb56a3c62
LDPC: fix AVX tests compilation
2020-12-12 15:59:26 +01:00
Xavier Arteaga
a908fb6c5b
Fix NR srsue/srsenb. Initial PHY NR in SRSENB.
2020-12-12 15:59:26 +01:00
Xavier Arteaga
eed9405e40
Moved NR MAX MIMO layers to carrier
2020-12-12 15:59:26 +01:00
Xavier Arteaga
c6798653be
SRSUE: created initial PHY LTE worker pool
2020-12-12 15:59:26 +01:00
David Rupprecht
c9c8a1db5c
Added toRemoveList function for rrc asn lists
2020-12-12 15:59:26 +01:00
Xavier Arteaga
31a637adae
Fix UCI SCH threshold, cover PUSCH 64QAM, check UCI-ACK valid in PUSCH test
2020-12-12 15:59:26 +01:00
Xavier Arteaga
12c076bf96
updated copyright headers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
24297f973c
Removed CTTC from file headers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
035fcc9afb
Removed FEC working directory
2020-12-12 15:59:26 +01:00
Xavier Arteaga
bde1fa703d
Added Polar RM and removed vectors with malloc from FEC NR
2020-12-12 15:59:26 +01:00
Francisco
82d057345b
fix compilation issue with user-defined fmt formatter
2020-12-12 15:59:26 +01:00
Francisco
86ab1864f7
The struct tti_point is now used ubiquitously in the scheduler
2020-12-12 15:59:26 +01:00
Pedro Alvarez
49bcffcdf8
Fix issue packing TEID in Error indication.
2020-12-12 15:59:26 +01:00
Francisco
8fb3ea6922
Added the ability to choose scheduling policy from enb.conf
...
- The two options provided at the moment are time-domain RR and PF
2020-12-12 15:59:26 +01:00
Andre Puschmann
07d2bc4fe8
change license header to agnostic version with hint to root LICENSE file
2020-12-12 15:59:25 +01:00
Francisco
2dc3fce9bd
fix derivation of UL-64QAM support from the UE Capabilities in the eNB
...
Before this PR, the eNB was not activating UL-64QAM if the UE release was below 12,
due to an erroneous convertion of the ASN1 EUTRA Capabilities struct into the flattened
srslte::ue_capabilities_t.
With this PR, the eNB activates UL-64QAM for the following cases:
- UE category 5
- UE category 8 and release >= 10
- UE category UL 8 and release >= 12
2020-12-12 15:59:25 +01:00
Francisco
f07e52129c
increase mcs ul upper bound to 24 when ue is cat4 and enb supports 64qam. Simplified max_mcs computation
2020-12-12 15:59:25 +01:00
Andre Puschmann
477fe77f24
rlc_am: reformat log message for PDU retx
2020-12-12 15:59:25 +01:00
Andre Puschmann
6d3af2d2bd
rlc_um: fix bearer name in logging after re-configuration
...
the RLC bearer name was empty after reestablishing a UM bearer.
we need to pass the RLF config and RB name to the internal configure()
call of the Rx entity, like we already do for the Tx side
2020-12-12 15:59:25 +01:00
Xavier Arteaga
225bc9d260
Enable FEC SIMD acceleration
2020-12-12 15:59:25 +01:00
Jesus Gomez
c9cdb0d53c
Solve Issue 1: Invalid read in LDPC AVX2 Encoder/Decoder
2020-12-12 15:59:25 +01:00
Andre Puschmann
d014a89cfb
pdsch_ue: enable EVM measurements for PDSCH
...
enable EVM measurements by default and print them in to stdout.
This is very useful for manual receiver calibration with the
PDSCH eNB example.
2020-12-12 15:59:25 +01:00
Andre Puschmann
504d8fd9f0
pdsch: calculate average PDSCH EVM over all decoded codewords
...
when EVM measurements are enabled, instead of only logging them for
each decoded codeword, we also calculate the average.
this is useful for calibration.
2020-12-12 15:59:25 +01:00
Andre Puschmann
cfee074756
pdsch_enodeb: add tx gain control over page-up/down keys
...
this allows to modify the tx gain of a running pdsch_enodeb
with the page-up/down keys in 1dB steps
2020-12-12 15:59:25 +01:00
Andre Puschmann
382f56fbea
pdsch_{ue,enodeb}: add -Q switch to enable use of standard LTE rates
...
this is useful for RF equipment that doesn't support the shorter symbol
size we use by default, e.g. the N310
2020-12-12 15:59:25 +01:00
Xavier Arteaga
755325fc3e
Avoid sizeof and standard memory functions
2020-12-12 15:59:25 +01:00
Xavier Arteaga
35bf5b8c6d
Added generic memory malloc
2020-12-12 15:59:25 +01:00
Xavier Arteaga
83dddae525
Added vector zero
2020-12-12 15:59:25 +01:00
Xavier Arteaga
a5537cc1ef
Correct argument
2020-12-12 15:59:25 +01:00
Xavier Arteaga
b7fc2299e5
Softbuffers initialise buffer pointers with zero memory
2020-12-12 15:59:25 +01:00
Andre Puschmann
7f81f44427
rf_uhd: treat N3xx like the X3xx and do not set timespec on every burst iteration
...
the N310 too doesn't seem to like setting the timespec for each call to
send in a single burst
2020-12-12 15:59:25 +01:00
Francisco
7a74bf28d1
forward declare s1ap types in enb interfaces
2020-12-12 15:59:25 +01:00
Francisco
66712023bb
remove unneeded includes of full rrc asn1 lib
2020-12-12 15:59:25 +01:00
Francisco
0ffea62411
Wrote logging functions for SCHED MAC CE/LCID allocations
2020-12-12 15:59:25 +01:00
Francisco
68eda336bd
remove ENB_METRICS_MAX_USERS compile time macro and use run-time variable to set maximum number of UEs the srseNB can have connected at a given instant.
2020-12-12 15:59:25 +01:00
Pedro Alvarez
d05bc064b5
Reduced SCTP connect() timeout.
...
Added configuration for RTO_MAX. Cleanup debug prints.
2020-12-12 15:58:34 +01:00
yagoda
bdc1964335
consolidating RRC eMBMS configuration into single function, setting some parameters to const
2020-12-12 15:58:34 +01:00
yagoda
b90574975b
refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB
2020-12-12 15:58:34 +01:00
Francisco
1cb65f07f1
enable meas gaps in RRC and enb parser
2020-12-12 15:58:34 +01:00
Xavier Arteaga
c2bc042713
Disable SIMD AVX decoder
2020-12-12 15:58:34 +01:00
Francisco Paisana
9579931f16
added meas gap checks to scheduler ue
2020-12-12 15:58:34 +01:00
Andre Puschmann
43a6cd50e5
rf_imp: fix stopping of AGC thread
...
hard killing of AGC thread causes issue on some RF devices,
such as the N310. The thread still seemed to access the device while
the radio was already killed (or the streamer object deleted).
It's unclear why this isn't causing similar issues on B210 or X310,
at least not visible, but it is obviously not the correct way to stop a thread.
The patch now correctly sets the stop flag for the AGC thread, wakes it
it up and waits until it has terminated.
2020-12-12 15:58:34 +01:00
Xavier Arteaga
7495986b5c
Minor aesthetic changes and fix memory issue
2020-12-12 15:58:34 +01:00
Xavier Arteaga
0396ebae17
Fix UE/ENB DL NR
2020-12-12 15:58:34 +01:00
Xavier Arteaga
8de2870788
Added NR ue_dl, enb_dl and test
2020-12-12 15:58:34 +01:00
Xavier Arteaga
6b5c4148c8
DL Channel estimation results accepts nof RE
2020-12-12 15:58:34 +01:00
Xavier Arteaga
ce330a6dfb
OFDM's DC is optional
2020-12-12 15:58:34 +01:00
Xavier Arteaga
c6a2e4578e
Refactored PHY object arguments
2020-12-12 15:58:34 +01:00
Xavier Arteaga
e621a1cde3
EVM buffer takes number of bits
2020-12-12 15:58:34 +01:00
Xavier Arteaga
a278a49e42
Limit PDSCH-NR unit test
2020-12-12 15:58:34 +01:00
Xavier Arteaga
bff71761a9
PDSCH-NR: Added single layer channel equalization
2020-12-12 15:58:34 +01:00
Xavier Arteaga
0138c3b856
PDSCH-NR fixed with unit test
2020-12-12 15:58:34 +01:00
Jesus Gomez
6defd2658c
Solve Issue 2: Rate matching zeroes output data prior to soft-combine
2020-12-12 15:58:34 +01:00
Xavier Arteaga
fb64c2a460
Initial NR PDSCH encode/decode
2020-12-12 15:58:34 +01:00
Xavier Arteaga
666ba7d590
Added unpacked bit sequence XOR
2020-12-12 15:58:33 +01:00
Xavier Arteaga
6df83c32b3
Added NR layer mapper and demapper
2020-12-12 15:58:33 +01:00
Xavier Arteaga
3060972514
Removed redundant softbuffer dependency
2020-12-12 15:58:33 +01:00
Xavier Arteaga
644758416e
DL-SCH-NR adjust unit test
2020-12-12 15:58:33 +01:00
Xavier Arteaga
d27f0819a8
Fix DL-SCH for NR
2020-12-12 15:58:33 +01:00
Xavier Arteaga
53282bdfbf
Dl-SCH-NR: updated unit test
2020-12-12 15:58:33 +01:00
Xavier Arteaga
4e5edb5168
DL-SCH NR added traces and fixes
2020-12-12 15:58:33 +01:00
Xavier Arteaga
2aa7e43771
Implemented NR DL SCH decoder and unit test
2020-12-12 15:58:33 +01:00
Xavier Arteaga
3464dd3c0d
Added MCS table string serializer
2020-12-12 15:58:33 +01:00
Xavier Arteaga
794d1b5c4b
Added LDPC decoder RM interface
2020-12-12 15:58:33 +01:00
Xavier Arteaga
fa691bb8e3
Fix softbuffer
2020-12-12 15:58:33 +01:00
Xavier Arteaga
27a3e87fb7
Initial DL-SCH encoding
2020-12-12 15:58:33 +01:00
Xavier Arteaga
bc66942b8d
Bit unpacking input to constant
2020-12-12 15:58:33 +01:00
Xavier Arteaga
9a320baf37
extended resource allocation for NR
2020-12-12 15:58:33 +01:00
Xavier Arteaga
766a43225d
5G FEC extension
2020-12-12 15:58:33 +01:00
Xavier Arteaga
30037d9223
Added guru softbuffer interface
2020-12-12 15:58:33 +01:00
Xavier Arteaga
8e8889032e
Changed CRC input vector to constant
2020-12-12 15:58:33 +01:00
Xavier Arteaga
f64c268a69
SRSUE: Refactored MAC/RRC SCell Activation/Deactivation
2020-12-12 15:58:33 +01:00
Andre Puschmann
ff5f215df9
rf_soapy: print warning when using the Lime with shorter sample rates
...
the Lime has better performance when using the default LTE sample
rates due to filterering being done in the LMS RF chip.
Print a warning when using the Lime with the non-default LTE rates.
2020-12-12 15:58:33 +01:00
Andre Puschmann
2c797fce1a
phy_common: add method to check whether we use default LTE symbol size
...
helpful getter to check whether we've compiled in
or selected at run time to use default LTE sample rates
2020-12-12 15:58:33 +01:00
Xavier Arteaga
a6ac80cfbf
Initial NR DL DCI Packing/Unpacking
2020-12-12 15:58:33 +01:00
Francisco Paisana
fdec451a9d
disable mcs>20 if eNB supports UL 64QAM but UE doesn't
2020-12-12 15:58:33 +01:00
Francisco Paisana
bf7c587e4f
add UL 64QAM support to eNB RRC and scheduler
2020-12-12 15:58:33 +01:00
Andre Puschmann
5f7f818abb
pdu: fix bug in BSR table lookup
...
the bug causes the BSR to return a bsr_idx of 0, i.e. no data
pending, when the buff_size was reported to be 1 B only.
Instead, the UE should return BSR idx 1, i.e. between 0 < BSR <= 10.
2020-12-12 15:58:33 +01:00
Andre Puschmann
e227fec3d8
pdu_test: add rigerous test for LBSR content
...
* make sure upper and lower edges of Table 6.1.3.1-1 in 36.321 are correct
* fix existing BSR test vectors (verified with Wireshark)
2020-12-12 15:58:33 +01:00
Andre Puschmann
286844b3dd
mac_pdu: reset subheader state when deleting from PDU
...
when packing MAC PDUs, adding a new SDU might fail, for example
because RLC couldn't provide a new PDU. The muxer then needs
to delete the subheader from the PDU again.
When adding a padding BSR at the end, the same subheader is again
used to store the BSR, so any state in that subheader should be removed.
In the particular case, this was causing an issue when logging a LBSR
because the LCG buffer states are printed using the payload buffer,
which was still pointing to some memory that was used when trying
to add the new RLC PDU in the beginning.
2020-12-12 15:58:33 +01:00
Andre Puschmann
035d989737
pdu: fix unpacking of LCG2 of LBSR MAC CE
...
LBSR packing is fine but this makes the eNB do wrong things
because it thinkgs LCG2 has no or too much data to send.
LCG2 is our default LCG for DRB1. One occasion we saw the issue
is doing full rate TCP DL which requires quite a bit of ACK traffic
back to the sender. With the BSR for LCG2 being wrong, providing
UL grants was delayed and so the TCP DL throuhgput was very low.
In the log below we see that the buff_size[2]=1 so there is data to send.
Interestingly, the packing was correct so Wireshark displays it correctly.
But the unpacking not, as can be seen in the MAC log below which reports
0 buffer state for all LCGs
22:08:54.804792 [MAC ] [I] [ 5084] pdu_get: sdu_len=1212, channel.sched_len=1213, bsr.buff_size[2]=1
22:08:54.804840 [MAC ] [I] [ 5084] UL LCID=3 len=1212 LBSR: b=0 0 0 0
2020-12-12 15:58:33 +01:00
Xavier Arteaga
cf55eb4c4f
Improved comments
2020-12-12 15:58:33 +01:00
Xavier Arteaga
e8f94c40b8
Added LDPC codeblock segmentation
2020-12-12 15:58:33 +01:00
Xavier Arteaga
fc3d154fe3
Fix compilation
2020-12-12 15:58:33 +01:00
Xavier Arteaga
736e6db616
Initial resource allocation for NR
2020-12-12 15:58:33 +01:00
Xavier Arteaga
0439161de6
Removed modulation enum from LDPC RM
2020-12-12 15:58:33 +01:00
Pedro Alvarez
454162cea7
Deleted nas_interface_stack.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
604e79214d
Changed NAS is_attached interface to is_registered.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
14844a168a
Created new class to hold all NAS states for the NAS state machine. Added EMM-DEREGISTERED substates and EMM-REGISTERED substates.
...
Decoupled PLMN selection, attach request and service request. Removed RRC connect procedure from NAS.
2020-12-12 15:58:33 +01:00
Andre Puschmann
6773f6d02f
pdu_queue: add reset method to empty queue
2020-12-12 15:58:33 +01:00
Francisco Paisana
88105c1577
change the namespace of tti point helper functions for the eNB
2020-12-12 15:58:33 +01:00
Andre Puschmann
f155b7a5d5
rlc: fix stopping of poll retx timer ( #2006 )
...
* rlc_am: add TC for pollRetx timer handling
* rlc_am: fix stopping of pollRetx timer
stopping the pollRetx timer when receiving a status PDU
without checking the acknowledged PDUs is wrong.
if an ACK for another PDU, for which the polling bit has been set,
is still pending, it won't be rescheduled until another
PDU is transmitted that again starts the pollRetx timer.
this fixes the issue with missing RLC AM segment retx in #1992 ,
and #2003
2020-12-12 15:58:32 +01:00
Andre Puschmann
7cf919e2af
Fix MAC PDU packing after sending Truncated BSR ( #2004 )
...
* mac_test: add extended TBSR unit test
unit test to MAC UL packing after sending a TBSR
this fixes the MAC issues described in issue #2002
* mux: fix updating of LCG buffer state after packing PDU
we've previously lowered the buffer state of the LCG according
to the bytes that have been scheduled, but not according to
those that have been actually included in the PDU.
* proc_bsr: fix LCG buffer state updating for TBSR
when sending a TBSR do not update the internal buffer
state of the BSR proc.
This caused issues because the buffer state for all LCG that
are not included in the TBSR are set to zero, although at least
one LCG does have data to transmit.
* rlc_am: include LCID when logging retx of SN
2020-12-12 15:58:32 +01:00
Andre Puschmann
1b97ba5300
benchmark_radio: fix duration and thread priority
...
I noticed that the app didn't configure the process with
RT thread prio. But it then turned out that in order to do
that we need to actually spawn a new thread. Also a few other things
didn't work out of the box.
In summary the changes are:
* fix duration to support more than 120s
* move main functionality in thread
* set high priority for radio thread
* only return success if no radio errors occured
2020-12-12 15:58:32 +01:00
Francisco Paisana
510959b50f
update nr asn1 files, and asn1 tests
2020-12-12 15:58:32 +01:00
Xavier Arteaga
8d9577626b
Fix NR FEC unit test
2020-11-04 15:06:39 +01:00
Xavier Arteaga
0c2f96d389
Fix 5G NR FEC memcheck
2020-11-04 15:06:39 +01:00
Xavier Arteaga
2835e87ff0
Add missing file
2020-11-04 15:06:39 +01:00
Xavier Arteaga
f8dd67260f
Polar: fix unit test working directory
2020-11-04 15:06:39 +01:00
Xavier Arteaga
15356b3ec8
Fix compilation for non-AVX2 machines
2020-11-04 15:06:39 +01:00
Xavier Arteaga
2c4aa1e379
Added Polar and LDPC forward error correction
2020-11-04 15:06:39 +01:00
David Rupprecht
387a84ff84
Updated missing byte
2020-11-03 10:03:09 +01:00
David Rupprecht
b85cb614aa
Added test cases for asn1 decoding lib from pcap
2020-11-03 10:03:09 +01:00
Xavier Arteaga
271002c9fb
Fix compilation
2020-11-02 16:44:50 +01:00
Xavier Arteaga
4f89c6ed3f
Added missing CMakeFiles
2020-11-02 16:32:26 +01:00
Xavier Arteaga
f21590735d
refactored FEC directories
2020-11-02 16:32:26 +01:00
Xavier Arteaga
7093a85f81
Refactored FEC directories
2020-11-02 16:32:26 +01:00
Xavier Arteaga
c2621cc4f8
Protect ring-buffer write from nullptr
2020-11-02 16:31:37 +01:00
Francisco Paisana
a865858db3
disable srbs UL during handover to avoid UL grants and scheduling requests before the handover is complete
2020-10-30 21:51:58 +00:00
Andre Puschmann
f647343f18
rlc_am: fix poll bit during header reconstruction
...
this makes sure that the reconstructed RLC AM header
has the poll bit set when any of its segments had it set.
this triggered a bug in RLC AM because the Status PDU
isn't transmitted for a RLC PDU that was segmented and
only the first segment had the P flag set.
2020-10-30 20:47:01 +01:00
Francisco Paisana
b40a5a958e
use common function to fill rrc reconf message in handover
2020-10-29 21:19:40 +00:00
Francisco Paisana
e9b693942f
diff-based cell selection activation
2020-10-29 21:19:40 +00:00
Francisco Paisana
836e7d7ede
refactor scell addition in the srsenb::rrc to follow the same style of other rrc recfg fields
2020-10-29 21:19:40 +00:00
Francisco Paisana
f26b5ccde7
fix drb reestablishment during handover
2020-10-29 21:19:40 +00:00
Francisco Paisana
97f2e4336e
refactor of functions for filling the asn1 radio resource config structs. This functions are used during rrc setup/reest/reconf
2020-10-29 21:19:40 +00:00
Xavier Arteaga
9487d27ef9
Renamed NR constants and comments
2020-10-29 09:23:09 +01:00
Xavier Arteaga
e8f168b20c
PDSCH NR: Added files
2020-10-29 09:23:09 +01:00
Xavier Arteaga
c8477483d9
PDSCH NR: Added files
2020-10-29 09:23:09 +01:00
Xavier Arteaga
30d8e05d50
Fix PDSCH-DMRS symbol index
2020-10-29 09:23:09 +01:00
Xavier Arteaga
275cbafe6e
Modified comments
2020-10-29 09:23:09 +01:00
Xavier Arteaga
8d34d344a8
Created PDSCH-NR configuration structures and refactored DMRS
2020-10-29 09:23:09 +01:00
Xavier Arteaga
009f300c5e
Initial PHY Data procedures
2020-10-29 09:23:09 +01:00
Xavier Arteaga
775692f461
Rearanged PDCCH NR functions structures
2020-10-29 09:23:09 +01:00
Xavier Arteaga
452eb2dbbf
Updated some DOCS
2020-10-29 09:23:09 +01:00
Xavier Arteaga
937c52339d
Added PDCCH DMRS estimation and measurement
2020-10-29 09:23:09 +01:00
Xavier Arteaga
5799100e42
FFT based Resampler admits NULL inputs/outputs
2020-10-29 09:23:09 +01:00