Commit Graph

1497 Commits

Author SHA1 Message Date
Francisco 2bde28252c send UE capability indication through S1AP 2021-02-01 22:27:49 +00:00
Francisco d64ce7df77 implementation of S1 E-RAB Release Indication and Error Indication messages 2021-02-01 22:27:49 +00:00
faluco ac62e3c398 Fix the priority of logging levels in places where we before logging we check if a certain log level is enabled. 2021-02-01 20:18:55 +01:00
herlesupreeth 47fff7226a Send NAS PDU in E-RAB Release Command and issue RRCConnectionReconfiguration to UE
This commit addresses the following points

- If a NAS-PDU IE is contained in the E-RAB RELEASE COMMAND message, the eNB shall pass it to the UE.
- Issue RRCConnectionReconfiguration for the DRB to be removed
- Cleaning of DRB in RLC and GTP-U
- Fix for Malformed E-RAB Setup Response upon reaching max. DRBs
2021-02-01 14:31:24 +01:00
Andre Puschmann da9e3363f1 mac_pdu_nr: rename MAC PDU class for NR to adhere naming conventions
* mainly to have _nr as trailing name for filename and class
* also add "sch" to class and filename (RAR PDU will have extra class)
2021-01-30 11:58:25 +01:00
Francisco 2befbd1825 setup of forwarding tunnels during enb s1 handover 2021-01-29 18:46:11 +00:00
Francisco ee3d8a5c77 fix gtpu_test memcpy param overlap bug 2021-01-29 17:22:58 +00:00
Francisco b9271f26da change naming from mme to sgw in gtpu_test 2021-01-29 17:22:58 +00:00
Francisco e8f6a436af update gtpu test to account for scenario of buffered PDCP SNs, and buffering of direct path until indirect tunnel is closed 2021-01-29 17:22:58 +00:00
Francisco a55c4cdca5 avoid gtpu extension header pdcp number magic number 2021-01-29 17:22:58 +00:00
Francisco 56ec2c286e add gtpu test for tunneling 2021-01-29 17:22:58 +00:00
Francisco 13649e4e19 Implement new GTPU functionality:
- multiple tunnels per E-RAB
- data forwarding between connected GTPU tunnels
- forwarding GTPU End Marker between connected tunnels
- TeNB GTPU handles in-sequence delivery when multiple tunnels for the same ERAB exist.
2021-01-29 17:22:58 +00:00
faluco 711438f756
Port enb specific classes to use srslog (#2155)
* - Started porting the enb PHY layer to use srslog loggers.
- Updated srslog to manage the none level.

* Finished porting enb phy layer including the NR part.

* Ported MAC, GTPU, PDCP, RLC and S1AP enb classes to use srslog.

* Use new stack logger.

* Ported the enb RRC clases to use srslog.

* Remove unused log macros.

* Replace loggers in sched, sched_carrier, sched_helpers.

* Replaced loggers in sched grid.

* Replaced loggers in sched harq.

* Replaced loggers in sched ue.

* Replaced loggers in sched ue ctrl.

* Replace loggers in sched ue ctrl TPC.

* Replaced loggers in sched subclasses.

* Replaced loggers in rrc_meascfg_test

* Configure loggers in rrc_mobility_test.

* Fix compilation errors left out after the rebase.

* - Implement a custom log sink that will serve as a test spy to intercept and count the number of error and warning log entries.
- Adapt the erab_test_setup and rrc_mobility tests to use this new class and make them pass again.

* - Remove trailing new lines introduced in the rebase.
- Ported the sched_ue_cell class to srslog.

* Remove unused log member.

* Ported mac tests to srslog.

* - Removed remaining trailing newlines from log entries.

* Fix compiler errors detected in CI.

* Fix another static variable without definition passed to log lines.

* Fixed a bug in srslog::flush that would never end when the backend queue is full.

* Fetch the RRC logger instead of injecting it in the constructor.
2021-01-28 12:17:18 +01:00
yagoda 1420c23863 adding RAR buffers for multiple carriers, previously RARs into different carriers in the same TTI would overwrite each other 2021-01-26 21:19:06 +01:00
Xavier Arteaga 2baccc8b13 Set NR-PDSCH default table to 256QAM 2021-01-25 22:04:55 +01:00
Francisco 26086252ba fix resetting of harqs in the scheduler during intra-enb handover 2021-01-25 18:09:21 +00:00
Ismael Gomez fed4e0ad82
Protect access to ul buffers (#2227)
* Protect access to ul buffers

* Fix interval calculation when removing old buffers
2021-01-21 21:33:30 +01:00
Francisco e0937d1dd1 add lcid check and increase limit to 10 2021-01-21 17:04:38 +00:00
Francisco a24091edf8 fix handover regression. The new pcell was not being correctly reactivated 2021-01-21 17:04:25 +00:00
Francisco 9b20e35b8f add comment regarding implementation of false position method in the scheduler 2021-01-21 17:04:25 +00:00
Francisco 927938c7be fix sched_ue configuration process when a carrier is set to 'not configured' 2021-01-21 17:04:25 +00:00
Francisco 4ed87babff extend sched_ue_cell interface 2021-01-21 17:04:25 +00:00
Francisco 3d7a83cb6e delete cc_sched_ue class 2021-01-21 17:04:25 +00:00
Francisco Paisana c1ff03bd1a moved uci feedback and state variables from cc_sched_ue to sched_ue_cell class 2021-01-21 17:04:25 +00:00
Francisco Paisana dadee757a1 moved harq entity and tpc to sched_ue_cell 2021-01-21 17:04:25 +00:00
Francisco Paisana 3892194d98 sched refactor, use enb_cc_idx rather than ue_cc_idx primarily to avoid uneeded conversions 2021-01-21 17:04:25 +00:00
Francisco 30439c12e0 fix 'maybe be used uninitialized' error 2021-01-21 11:33:59 +01:00
Ismael Gomez 47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
Limit the number of UL buffers in MAC and deallocate old ones
2021-01-20 21:12:39 +01:00
Francisco e27ded9e55 add comment explaining the need to warn in case of failed allocate a TB in the scheduler when there are still pending bytes 2021-01-20 20:37:52 +01:00
Francisco 9ab7373251 Encode correctly DCI format2A when one of the TBs is empty 2021-01-20 20:37:52 +01:00
Ismael Gomez 8c85ddea0f Fix ue_cc_idx naming convention 2021-01-20 18:10:49 +01:00
Ismael Gomez 44e411be2b Track UL buffers per TTI instead of per PID and remove old ones periodically 2021-01-20 17:47:36 +01:00
Francisco 7f6f3f7912 fix sched test check for ConRes DCI format. 2021-01-20 17:11:04 +01:00
Francisco 8330793da9 use DCI format1A in edge case where the enb has more than one cell and the nof_prbs=15 2021-01-20 17:11:04 +01:00
Ismael Gomez a6423442c2
Refactor NR RA files and fix header includes all over library (#2162)
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test

* Minor refactors in NR workers and ue_dl

* Fix include issues

* fix compilation issues
2021-01-20 15:46:46 +01:00
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>
2021-01-19 21:55:24 +01:00
Ismael Gomez c1c5fa426c Fix issue with new way of managing ul buffers not working with CA 2021-01-19 16:59:36 +01:00
Ismael Gomez 7d2c1b636b Release pointer even if length is zero 2021-01-19 16:59:36 +01:00
Ismael Gomez e413086576 Limit the number of UL buffers in MAC and deallocate old ones 2021-01-19 12:24:48 +01:00
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. 2021-01-16 15:22:29 +01:00
Francisco Paisana 5391001c46 remove unused variable 2021-01-15 23:24:39 +01:00
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 2021-01-15 23:24:39 +01:00
Francisco Paisana d0a17b0a40 created sched_ue_cell class that is indexed based on enb_cc_idx 2021-01-15 23:24:39 +01:00
Francisco Paisana 8b306c81e2 refactor tbs/mcs computation in sched 2021-01-15 11:36:59 +01:00
Francisco Paisana 32c47d4fac change sched warning when it fails to fit srb0 data in grant to info 2021-01-15 11:36:59 +01:00
Francisco Paisana 1dd211c91c fix log initialization in sched_helpers.cc 2021-01-15 11:36:59 +01:00
Francisco Paisana afef5188a6 move sched_harq to subfolder 2021-01-15 11:36:59 +01:00
Francisco Paisana 233e604cfe cleanup sched_ue, moving some unrelated functions to sched_helpers 2021-01-15 11:36:59 +01:00
Francisco Paisana 7e6744037c fix error check in ue addition 2021-01-15 00:10:42 +01:00
Francisco Paisana 9c7c190074 when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers 2021-01-15 00:10:42 +01:00
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.
2021-01-13 20:39:09 +01:00
Francisco Paisana 0d9ff3ecc7 fixed RBG<->PRB conversion. Changed PHICH logging to be single line 2021-01-13 17:41:45 +01:00
Francisco Paisana 68e7df1248 allocate PUCCH resources in RRC UE only in case UE CA is activated 2021-01-13 17:30:38 +01:00
Ismael Gomez a360580999 Run PRACH workers before cc_workers fixes memory corruption when PRACH workers run in foreground (eg in ZMQ) 2021-01-12 21:30:57 +01:00
Francisco Paisana 0761a8f08b Add RLF-Report handling functions to srsENB 2021-01-12 20:40:39 +01:00
Francisco Paisana 434bdfca68 decoupled srsenb rrc ue mac controller from the rrc::ue class 2021-01-12 18:16:03 +01:00
Francisco Paisana f8b7351e1b implementation of object memory pool via class-specific operator new/delete 2021-01-12 16:22:10 +01:00
Francisco Paisana 8912a8ce6c added extra comments to memory pool code. generalized object pool to mutexed and non-mutexed cases 2021-01-12 16:22:10 +01:00
Francisco Paisana 768a4fa627 added growth policy for rrc::ue memory pool. Fixed memory leak 2021-01-12 16:22:10 +01:00
Francisco Paisana a73cbcdc9d added mem_pool for growing object pools. Applied the mem pool to the rrc::ue creation 2021-01-12 16:22:10 +01:00
Francisco Paisana 9883dc2171 remove warning when RAR fails to allocate in a given TTI due to lack of space 2021-01-12 15:49:34 +01:00
Francisco Paisana bc8e65c82f bug fix in the PF scheduler. The correct history was not being stored for newtxs 2021-01-12 15:49:34 +01:00
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.
2021-01-11 15:45:48 +01:00
Francisco Paisana 02d4dde1f5 issue 2170 fix: add extra check that UL harq is empty before allocating it 2021-01-11 15:36:12 +01:00
Francisco Paisana f45d31d899 add fairness coefficient to UL. 2021-01-11 11:56:13 +01:00
Francisco Paisana ea8ad153c4 add configurable fairness parameter to pf scheduler 2021-01-11 11:56:13 +01:00
Francisco Paisana 2abe486e18 separate control loops for PUCCH and PUSCH TPC 2021-01-06 22:14:46 +01:00
Andre Puschmann f0138d45fe srsenb,phy: fix setting of PHY log level
same regression that was fixed for the UE in 52da9eb46f
2021-01-04 21:03:21 +01:00
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
2021-01-03 21:46:41 +01:00
Xavier Arteaga b3200d9ef5 Renaming common UL/DL DMRS related types and initial NR PUSCH implementation 2020-12-30 13:39:08 +01:00
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.
2020-12-28 21:21:44 +01:00
Xavier Arteaga 909e5de34f Fix NR workers 2020-12-28 10:11:08 +01:00
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 2020-12-26 23:49:42 +01:00
Francisco Paisana 9de318c7e6 avoid allocating DL harqs when respective acks are still pending, when there is a reordering of ttis in the phy 2020-12-21 17:23:26 +01:00
faluco 92b11c1adb Backport misc changes from the fapi repo. 2020-12-21 13:45:22 +01:00
faluco 88611fe0ab Added the latency and buffered bytes bearer metrics. 2020-12-18 14:44:59 +01:00
faluco d3964c70ea Dump to the json reporter the missing bearer metrics. 2020-12-18 14:44:59 +01:00
Francisco Paisana 66aa34d173 update RRC NR ASN1 to 2020-09 v15.11 2020-12-18 12:50:37 +01:00
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.
2020-12-18 10:52:51 +00:00
Francisco Paisana 099dad8cb1 disable PHR handling in the UL sched by default 2020-12-17 17:56:42 +01:00
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 2020-12-16 13:49:29 +01:00
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
2020-12-16 13:48:48 +01:00
Francisco Paisana 1304746bce use of fmt lib in asn1 utils 2020-12-15 15:56:59 +01:00
Francisco Paisana 7869c66fb7 avoid overwriting phy config ul64qam config for scell 2020-12-15 12:24:17 +01:00
Francisco Paisana 442843e276 enb metric bound check. Fix of heap-buffer overflow issue 2020-12-14 17:12:17 +01:00
Francisco Paisana 82eb31f70f add rlc metrics to enb 2020-12-14 16:59:09 +01:00
Francisco e2654e69ec Enable pdu stack latency measurements in the eNB. 2020-12-14 13:47:05 +01:00
Francisco b0a7506a8a add extra check to verify if erab is still available for rrc metric extraction 2020-12-14 13:16:13 +01:00
faluco 8c42ec26c3 Fix error in previous rebase from dev. 2020-12-14 13:16:13 +01:00
faluco 343587b32d Update NR classes after metrics interface changes. 2020-12-14 13:16:13 +01:00
faluco f20b75a05f Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct. 2020-12-14 13:16:13 +01:00
faluco 5529943172 Add a per sector rach preable counter for the metrics. 2020-12-14 13:16:13 +01:00
Francisco f1c05f6826 add sector id to ues in mac metrics 2020-12-14 13:16:13 +01:00
Francisco 43e0a3209d fill enb rrc metrics with drb info 2020-12-14 13:16:13 +01:00
faluco dcd1157d39 - Prototype the extension of enb metrics. 2020-12-14 13:16:13 +01:00
Ismael Gomez 5d85307a98 Fix 256QAM reconfiguration 2020-12-12 15:59:27 +01:00
Ismael Gomez a9673e3c53 Use number of configured cells before reconfiguration for DCI calculation 2020-12-12 15:59:27 +01:00
Ismael Gomez e654062a7a Do not stash all PHY configuration in eNB during reconfiguration. Stash only number of CC used by DCI 2020-12-12 15:59:27 +01:00
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.
2020-12-12 15:59:27 +01:00
Francisco 783131a4e1 sched rand test refactor: removal of redundant tests 2020-12-12 15:59:27 +01:00