Ismael Gomez
d5f0634975
Add PUCCH SNR measurement ( #2175 )
...
* Add PUCCH SNR measurement
* Fix PUCCH SNR estimation
* Reverted PUCCH noise estimation
* use fpclassify instead of iszero
Co-authored-by: Xavier Arteaga <xavier@softwareradiosystems.com>
4 years ago
Ismael Gomez
c1c5fa426c
Fix issue with new way of managing ul buffers not working with CA
4 years ago
Ismael Gomez
7d2c1b636b
Release pointer even if length is zero
4 years ago
Ismael Gomez
e413086576
Limit the number of UL buffers in MAC and deallocate old ones
4 years ago
Ismael Gomez
0780f3caea
pdu_queue must be non-blocking in order to avoid the ue or enb to block in the event of a memory leak and the buffer pool running out of buffers. In that case, the null return shall be handled properly and error logged. This commit restores commit c4c44c33f4
.
4 years ago
Francisco Paisana
5391001c46
remove unused variable
4 years ago
Francisco Paisana
d4242f2db7
precompute nof_re_table[sf][prb][slot][cfi] for faster nof_re computation and for more accurate lower bound nof_re computation
4 years ago
Francisco Paisana
d0a17b0a40
created sched_ue_cell class that is indexed based on enb_cc_idx
4 years ago
Francisco Paisana
8b306c81e2
refactor tbs/mcs computation in sched
4 years ago
Francisco Paisana
32c47d4fac
change sched warning when it fails to fit srb0 data in grant to info
4 years ago
Francisco Paisana
1dd211c91c
fix log initialization in sched_helpers.cc
4 years ago
Francisco Paisana
afef5188a6
move sched_harq to subfolder
4 years ago
Francisco Paisana
233e604cfe
cleanup sched_ue, moving some unrelated functions to sched_helpers
4 years ago
Francisco Paisana
7e6744037c
fix error check in ue addition
4 years ago
Francisco Paisana
9c7c190074
when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers
4 years ago
Andre Puschmann
eb515c5205
enb,mac: check return value when packing RAR PDU
...
this make sure that we only send valid MAC PDUs in the DL.
4 years ago
Francisco Paisana
0d9ff3ecc7
fixed RBG<->PRB conversion. Changed PHICH logging to be single line
4 years ago
Francisco Paisana
68e7df1248
allocate PUCCH resources in RRC UE only in case UE CA is activated
4 years ago
Ismael Gomez
a360580999
Run PRACH workers before cc_workers fixes memory corruption when PRACH workers run in foreground (eg in ZMQ)
4 years ago
Francisco Paisana
0761a8f08b
Add RLF-Report handling functions to srsENB
4 years ago
Francisco Paisana
434bdfca68
decoupled srsenb rrc ue mac controller from the rrc::ue class
4 years ago
Francisco Paisana
f8b7351e1b
implementation of object memory pool via class-specific operator new/delete
4 years ago
Francisco Paisana
8912a8ce6c
added extra comments to memory pool code. generalized object pool to mutexed and non-mutexed cases
4 years ago
Francisco Paisana
768a4fa627
added growth policy for rrc::ue memory pool. Fixed memory leak
4 years ago
Francisco Paisana
a73cbcdc9d
added mem_pool for growing object pools. Applied the mem pool to the rrc::ue creation
4 years ago
Francisco Paisana
9883dc2171
remove warning when RAR fails to allocate in a given TTI due to lack of space
4 years ago
Francisco Paisana
bc8e65c82f
bug fix in the PF scheduler. The correct history was not being stored for newtxs
4 years ago
Andre Puschmann
02b0f251aa
prach_worker: move variable to function body
...
the variable was only used inside the run_tti() function
and isn't needed elsewhere. refactor therefore.
4 years ago
Francisco Paisana
02d4dde1f5
issue 2170 fix: add extra check that UL harq is empty before allocating it
4 years ago
Francisco Paisana
f45d31d899
add fairness coefficient to UL.
4 years ago
Francisco Paisana
ea8ad153c4
add configurable fairness parameter to pf scheduler
4 years ago
Francisco Paisana
2abe486e18
separate control loops for PUCCH and PUSCH TPC
4 years ago
Andre Puschmann
f0138d45fe
srsenb,phy: fix setting of PHY log level
...
same regression that was fixed for the UE in 52da9eb46f
4 years ago
Andre Puschmann
732a108982
mac: convert rar_pdu_msg[] from vector into array and protect access
...
attempt to address ASAN detected issue:
RACH: tti=821, cc=3, preamble=11, offset=0, temp_crnti=0x47
ASAN:DEADLYSIGNAL
=================================================================
m==25385==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000024 (pc 0x564b19a26c93 bp 0x7fa0e5f1a8c0 sp 0x7fa0e5f1a798 T8)
==25385==The signal is caused by a WRITE memory access.
==25385==Hint: address points to the zero page.
------DL--------------------------------UL------------------------------------
rnti cqi ri mcs brate ok nok (%) snr phr mcs brate ok nok (%) bsr
46 0.10 0 0.0 0 0 0 0% 0 0.0 0 0 0 0 0% 0.0
47 0.10 0 0.0 0 0 0 0% 0 0.0 0 0 0 0 0% 0.0
#0 0x564b19a26c92 in srslte::rar_subh::set_ta_cmd(unsigned int) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/lib/src/mac/pdu.cc:1136
#1 0x564b19577f7e in srsenb::mac::assemble_rar(srsenb::sched_interface::dl_sched_rar_grant_t*, unsigned int, int, unsigned int, unsigned int) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/stack/mac/mac.cc:837
#2 0x564b19591765 in srsenb::mac::get_dl_sched(unsigned int, std::vector<srsenb::mac_interface_phy_lte::dl_sched_t, std::allocator<srsenb::mac_interface_phy_lte::dl_sched_t> >&) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/stack/mac/mac.cc:653
#3 0x564b19497ee2 in srsenb::lte::sf_worker::work_imp() /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/phy/lte/sf_worker.cc:208
#4 0x564b199f8db4 in
4 years ago
Xavier Arteaga
b3200d9ef5
Renaming common UL/DL DMRS related types and initial NR PUSCH implementation
4 years ago
Andre Puschmann
d0d7ab4662
srsenb: log cell gain updates
...
add a logline in info whenever the user updates the cell individual
gain. Note that this log happens before checking whether the
cell even exists and can be updated. This is mainly because
phy_common doesn't have an own logger object.
4 years ago
Xavier Arteaga
909e5de34f
Fix NR workers
4 years ago
Ismael Gomez
6348ddefd5
Add option to run prach_worker in the caller thread instead of by a background worker. This is useful when running simulations with ZMQ, to avoid the prach worker to take too much time and miss the RAR deadline
4 years ago
Francisco Paisana
9de318c7e6
avoid allocating DL harqs when respective acks are still pending, when there is a reordering of ttis in the phy
4 years ago
faluco
92b11c1adb
Backport misc changes from the fapi repo.
4 years ago
faluco
88611fe0ab
Added the latency and buffered bytes bearer metrics.
4 years ago
faluco
d3964c70ea
Dump to the json reporter the missing bearer metrics.
4 years ago
Francisco Paisana
66aa34d173
update RRC NR ASN1 to 2020-09 v15.11
4 years ago
Pedro Alvarez
0c20b7a455
Added support for S1AP modify bearer request support. This includes:
...
- Handle received E-RAB S1AP at s1ap.cc.
- Added methods to rrc.cc, rrc_ue.cc and rrc_bearer_cfg.cc to handle erab modify request.
- Made RLC add_bearer() function capable of re-creating the RLC entity.
- Send RRC reconfiguration to the UE and reply to the EPC with S1AP
modify bearer response.
This commit also adds support to srsEPC to send S1AP modify bearer request for
testing purposes.
4 years ago
Francisco Paisana
099dad8cb1
disable PHR handling in the UL sched by default
4 years ago
Ismael Gomez
f9a02299f9
Use MAC PDU pointer instead of tti_rx and rnti as a key to associate buffers. Decouple crc_info() and push_pdu() functions. This allows for different timing architectures in the PHY
4 years ago
Ismael Gomez
0498439d41
Backport some changes from FAPI branch ( #2124 )
...
* Reorder DCI FORMAT enum
* Fix endianness issue
* Fix return codes in phy_ue_db
* Log members should be destructed after the layers.
* Add JSON metrics and Events. Add Alarm log channel. Simplify MAC metrics struct.
* Restore metrics_stdout change
4 years ago
Francisco Paisana
1304746bce
use of fmt lib in asn1 utils
4 years ago
Francisco Paisana
7869c66fb7
avoid overwriting phy config ul64qam config for scell
4 years ago
Francisco Paisana
442843e276
enb metric bound check. Fix of heap-buffer overflow issue
4 years ago
Francisco Paisana
82eb31f70f
add rlc metrics to enb
4 years ago
Francisco
e2654e69ec
Enable pdu stack latency measurements in the eNB.
4 years ago
Francisco
b0a7506a8a
add extra check to verify if erab is still available for rrc metric extraction
4 years ago
faluco
8c42ec26c3
Fix error in previous rebase from dev.
4 years ago
faluco
343587b32d
Update NR classes after metrics interface changes.
4 years ago
faluco
f20b75a05f
Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct.
4 years ago
faluco
5529943172
Add a per sector rach preable counter for the metrics.
4 years ago
Francisco
f1c05f6826
add sector id to ues in mac metrics
4 years ago
Francisco
43e0a3209d
fill enb rrc metrics with drb info
4 years ago
faluco
dcd1157d39
- Prototype the extension of enb metrics.
4 years ago
Ismael Gomez
5d85307a98
Fix 256QAM reconfiguration
4 years ago
Ismael Gomez
a9673e3c53
Use number of configured cells before reconfiguration for DCI calculation
4 years ago
Ismael Gomez
e654062a7a
Do not stash all PHY configuration in eNB during reconfiguration. Stash only number of CC used by DCI
4 years ago
Pedro Alvarez
7eebd71627
Added S1AP E-RAB release command/response handling to srsENB.
...
Added the ability to srsEPC to send the E-RAB release command.
4 years ago
Francisco
783131a4e1
sched rand test refactor: removal of redundant tests
4 years ago
Francisco
cba0cc457f
sched rand test refactor: creation of abstract sched simulator class for testing
4 years ago
Francisco
aed36eb273
sched rand tester refactor: elimination of ue_ctxt_test obsolete class
4 years ago
Francisco
a068ae11b0
sched rand tester ue_sim class now handles cqi
4 years ago
Francisco
8f05982bef
simplification of scheduling of UL acks in sched random tester
4 years ago
Francisco
86eb315102
simplification of scheduling of DL acks in sched tester
4 years ago
Codebot
43082e8d6a
enb/ue: turn various warning messages into info
...
turn events that may happen in the normal life of a eNB/UE
into info rather than warning to allow strict
warning/error checking in tests.
4 years ago
Andre Puschmann
eea6f0f11b
enb: fix potential invalid access in stdout metrics
...
this fixes a potential access of invalid PHY or MAC metrics by checking
the user entry actually exists.
the RFCI has shown this error:
------DL--------------------------------UL------------------------------------
rnti cqi ri mcs brate ok nok (%) snr phr mcs brate ok nok (%) bsr
ASAN:DEADLYSIGNAL
=================================================================
m==31838==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x555d482b6893 bp 0x7f6ac32d1160 sp 0x7f6ac32d0bc0 T21)
==31838==The signal is caused by a READ memory access.
==31838==Hint: address points to the zero page.
#0 0x555d482b6892 in srsenb::metrics_stdout::set_metrics(srsenb::enb_metrics_t const&, unsigned int) /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/srsenb/src/metrics_stdout.cc:101
#1 0x555d482865f1 in srslte::metrics_hub<srsenb::enb_metrics_t>::run_period() /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/lib/include/srslte/common/metrics_hub.h:88
#2 0x555d482865f1 in srslte::periodic_thread::run_thread() /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/lib/include/srslte/common/threads.h:143
#3 0x555d4826813d in srslte:🧵 :thread_function_entry(void*) /mnt/data/jenkins/workspace/srslte_dev_ogt_zmq_nightly/srsLTE/lib/include/srslte/common/threads.h:102
#4 0x7f6b0dc546da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
#5 0x7f6b0bf0171e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x12171e)
4 years ago
David Rupprecht
848496bb0f
Moved get_earfcn to srslte get_carrier_freq func
4 years ago
Francisco
37ee8bcf46
fix issue 2082 - ensure that sched does not exceeds max coderate while decreasing mcs
4 years ago
Francisco
b4861bc59a
move sched params and sched helper methods to sched_helpers.h/cc files. Removed place in the scheduler where the mcs is increased forcefully to avoid segmentation
4 years ago
Francisco
920e15c1a5
fix logical channel pdu size computation
4 years ago
Ismael Gomez
ae1092257f
Fix issue in 15 PRB 2CA: Due to DCI format ambiguity, the scheduler needs to use Format1A instead of Format1. The number of PRB was incorrectly calculated when generating the grant, leading to corruptions in the MAC PDU.
4 years ago
Francisco
9eddfdb4a3
fix sched rand tester coderate check. tbs needs to be converted from bytes to bits
4 years ago
Francisco
0ae304a6ed
update sched rand tester to detect when tbs coderate exceeds 0.93
4 years ago
Francisco
99f94d9a1a
Bug fixes of srseNB scheduler TPC
...
- fix encoding of TPC command
- use of exponential average with irregular sampling for the ULSNR average estimate.
Turns out using a time-windowed average for the SNR was a bad idea.
If the UL grants are very sporadic, the SNR time window will never have samples
when a TPC is encoded
- update of TPC sched test
- other fixes in accumulators lib
4 years ago
Francisco
2598989f7d
replace msg3grant type from C-array to bounded vector
4 years ago
Francisco
22229adf08
fix: normal phr is only sent for PCell
4 years ago
Francisco
69748e9313
fix compilation issue regarding definition of size_t in header and declaration of static member null_value in sliding average class
4 years ago
Francisco
d42dc50c44
Write TPC sched unit test and fix sched logical channel test
4 years ago
Francisco
8670558692
fix failing scheduler ca test
4 years ago
Francisco
479602ed1d
add option to specify target ul sinr for UL power control to the enb rr.conf parser
4 years ago
Francisco
5865df39d1
created class that implements the scheduler transmit power control and PHR handling
4 years ago
Xavier Arteaga
ebd87e63c0
Fix worker NR compilation
4 years ago
Xavier Arteaga
f9643843a0
SRSENB/UE Fixed NR workers
4 years ago
Xavier Arteaga
b501f2eeaf
SRSENB/UE: Added NR workers
4 years ago
Xavier Arteaga
a908fb6c5b
Fix NR srsue/srsenb. Initial PHY NR in SRSENB.
4 years ago
Xavier Arteaga
85afdf8ce3
SRSENB: moved phy workers to lte worker pool
4 years ago
Francisco
2b59e90304
fix: limit number of encoded PHICH in the scheduler to the max size of the array
4 years ago
Francisco
2b97b2c8bb
add bound checks for data, bc, and rar allocations in the scheduler to avoid array overflows.
4 years ago
Francisco
d98d14efcc
remove tti_params struct from sched testers, and use tti_point instead
4 years ago
Francisco
86ab1864f7
The struct tti_point is now used ubiquitously in the scheduler
4 years ago
Pedro Alvarez
49bcffcdf8
Fix issue packing TEID in Error indication.
4 years ago
Pedro Alvarez
235f373af7
Started to add ability to send error indication when G-PDU from invalid TEID is received.
4 years ago
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
4 years ago
Francisco
b71e8075f4
Refactoring of scheduling algorithms
...
- Use single interface for both DL and UL
- Wrote helper functions for tasks that are common to different algorithms
- created subfolder for all scheduling algorithms
4 years ago