Commit Graph

1521 Commits

Author SHA1 Message Date
Pedro Alvarez 772ab89391 srsUE: Fix for NAS overflow counter computation. 2020-07-02 14:52:21 +01:00
Ismael Gomez 0382933cb1 Select serving cell if PHY not in sync 2020-07-02 12:01:06 +02:00
Ismael Gomez e378a45db0 Reorganized priorities to avoid GW starve the CPU 2020-07-02 11:52:14 +02:00
Francisco Paisana d7a0fe4060 improve log messages for CA 2020-07-01 11:54:06 +01:00
Andre Puschmann a5c0f96fa7 srsue: limit sync queue length to 1 for ZMQ radio
apply same change that we've done on the eNB also on the UE
to avoid the PHY processing TTIs faster than the stack.

Without that, we see lots of those in the logs:

...
08:39:17.580325 [STCK] [W] Detected slow task processing (sync_queue_len=7).
...
2020-06-30 10:36:01 +02:00
Andre Puschmann c15b2ec810 ttcn3_dut: always create timer when enabling TESTMODE B
create timer but dont yet set it. this avoid adding multiple
checks if the timer var is actually initialized.
2020-06-30 10:31:52 +02:00
Andre Puschmann cf12c98630 srsue: exit early if radio can't be initialized
since the radio is the first component we initialize, it is safe to
exit the ue::init() straight away, as no other layers use any handles yet
2020-06-30 09:30:31 +02:00
Andre Puschmann d16897c09a scell_sync: fix missing dtor freeing sync object 2020-06-30 09:30:31 +02:00
Andre Puschmann e981d5ee70 rrc,ue: refactor wait conditions before transition to RRC idle
before entering RRC idle, after receiving a RRC connection release for example,
we need to wait until the RLC for SRB1 or SRB2 have been flushed, i.e.
the RLC has acknowledged the reception of the message.

Previously we have only waited for SRB1 but the message can also be received on SRB2
and in this case both bearers need to be checked.

The method is now streamlined to check both SRBs and is also used when
checking the msg transmission of an detach request.
2020-06-29 21:19:42 +02:00
Andre Puschmann 63f1ea1bec ttcn3: streamline DRB and SRB Tx interface
use the same tx interface with const uint8_t* and length byte instead of std::string
2020-06-29 13:45:42 +02:00
Daniel Willmann 7a25d1d300 Send the RRC_PDU_IND as JSON
Fixes: srslte_ttcn3#13, srslte_ttcn3#15
2020-06-29 13:45:42 +02:00
Xavier Arteaga f8cc2d176d Fix typo 2020-06-25 17:42:56 +02:00
Xavier Arteaga 2f0c38fc70 SRSUE: avoid deadlock while configuring cell from stack 2020-06-25 17:42:56 +02:00
Francisco Paisana a0606669e2 fix ue nr gw initialization 2020-06-24 23:28:53 +01:00
Francisco Paisana fddcbc9879 fix vnf-ue stack interface 2020-06-24 23:28:53 +01:00
Andre Puschmann 2c5e159420 ttcn3_drb_interface: remove use of GetArray()
unfortunately, the rapidjson version shipped with Ubuntu 16.04
doesn't support the GetArray() API so we need to use
normal iterator to loop over the array
2020-06-23 12:12:58 +02:00
Andre Puschmann bf6ddbe976 ttcn3_drb_interface: use uint8_t and len as tx interface 2020-06-23 12:12:58 +02:00
Andre Puschmann 7f47edf67f fix issue where PDCP SDU was not going through UE stack to SS
this cause the PDCP echo reply not to appear in MAC/PCAP
2020-06-23 12:12:58 +02:00
Andre Puschmann 07f22326b4 pass current SS TTI when formatting DRB common IND 2020-06-23 12:12:58 +02:00
Daniel Willmann 8652f75510 Don't try to guess the lcid, use what we got 2020-06-23 12:12:58 +02:00
Daniel Willmann 0b88161b3c Send DRB PDUs as JSON to TTCN3 2020-06-23 12:12:58 +02:00
Daniel Willmann 31f1516d74 Use callback to establish connection before sending PDUs in TestmodeB 2020-06-23 12:12:58 +02:00
Daniel Willmann 9aa441f8b6 ttcn3_ue::timer_expired(): Loop through the correct queue
Fixes a segfault when a NULL pdu is passed to loop_back_pdu_with_tft()
2020-06-23 12:12:58 +02:00
Daniel Willmann a3adba0081 Implement DRB establishment and handle rx/tx 2020-06-23 12:12:58 +02:00
Daniel Willmann 999de5f484 ttcn3_helpers: Add function to generate JSON for DRB PDUs 2020-06-23 12:12:58 +02:00
Andre Puschmann aca307b79b ue,rrc: don't log neighbor list in info mode
this floods the info log
2020-06-19 16:45:36 +02:00
Francisco Paisana d7138b7752 fix nr activation guards 2020-06-19 13:33:16 +01:00
Ismael Gomez 29e126a583
Add per-channel TX gain (#1450)
* Change type of rf_set_gain() to avoid unambiguous return with negative gains

* Add per-channel TX gain
2020-06-19 11:00:12 +02:00
Francisco Paisana ddff68a546 add ifdef guards for NR code 2020-06-18 23:37:26 +01:00
Francisco Paisana 6735199728 fix nr optional linking 2020-06-18 23:37:26 +01:00
Francisco Paisana f0874b780b add radio_base/null classes 2020-06-18 23:37:26 +01:00
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
2020-06-18 12:13:57 +01:00
Xavier Arteaga 0e415260e9 SRSUE: scell_sync vector changed to map 2020-06-18 09:51:51 +02:00
Xavier Arteaga e0e8405285 SRSUE: initial scell sync
SRSUE: SCell Synch feedbacks delay

SRSUE: Implemented SCell Radio offset correction
2020-06-18 09:51:51 +02:00
Francisco Paisana a42c20b73d preemptive transmission of the rrc reconf complete 2020-06-17 12:21:58 +01:00
Ismael Gomez 54b331c504
Adds best neighbour to CSV and stdout metrics (#1440) 2020-06-17 12:11:06 +02:00
Xavier Arteaga 65a603f522 SRSUE: minor AGC code readability improvement 2020-06-16 11:00:51 +02:00
Xavier Arteaga f04cf2090a Integrates number of samples in radio buffer
Fix minor issue

Radio: Fix minor bug and add unit test
2020-06-16 11:00:51 +02:00
Xavier Arteaga de230826b9 Added string helper for removing spaces and parsing list
Fix

Fix string parser
2020-06-16 11:00:51 +02:00
Xavier Arteaga 89b24b54e5 Refactored radio class for acommodating multiple RF devices 2020-06-16 11:00:51 +02:00
Andre Puschmann d1cb5531d6 demux: fix typo 2020-06-11 22:10:19 +02:00
Andre Puschmann c71d6b9204 ue,rrc: improve error message when cell selection fails due to missing SIBs 2020-06-11 17:55:04 +02:00
Francisco Paisana 057980d1fb use common log helper macros 2020-06-11 15:50:36 +01:00
Francisco Paisana 0d38c33a60 rename ue phy nr class 2020-06-11 15:50:36 +01:00
Francisco Paisana 27e5d98ef9 added vnf phy nr 2020-06-11 15:50:36 +01:00
Pedro Alvarez 396dc82b98 Swapped resume with reestablish in the UE. 2020-06-10 15:08:32 +01:00
Xavier Arteaga 0e5704731e Removed UHD unrelated changes 2020-06-10 11:44:44 +02:00
Xavier Arteaga cd463d1b87 UHD: Initial C++ porting
UHD: cmakefix

x3
2020-06-10 11:44:44 +02:00
Andre Puschmann 8512c10286 create simple helper method to log command line arguments 2020-06-09 20:55:38 +02:00
Ismael Gomez 84b84eaad6 Move search_in_common variable 2020-06-03 17:23:42 +02:00
Ismael Gomez 9b634b8d2a Search DCI in UE space before common to avoid DCI size ambiguity. Fixes #1398 2020-06-03 17:23:42 +02:00
Francisco Paisana 17cd3a02cb fix pcch error message 2020-06-02 22:42:53 +01:00
Francisco Paisana 877dee2ba8 fix use of phy cell select procedure 2020-06-02 22:42:53 +01:00
Francisco Paisana 3d76cc6c1a fix dangling pointer in cell selection dispatching 2020-06-02 19:11:26 +01:00
Francisco Paisana 81848deae2 extended handover procedure to accommodate all the handover (phy cell select + ra) 2020-06-02 19:11:26 +01:00
Francisco Paisana 556fcb69e7 fix handover my defering to next tti the reestablishment of bearers 2020-06-02 19:11:26 +01:00
Francisco Paisana 71cac8f5b8 fix phy cell selection triggering 2020-06-02 19:11:26 +01:00
Francisco Paisana 37ce475398 fix+refactor of the ue rrc handover preparation procedure to avoid deadlocking 2020-06-02 19:11:26 +01:00
Pedro Alvarez 960c0e97cd Added handling of RRC re-establishment to srsENB.
* Added the appropriate code for handling and sending the
   re-establishment procedure messages to rrc_ue.c/.h.
 * Triggered RRC reconfiguration after the reception of RRC
   re-establishment complete
 * Refreshed K_eNB at the reception of re-establishment
   request
 * Changed the mapping of TEIDs to RNTIs in the GTP-U layer,
   as the RNTI might change with reestablishment.
2020-06-02 11:19:17 +01:00
Daniel Willmann 0e99e2f6eb srsue: Refactor definition to live in its own .cc file 2020-06-02 10:05:38 +02:00
Francisco Paisana 8f4f37e89b remove more unused rrc variables 2020-06-01 19:59:50 +01:00
Francisco Paisana 29fd147d41 remove unused rrc variables 2020-06-01 19:59:50 +01:00
Francisco Paisana b2aae8763b made mac_nr and rrc_nr final to avoid using virtual dtors 2020-06-01 19:59:50 +01:00
Francisco Paisana 76a3c0ed1c removed deadcode 2020-05-29 14:11:23 +01:00
Francisco Paisana 452c043370 created a global map of lcids to srbs/drbs for NR 2020-05-29 14:11:23 +01:00
Francisco Paisana 4cf756434f add srsue::rrc_nr srsue::ue_stack_nr 2020-05-29 14:11:23 +01:00
Francisco Paisana 6a164e032d added srsue::rrc_nr 2020-05-29 14:11:23 +01:00
chaolinyi bbe25a00d4 Update proc_ra.cc to bugfix RA-RNTI calculation
Bugfix the wrong ra_rnti calculation in ra_proc::state_pdcch_setup.
According to TS 36.321 Subsection 5.1.4 Random Access Response reception, we can see the formula on RA-RNTI, which is,
    RA-RNTI= 1 + t_id + 10*f_id,
where t_id is the index of the first subframe of the specified PRACH (0≤ t_id <10), and f_id is the index of the specified PRACH within that subframe, in ascending order of frequency domain (0≤ f_id< 6). Then, reading the srslte source code, we can see that, the code should bugfix. 
BTW, the wrong code can run normal for LTE_FDD, causing of the info_f_id = 0; but it should be wrong, when it is LTE_TDD.
2020-05-28 23:11:37 +02:00
Ismael Gomez 6a19a19f00 Fix memory fault during exiting and waiting for worker 2020-05-26 14:55:37 +02:00
Francisco Paisana 9a0ea6e08c use log_helper for log macros 2020-05-26 10:02:08 +01:00
Francisco Paisana edba7f57e4 corrected mac_nr_pdu includes 2020-05-26 10:02:08 +01:00
Francisco Paisana 0b701022a3 added ue nr mac 2020-05-26 10:02:08 +01:00
Francisco Paisana d36ae722d5 added extra debug logs 2020-05-22 16:46:42 +01:00
Ismael Gomez 5d42d16b79 Do not cancel Regular BSR after triggering SR. Fixes mac_test 2020-05-21 15:36:44 +01:00
Ismael Gomez b5ccbf1891 Simplify relationship between BSR, SR and RA procedures. Fix issue #1346 2020-05-21 15:36:44 +01:00
Xavier Arteaga e605a6f367 UE PHY test disabled due to unstable behaviour 2020-05-12 15:56:23 +02:00
Xavier Arteaga 0d2b3eb55d Removed ue_phy_test log overload 2020-05-12 15:56:23 +02:00
Xavier Arteaga ac0e347d94 SRSUE: refactored sync.cc and clean up 2020-05-12 15:56:23 +02:00
Xavier Arteaga 2d8bd0692a SRSUE: fix and enable UE PHY test 2020-05-12 15:56:23 +02:00
Xavier Arteaga dc927b745a SRSUE Removed async_scell_recv.h 2020-05-12 15:56:23 +02:00
faluco d80bce79e0 Fix for 1489462. 2020-05-07 18:53:40 +02:00
faluco eb69321649 Fix for issue 1476278. 2020-05-07 10:12:29 +02:00
faluco 9efa24bfa9 More warning fixes. 2020-05-07 10:10:24 +02:00
faluco 7ff251f112 - Fixed warnings caught by Clang 9.0.0 2020-05-07 10:10:24 +02:00
Pedro Alvarez 2ea78c8feb Added configuration options for stack logging. 2020-05-05 14:34:47 +01:00
Ismael Gomez 8c82203c74 Removed unused pregenerate option 2020-05-01 21:05:00 +02:00
Andre Puschmann 25ab36ddd5 nas: fix UE not attaching if PLMN isn't found after switching on
if no cell/PLMN can be found if the UE is switched on, the UE was never
trying again.
In theory this would be handled by T3410, but the timer
is not started in case the PLMN search isn't done yet.
2020-05-01 21:03:47 +02:00
Andre Puschmann ead2acf70c ue: add info to check ue log file when param parsing failed 2020-05-01 21:03:47 +02:00
Andre Puschmann 552179a113 srsue: flush CSV metrics before stopping 2020-04-29 18:56:10 +02:00
Francisco Paisana de4d58d8fe fix coverity scan issues in master 2020-04-29 11:17:00 +02:00
Xavier Arteaga 9d0a3268e8 Added DL channel estimator algorithm options 2020-04-28 17:26:01 +02:00
Francisco Paisana 38f848ecdf fix type name deducing for clang 2020-04-27 22:19:08 +01:00
Francisco Paisana af9ca9f9e5 remove unecessary moves 2020-04-27 22:19:08 +01:00
Francisco Paisana 12b2ea7dde remove warnings for base classes with no virtual dtors 2020-04-27 22:19:08 +01:00
Francisco Paisana b8e6ba02e4 remove warnings related to unused vars and fwd declarations with trivial dtors 2020-04-27 22:19:08 +01:00
yagoda 8e0b106c22 fixing some warnings from LGTM 2020-04-27 20:59:40 +02:00
Andre Puschmann 1e0c8ead4c srsue,sync: fix TTI gap calculation and reporting
The current TTI gap calculation assumes strict continuity
of radio time stamps, even when retuning, changing sample rate, etc.

This is certainly desireble but not necessaritly the case and may cause
issues when negative time gaps or too large gaps are detected and reported
to the stack.

this patch makes the assumption that valid TTI jumps are between 1ms
and 1s and that larger gaps are the result of screwed time-stamps
or too long radio operations.
2020-04-27 17:01:02 +02:00
Andre Puschmann 3aa0179caf {ue,enb}.conf.example: add zmq examples to config
the examples are commented but by just uncommenting those
two lines the user should be able to run a eNB and UE on the same
machine in SISO mode over ZMQ
2020-04-27 11:03:48 +02:00
Francisco Paisana b506e29b72 removed common ce_typeenum 2020-04-24 11:55:53 +01:00
Xavier Arteaga 58803d1b3e Added UL EARFCN map and UE PHY interface cleanup 2020-04-23 09:00:45 +02:00