2343 Commits (96fd3aae3c749926b55558e3cbfde4e3c5e672cc)

Author SHA1 Message Date
Ismael Gomez 709d69d55f Reset rv_idx after an adaptive retx in UE 4 years ago
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
4 years ago
Francisco Paisana 510959b50f update nr asn1 files, and asn1 tests 4 years ago
Andre Puschmann 082e002b67 nas: fix airplane mode simulation
the current implementation was somehow broken after a
NAS refactor. It was undetected because we didn't really
use it.

this fixes the simulation by using a single timer to simulate
airplane mode transitions.
the timer is rearmed in the timer_expire() function
if the correspondig event is set.

Has been tested to work well with, e.g.:

--sim.airplane_t_on_ms 5000 --sim.airplane_t_off_ms 10000
4 years ago
Xavier Arteaga 32ea840a30 INTRA: better ring-buffer protection 4 years ago
Xavier Arteaga 369cffec00 More deterministic SCell search test 4 years ago
Xavier Arteaga a5f9ea5654 SRSUE: force paging for every cell reselection procedure end 4 years ago
Andre Puschmann fd5cde525c proc_bsr: fix race condition in BSR reporting
fix for #1934

This fixes a race condition between Stack thread and DL
PDU processing that lead to updates of the RLC buffer that
are undetected by the BSR routine.

What happens is that in a UL SCH PDU all outstanding data is transmitted
and and a LBSR with all zero buffers is sent.

14:39:47.327301 [MAC ] [D] [ 3793] BSR:   LCID=3 old_buffer=59
14:39:47.330600 [MAC ] [I] [ 3793] UL LCID=3 len=58 LBSR: b=0 0 0 0

Note that "old_buffer" isn't set to zero here.

At the same time (same TTI), the MAC PDU processing thread handles DL-SCH PDUs
that may generate new UL PDUs:

14:39:47.330749 [RLC ] [I] DRB1 Tx SDU (54 B, tx_sdu_queue_len=1)
14:39:47.330762 [RLC ] [I] DRB1 Tx SDU (54 B, tx_sdu_queue_len=2)
14:39:47.330775 [RLC ] [I] DRB1 Tx SDU (54 B, tx_sdu_queue_len=3)
..

Those PDUs are "new data" since the previous buffer state was zero.

Here is the race now between the threads, at the end of the bsr::step() function
old_buffer of each LCG is updated with the previous new_buffer, so
the buffer state of LCG=2 is now 59.

Now MAC starts the next TTI:

14:39:47.331910 [MAC ] [D] [ 3794] Running MAC tti=3794
14:39:47.331928 [MAC ] [D] [ 3794] Update Bj: lcid=0, Bj=0
14:39:47.331934 [MAC ] [D] [ 3794] Update Bj: lcid=1, Bj=0
14:39:47.331938 [MAC ] [D] [ 3794] Update Bj: lcid=2, Bj=0
14:39:47.331941 [MAC ] [D] [ 3794] Update Bj: lcid=3, Bj=-1752
14:39:47.331951 [MAC ] [D] [ 3794] BSR:   LCID=0 update new buffer=0
14:39:47.331960 [MAC ] [D] [ 3794] BSR:   LCID=1 update new buffer=0
14:39:47.331964 [MAC ] [D] [ 3794] BSR:   LCID=2 update new buffer=0
14:39:47.331971 [MAC ] [D] [ 3794] BSR:   LCID=3 update new buffer=335
14:39:47.331976 [MAC ] [D] [ 3794] BSR:    check_new_data() -> get_buffer_state_lcg(0)=0
14:39:47.331980 [MAC ] [D] [ 3794] BSR:    check_new_data() -> get_buffer_state_lcg(1)=0
14:39:47.331984 [MAC ] [D] [ 3794] BSR:    check_new_data() -> get_buffer_state_lcg(2)=59
14:39:47.331988 [MAC ] [D] [ 3794] BSR:    check_new_data() -> get_buffer_state_lcg(3)=0
14:39:47.331993 [MAC ] [D] [ 3794] BSR:   LCID=0 old_buffer=0
14:39:47.332000 [MAC ] [D] [ 3794] BSR:   LCID=1 old_buffer=0
14:39:47.332003 [MAC ] [D] [ 3794] BSR:   LCID=2 old_buffer=0
14:39:47.332007 [MAC ] [D] [ 3794] BSR:   LCID=3 old_buffer=335

And since the buffer state of LCG=2 isn't zero, the new data for LCID=3 of that LCG is considered.
So effectivly, the BSR missed the "empty" buffer state for a fraction of time and doesn't
consider the outgoing data generated in the same TTI as new. It therefore
doesn't transmit a BSR.

in which a BSR wasn't
4 years ago
Andre Puschmann 465c3d9186 proc_sr: remove info log when starting SR proc
this was a very noisy log that was printed in pretty much
every TTI because the BSR procedure starts a SR whenever
it needs to send a regular BSR. The SR is canceled when a UL
grant arrives but the log line stays there.

Since we are printing a log when we actually signal a SR
to the PHY, this line is not needed.
4 years ago
Andre Puschmann 1e3ad5b0dc proc_bsr: fix high priority channel trigger logic
this fixes the trigger logic for periodic BSRs. Previously we
would always trigger the "new data for highest priority LCID"
whenever new data becomes available for a LCID for which
a BSR has already been sent.

However, a BSR should only be sent if the priority is in fact higher
(lower int number).
4 years ago
Andre Puschmann debbab93e8 mac_test: cosmetic change 4 years ago
Andre Puschmann e89254ad1f mac_test: fix mac_ra_test according to BSR changes
the BSR routine had a bug in which it would generate a BSR even
before the reTx timer expires if new data becomes availble
for a LCID that already had data and a BSR was already sent.

The RA test here relies on a BSR in the generated MAC PDU to pass.

However, since after fixing the BSR bug the PDU the MUX unit
no longer generates a BSR, we need generate data for a LCID
which has higher priority than the one for which a BSR has
already been sent.
4 years ago
Andre Puschmann d6ef66b0dc mac_test: add periodic BSR test 4 years ago
Andre Puschmann d5286e70aa proc_bsr: refactor and add extra print_state() method
allows to call the print_state() routine from other places in the BSR
4 years ago
Andre Puschmann d1ef5bd915 demux: log DL PDUs
instead of just printing the LCIDs that contain SDUs,
we use the to_string() function to log the entire MAC DL-SCH PDU
4 years ago
Andre Puschmann 0740154bff rrc,sync: fix two uninit vars
detected by Valgrind when running UE with TDD cell
4 years ago
Andre Puschmann 58776bc227
ue,sync: increase timeout for entering IDLE to 2s (#1941)
in ZMQ runs we've seen that entering idle could take quite
a bit of time depending how quickly workers get their samples
sent or reconfigurations done.

In one example up to ~160ms

this patch increases the maximum wait time to 2s.
4 years ago
Francisco Paisana 514deaf25b fix resetting of phy and mac during reestablishment 4 years ago
Xavier Arteaga 03b88f6149 Added noise to neighbour cell search test 4 years ago
Xavier Arteaga caf37b8e62 Added serving cell index in UCI/CSI report trace 4 years ago
Andre Puschmann 3b1ae970b9 metrics_test: fix uninit variable 4 years ago
Andre Puschmann a366500a78 rrc_proc: init cs_result to none
detected by Coverity CID 363053
4 years ago
Andre Puschmann d51a060bfa nas_test: fix potential out of bounds access 4 years ago
Andre Puschmann 1bbbc9d717 rrc_phy_ctrl_test: fix uninit memory 4 years ago
Francisco Paisana 0842ed9db1 fixed phy cell selection state update for the fail path 4 years ago
Francisco Paisana 665b3996bb now the phy controller handles the scenario where the phy cell selection failed to be initialized 4 years ago
Andre Puschmann 287c653755 proc_bsr: improve BSR logging to print name of triggered BSR instead of enum 4 years ago
Andre Puschmann 3994407f46 proc_bsr: fix BSR insertion in UL PDUs
the BSR trigger wasn't reset after includinga regular or periodic
BSR inside a PDU. This caused the muxing to include another BSR in the
next UL grant. For very small grants, for example with 6 PRBs, this
causes the UE to send way too many BSRs.
4 years ago
Andre Puschmann 7352bfa4bd mac_test: add unit test for retxBSR timer
this test varifies the correct operation of the retxBSR timer.
the first PDU includes a long BSR to indicate more LCGs have
data to transmit. The retxBSR timer is started and subsequent
PDUs should not send a regular BSR.

After the retxBSR timer expires, a UL PDU should again include
a BSR.
4 years ago
Andre Puschmann 937067a205 proc_phr: rename start_periodic_timer() and make sure its only started if a valid config is present 4 years ago
Andre Puschmann fab86382c1 mac,rrc: add interface to set SR config explicitly without touching any other MAC function
when releasing PUCCH/SRS (see 5.3.13 in 36.331) we need to reset the SR config as well.
In our case, SR is handled by MAC so we need to (re-)configure MAC, not all of
MAC though, just SR.
4 years ago
Francisco Paisana e7239163e9 silence noisy unhandled in_sync_ev logs 4 years ago
Francisco Paisana f185272367 added comments explaining the meaning of the cell reselection procedures 4 years ago
Francisco Paisana 49e7b8e36e - Change periodicity of cell reselection after a new serving cell has been selected
- Enable PHY intra measurements during RRC_IDLE
4 years ago
Francisco Paisana 585d7c923a refactor and simplification of cell selection procedure. Using now a SIB3 threshold to decide whether to select neighbor cell while in RRC_IDLE 4 years ago
Francisco Paisana cae116932b rewrite the rrc::leave_connected() function to better match the standard. The measurements should not stop while in RRC_IDLE. 4 years ago
Pedro Alvarez 5a4e71a6e4 Created k_enb_context structure that holds k_enb, NCC and NH to make it easier to restore context from failed handover. 4 years ago
Pedro Alvarez bcb422736c Save and restore NH on handover and handover failure. 4 years ago
Xavier Arteaga 08e24d00af Fix TA console trace 4 years ago
Pedro Alvarez 3eb525563a Fix issue reading MNC length in USIM. 4 years ago
Xavier Arteaga 6ae47b6510 SRSUE: Deafult PUCCH/SRS does not imply full PHY dedicated defaults 4 years ago
Andre Puschmann 5e95fd4a43 ul_harq: reduce log level for new_grant_ul() if RNTI isn't found
this avoid logging a warning on UE shutdown if the MAC is already reset
but one of the PHY workers still decodes an UL grant for the old RTNI

21:30:29.254844 [RRC ] [I] Going RRC_IDLE
21:30:29.254848 [RRC ] [I] Proc "Go Idle" - Left connected state
21:30:29.259499 [PHY0] [I] [ 3865] Finished setting new PHY configuration cc_idx=0
21:30:29.259512 [PHY0] [I] [ 3865] Setting new PHY configuration cc_idx=0...
21:30:29.264190 [PHY0] [I] [ 3867] Finished setting new PHY configuration cc_idx=0
21:30:29.275036 [PHY1] [I] [ 3872] PHICH: hi=1, corr=1.0, I_lowest=1, n_dmrs=0, I_phich=0
21:30:29.275050 [MAC ] [W] [ 3872] Received grant for unknown rnti=0x46
4 years ago
Andre Puschmann 362461329a rrc: improve log message when detecting RLF 4 years ago
Andre Puschmann 76c648106f rrc: remove varMeasState for unknown neighbor cells
this fixes issue #1846 that appears to be related
to the enter/exit state for measurements that is kept
even after a cell disappears from the neighbor list
4 years ago
Andre Puschmann 829dfc4e60 metrics_stdout: fix precision calculation for 100%
the precision for 100% was causing the default value of -1 which in turn
cause to print the full precision resulting in ugly stdout plots.

before:
--------Signal--------------DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo   mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   0   -10    74    0.0   0.0   0.0   0.0   200k     0%   0.0   0.0    0.0    0.0     0%
 1   0   0.0   0.0    0.0   0.0   0.0   0.0   150k100.000000%   0.0   0.0    0.0    0.0     0%

after:
--------Signal--------------DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo   mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   0   -10    74    0.0   0.0   0.0   0.0   200k     0%   0.0   0.0    0.0    0.0     0%
 1   0   0.0   0.0    0.0   0.0   0.0   0.0   150k   100%   0.0   0.0    0.0    0.0     0%
4 years ago
Andre Puschmann e72219789e ul_harq: don't clear payload buffer during HARQ reset
this fixes #1791 which was caused by a race between
the PHY workers preparing a new UL-SCH PDU and the Stack resetting
the MAC, which in turn resets the HARQ processeses, which cleared
the buffer and set the length to zero.

Not explicitly clearing the buffer on a HARQ reset seems to be
fine since the PHY worker clears the buffer before starting to
pack a new PDU anyway.
4 years ago
Pedro Alvarez 22a6dc305f Moved common variables and functions from the usim and pcsc_usim classes into usim_base class. 4 years ago
Francisco Paisana 8a917bdd06 fix RRC phy controller call to phy->set_config. Only the PCell was being configured 4 years ago
Francisco Paisana 4ebe92f6a3 refactor phy configuration in the rrc to keep track of activated scells, and cells configurations 4 years ago
Francisco Paisana cfc77118d3 disable console print of scell activation command during handover 4 years ago
Francisco Paisana d910c910a4 rrc::meas_cell now uses stack timers instead of system timers. 4 years ago
Francisco Paisana 49ad1a4312 added unit test for meas cells 4 years ago
Francisco Paisana 023d32975a avoid use of pointers to meas_cells in ho_proc as they may become dangling 4 years ago
Francisco Paisana 072b7be582 renamed rrc::cell_t to rrc::meas_cell 4 years ago
Andre Puschmann d02e8135fb metrics_stdout: reset n_reports var after writing intermediate table header 4 years ago
Andre Puschmann 0ef8e1fdac rrc: include pci when logging serving cell measurement
this should facilitate easier log parsing and plotting
if the cell measurements _always_ include the PCI, even
in the case of the serving cell

15:49:11.357447 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.52 dBm, cfo=+0.1 Hz
15:49:11.391610 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.52 dBm, cfo=-0.4 Hz
15:49:11.427325 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.52 dBm, cfo=-0.6 Hz
15:49:11.463101 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.52 dBm, cfo=-0.7 Hz
15:49:11.499817 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.51 dBm, cfo=+0.1 Hz
15:49:11.499828 [RRC ] [I] MEAS:  New measurement neighbour cell: earfcn=2850, pci=0, rsrp=-12.16 dBm, cfo=-0.8 Hz
15:49:11.535027 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.46 dBm, cfo=-0.8 Hz
15:49:11.571707 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.46 dBm, cfo=-0.9 Hz
15:49:11.607932 [RRC ] [I] MEAS:  New measurement serving cell: earfcn=0, pci=1, rsrp=-11.52 dBm, cfo=-0.8 Hz
4 years ago
Andre Puschmann 6e0abd30dd ue,phy_common: include Pcell PCI in cell measurements
this allows easier plotting in RRC when PHY cell
measurements already include the PCI
4 years ago
Andre Puschmann baf171d446 rrc: improve SR configuration logging
* move logging of SR max attempts into MAC logging
* log new MAC config whenever it is updated
4 years ago
Andre Puschmann bf7c2b800e proc_sr: log error when trying to enable faulty SR config 4 years ago
Andre Puschmann 04acc78c7d metrics_test: add neighbor cell test
cleanup test and add neighbor cells so the displaying is tested

--------Signal--------------DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo   mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   0   -10    74    0.0   0.0   0.0   0.0   200k     0%   0.0   0.0    0.0    0.0     0%
 1   0   0.0   0.0    0.0   0.0   0.0   0.0   150k    50%   0.0   0.0    0.0    0.0     0%
--------Signal-------------Neighbour--DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo  pci  rsrp  mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   0   -10    74    0.0   8   -33   0.0   0.0   0.0   200k     0%   0.0   0.0    0.0    0.0     0%
 1   0   0.0   0.0    0.0   8   -33   0.0   0.0   0.0   150k    50%   0.0   0.0    0.0    0.0     0%
--------Signal--------------DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo   mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   0   -10    74    0.0   0.0   0.0   0.0   200k     0%   0.0   0.0    0.0    0.0     0%
 1   0   0.0   0.0    0.0   0.0   0.0   0.0   150k    50%   0.0   0.0    0.0    0.0     0%
 0   0   -10    74    0.0   0.0   0.0   0.0   200k     0%   0.0   0.0    0.0    0.0     0%
 1   0   0.0   0.0    0.0   0.0   0.0   0.0   150k    50%   0.0   0.0    0.0    0.0     0%
4 years ago
Andre Puschmann ddbf4e1645 metrics_stdout: print new table header if neighbour cells change
this fixes an issue where the stdout metrics isn't readable if the only
neighbour cell gets removed during the 10s where no table header is printed.

--------Signal--------------Neighbor----DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo  pci  rsrp  mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   2   -66    61  -3.3k   1   -76    11    18   1.1   8.4M     3%   0.0    21    262   167k     0%
 0   2   -65    60  -3.3k   1   -76    12    19   1.1   9.6M     2%   0.0    22    476   214k     0%
 0   2   -65    60  -3.3k   1   -76    16    22   1.3    13M     3%   0.0    23   1.1k   734k     0%
 0   2   -64    59  -3.3k   1   -76    17    23   1.3    15M     2%   0.0    23    602   424k     0%
 0   2   -63    58  -3.3k   1   -77    20    25   1.4    19M     3%   0.0    23    501   304k     0%
 0   2   -62    57  -3.3k   1   -77    22    27   1.8    20M    10%   0.0    22    417   418k     0%
 0   2   -61    56  -3.3k   1   -77    24    28   1.8    25M     9%   0.0    23    396   439k     0%
 0   2   -61    56  -3.3k   1   -77    26    29   1.5    23M    22%   0.0    23    841   407k     0%
 0   2   -60    55  -3.3k   1   -77    27    31   1.3    27M    11%   0.0    23    890   1.1M     0%
 0   2   -59    54  -3.3k   1   -77    27    32  1.00    30M     3%   0.0    23    583   524k     0%
 0   2   -59    54  -3.3k   1   -77    27    32  0.92    32M     1%   0.0    23   1.1k   503k     0%

--------Signal--------------DL-------------------------------------UL----------------------
cc pci  rsrp    pl    cfo   mcs   snr turbo  brate   bler   ta_us  mcs   buff  brate   bler
 0   2   -59    54  -3.3k    27    31   1.1    30M     4%   0.0    23   1.2k   529k     0%
 0   2   -60    55  -3.3k    27    30   1.4    25M    18%   0.0    23    540   442k     0%
 0   2   -61    56  -3.3k    26    29   1.6    23M    21%   0.0    23    536   429k     0%
 0   2   -62    57  -3.3k    24    28   1.8    23M    13%   0.0    23    834   456k     0%
 0   2   -62    57  -3.3k   1   -78    21    26   1.6    20M     7%   0.0    23    723   425k     0%
 0   2   -63    58  -3.3k   1   -76    17    22   1.1    15M     3%   0.0    23    470   267k     0%
 0   2   -64    59  -3.3k   1   -77    17    22   1.3    15M     3%   0.0    23    167   280k     0%
 0   2   -65    60  -3.3k   1   -76    14    21   1.3    11M     2%   0.0    22     57   223k     0%
 0   2   -65    60  -3.3k   1   -76    12    19   1.2   9.0M     3%   0.0    21    135   182k     0%
 0   2   -66    61  -3.4k   1   -70   9.3    17   1.0   6.9M     2%   0.0    21    246   126k     0%
 0   2   -67    62  -3.3k   1   -75   8.2    16   1.1   4.9M     3%   0.0    20    0.0   122k     0%
4 years ago
Pedro Alvarez 2f0125ef4e Fix issue recovering key state, when the first HO fails (specifically, is_first_ncc was not recovered). Minor improvements in key logging. 4 years ago
Francisco Paisana 1f2cca8909 in the rrc reconf procedure, handle the scenario where the rrc reconfiguration message does not config the phy 4 years ago
Francisco Paisana edd5c50f9a pass nas pdus after sending rrc reconf complete 4 years ago
Francisco Paisana cf89f4300a fix ttcn3 to signal back to stack that a phy config has been completed 4 years ago
Francisco Paisana c6f4776a6f send the nassdus sooner in the rrc reconf procedure 4 years ago
Francisco Paisana 2416e274a7 fix rrc_meas_test. The phy now needs to signal back to the rrc that the phy config is complete 4 years ago
Francisco Paisana fc49b5a030 implemented rrc reconfiguration procedure that includes a continuation when phy configuration is complete 4 years ago
Andre Puschmann 936e3b7bef mac_test: add manual test for TC 7.1.4.6 4 years ago
Andre Puschmann 5a9b1865e4 proc_bsr: fix typo 4 years ago
Xavier Arteaga ef9d77c966 SRSUE: add PRACH config present field in PHY configuration structure 4 years ago
faluco 51b27fc255
Import latest srslog version (#1796)
* - Import latest srslog version.
- Adjusted the nas_test to create logs correctly.
- Remove timestamp formatting now that is provided by srslog.
4 years ago
Francisco Paisana 924cc4f937 during cell selection, if the serving cell is ok, avoid calling serving cell configuration if the sibs are already acquired 4 years ago
Ismael Gomez 4e88daae21
Set DCI unpacking errors to info (#1781) 4 years ago
faluco dfeed52514 - Rename out_stream function to console. 4 years ago
faluco 62faef7c71 - Replaced all uses of the log::console method. 4 years ago
Francisco Paisana b3eb9651d6 disable cqi in scells during handover procedure 4 years ago
Ismael Gomez f4c7021a5f Appy phy configuration to current_phy_cfg before sending to PHY after HO 4 years ago
Francisco Paisana 8a9a95a937 ensure sibs are acquired if cell selection calls cell search 4 years ago
Francisco Paisana af3ff5985e removal of console print of last selected cell during the cell selection procedure. 4 years ago
Francisco Paisana c33e94fede fix conformace 8_5_1_1 failure 4 years ago
Francisco Paisana 045f647914 fix edge case where serving cell is good enough for reestablishment but the sibs are not yet acquired 4 years ago
Andre Puschmann f32d9f8322 ttcn3: call stop in UE dtor
fixes stop issue of TTCN3 DUT
4 years ago
Ismael Gomez d671e39c93 Fix SINR not correctly considering noise. Missed dBm conversion 4 years ago
Francisco Paisana 5ecbe8fb17 cleanup of the reestablishment procedure state machine. It does not need to wait for the serving cell configuration because such procedure is already included in the cell selection procedure 4 years ago
Pedro Alvarez b3bfe336a9 Make sure that remote address test has a ip mask 4 years ago
Sylvain Munaut 6ce5863f03 test/tft_test: Add a combined test for IPv6 packets 4 years ago
Sylvain Munaut 9ba8b62972 test/tft_test: Update filter test suite
The “IPv4 local address type” filter should be 9 bytes since it includes
not only the ip address, but also its subnet mask.

Quoting from 3GPP TS 24.008 10.5.6.12:
"""
 For "IPv4 remote address type", the packet filter component value field
 shall be encoded as a sequence of a four octet IPv4 address field and a
 four octet IPv4 address mask field. The IPv4 address field shall be
 transmitted first. For "IPv4 local address type", the packet filter
 component value field shall be encoded as defined for "IPv4 remote
 address type".
"""

Same for the ToS which also includes a 1 byte mask value
4 years ago
Sylvain Munaut 5783c01cbb tf_packet_filter: Improve support for the different filter types 4 years ago
Ismael Gomez bb691f0cbe
Fix priority order in BSR trigger. Was not being triggered if SRB2 data was pending in the buffer (#1771) 4 years ago
Ismael Gomez 8c30822350 Fix bug in update_measurements() not reporting in_sync in single carrier 4 years ago
Francisco Paisana 0997daa7a0 now the handover procedure in the srsUE does not wait for the phy cell selection result. It only waits for the RA result 4 years ago
Ismael Gomez c75c463263
Use SNR instead of SINR for RLF threshold (#1769)
* Use SNR instead of SINR for RLF threshold

* Send in/out-sync only for cc_idx=0
4 years ago
Ismael Gomez 76bfc78147
Fix issues with Sounding-RS (#1761)
* Fix deadlock caused by update_measurements calling in_sync

* Fix overlapping SRS condition

* Do not use shortened PUSCH in transmissions and retx from RAR

* Revert "Fix deadlock caused by update_measurements calling in_sync"

This reverts commit f58c8c8c766f8f95baa3a3bf8287d8e25b2057ba.
4 years ago
Francisco Paisana 2d321231df fix reest proc. The reest proc state has to be set before launching the procedure, because the procedure can complete immediately on launch call 4 years ago
Pedro Alvarez 86f4d469c6 Added some functions to save and restore AS keys for the case of failed handover in the USIM 4 years ago
Francisco Paisana 81ab4c1a65 make sure ho procedure waits for t304 expiry in all cases 4 years ago
Ismael Gomez b94d24ed98
Take into account CRS from neigbhour cells when measuring interference (#1757)
* Take into account CRS from neigbhour cells when measuring interference

* fix std::isnormal compilation

* Fixed compilation of test

* Address comments

* Remove unused overrides
4 years ago
Francisco Paisana cf89d6645b add comments explaining each function of the reest procedure 4 years ago
Francisco Paisana d068d594af implemented rrc reestablishment procedure part after sending reest request 4 years ago
Francisco Paisana 7d6c9a1751 Add cause and cell pci to reestablishment console message 4 years ago
Francisco Paisana 73e21daeb2 refactor reestablishment procedure to more closely follow TS. 4 years ago
Andre Puschmann 1afc137032
[REBASE] Make PHY non-blocking and fefactor HO procedure (#1753)
* Make PHY non-blocking and fefactor HO procedure

* makes entire PHY non-blocking through command interface
* adds dedicated queue for cell_search/cell_select commands
* refactor HO procedure to run faster, in one stack cycle. Looks closer to the specs
* force ue to always apply SIB2 configuration during reestablishment
* Run update_measurements in all workers

Co-authored-by: Ismael Gomez <ismagom@gmail.com>
4 years ago
Ismael Gomez 399b986d0b
Fix deadlock caused by update_measurements calling in_sync (#1760) 4 years ago
Francisco Paisana eb370642ab verify cell selection observer is set before calling it 4 years ago
Francisco Paisana 7f8af023b8 added a callback that always gets triggered when the phy cell selection completes. This callback checks if cell selection failed, and if so, sets the rsrp of the selected cell to -infinity 4 years ago
faluco f0d651ae8e - Fixed a leak in the MME class not releasing the static byte buffer pool.
- Now the pool gets destroyed on program exit using a unique_ptr.
- Removed manual cleanup() calls in all the code base to free the pool instance.
4 years ago
Ismael Gomez 5968157ea5
Protect better the access to shared variables in phy_common and metrics (#1750) 4 years ago
Andre Puschmann eeb2b904aa ue,rach: fix failing RACH proc when Msg3 grant RNTI matches current CRNTI
this was preventing that the Temp-CRNTI used in the RAR to be identical
to the currently configured C-RNTI of the UE.

The issue simply was that the RACH procedure was declared successful too
early, even before the Msg3 UL grant was filled with the Msg3 content.

The patch moves the logic that detects the successful completion of
the RACH procedure below the Msg3 packing.
4 years ago
Andre Puschmann a36f9bddc2 ttcn3: use RNTI values in RACH provided by tester
this patch extends the SS to use the C-RNTI and Temp CRNTI values
provided by the tester for RAR and Msg3.
4 years ago
faluco e14cb4b405 - Fix a missing thread join in the phy which caused a memory leak. 4 years ago
faluco 5acc1c9a73 - Cleaned up style in the PRACH class:
* Removed magic numbers.
* Reduced indentation of statements with early exists.
* Removed elses after a return statement.
* Trimmed unnecessary include files.
* Default initialized members in the class.
4 years ago
faluco b6bbe8761a - Remove left over printf. 4 years ago
faluco 79f5b62551 - Calculate PRACH buffers on the fly when required instead of pregenerating all of them. 4 years ago
Andre Puschmann b616944a13 ue,rrc: fix security config during HO/reestablishment
we fix a number of very related issues for HO/reestablishment
in the success/error case:

* this patch removes the hard-coded check that intra-cell HO aren't
allowed. There are cases where eNBs use this method to update
the security context.

* the patch also fixes an issue after failed HO where the security context
of the source eNB should be used for the reestablishment.

* update security keys according to specs when mobilitycontrol
indicated change of key
4 years ago
Andre Puschmann d90de639e5 ttcn3_syssim: continue when epoll returns -1
this allows to debug and step in the SS
4 years ago
Andre Puschmann 1b266257a1 ttcn3_phy: improve logging of cell measurements 4 years ago
Andre Puschmann 6827c2df21 rrc_meas: disable layer3 filtering until quantity config is received
the filter alpha was initialized to zero by default which causes an
issue because the first measurement for a cell can't be updated,
because the filtering function will always return the current value.

According to 36.331 Sec 5.5.3.2 Note 2, a k-value of 0 should turn
off filtering, which should be used as the default value until
an update is received from the network.
4 years ago
Francisco Paisana 97133894e6 the Ocs value used in the measReport triggering decision was not being set correctly. The enum of the cell individual offset in the measCfg was being cast to an int and stored. Instead what we want is to store the actual offset value using the ASN1 enum->number lookup table. 4 years ago
Xavier Arteaga 44c2412be2 SRSUE: silent PUSCH encoding error by dropping invalid grant 4 years ago
Francisco Paisana 739c0c5c00 altered plmn search procedure handling of failed cell searches. If a cell search procedure fails due to inability to select a cell or acquire SIB1, the plmn search carries on for other frequencies. 4 years ago
Andre Puschmann 3088cdbb0f ttcn3: fix uncaught exception in SS
fix accessing child element in parsed Json without checking
its existence.
4 years ago
Andre Puschmann 8df388ba3e usim: fix typo in log 4 years ago
Andre Puschmann 3e824f6370 ttcn3: convert TTI action vector to queue
this makes sures queued events are executed FIFO
4 years ago
Andre Puschmann 624c8142ad ttcn3: refactor cell handling in SS
this rather large patch changes the way cells are handled in the SS.
It moves RLC and PDCP entities to the cell map of the SS, such that each cell
has its own entities. This allows to support HO operation, for example,
in which two cells need to send SRB messages.

It also extends most of the syssim interface to include the cell name
in all commands so they can be applied on the specified cell only.
4 years ago
Andre Puschmann 4650a620d9 ttcn3: refactor cell search and selection in TTCN3 PHY
- make sure only suitable cells are reported/selected
4 years ago
Andre Puschmann 973de8f78d ttcn3_dut: block OS signals before starting log backend
this prevents the backend thread from handling the signals. they
are only handled by epoll running in the main thread.

this fixes #1713
4 years ago
Ismael Gomez b397878d25 Fix comments in ue.conf 4 years ago
faluco c178e362b8 - Rewrite log management so that a log sink can be swapped for each testcase. 4 years ago
faluco 5e8a4c898d
Bring back the circular array object. (#1712) 4 years ago
Xavier Arteaga 52355024e7 SRSUE PHY: move mutex lock to cc worker and unlock for stack calls 4 years ago
Ismael Gomez 4c1d3ef7e8
Fix implementation of Random Access problem (#1689)
* Fix implementation of Random Access problem

* Apply AS activated condition on RLF before calling Reestablishment
4 years ago
Ismael Gomez f49fbd6d02
Fix the order of HO/reest measurement actions (#1696) 4 years ago
Andre Puschmann c16ac6c890 ue_stack: only push sync event to event queue is stack is still running
stopping the UE in ZMQ mode caused a dead-lock because the Stack was
stopped before the PHY causing the sync queue to overflow. Since we
use a queue-length of 1 in ZMQ, mode, the PHY sync thread was blocking to
push a new sync event while the stack thread was already stopped.

this patch makes sure no new sync events are queued after the stack has
been terminated.
4 years ago
Andre Puschmann aec18a93d1 mux,bsr: refactor UL buffer status reporting
this patch fixes the UL BSR as per TS 36.321, it includes following
main changes:

* report UL buffer state to reflect the UEs transmit buffer after
  the MAC UL PDU containing the BSR has been built.
  In other words, if the UE, for example, can transmit all outstanding
  data in an UL grant, it will not report any pending data to transmit.

* refactor MUX routines and subheader space calculation
4 years ago
Andre Puschmann 92d76a5eb6 mac_test: update tests involving BSR handling
* split existing BSR test into dedicated test for short, long, and trunc
  BSR tests

* update MAC tests that include packing UL BSR.
  (After checking TS 36.321 again it seems we have reported old UL buffer states)
4 years ago
Ismael Gomez 54eed11e1d Refactor decision for extended CSI/SRS 4 years ago
Ismael Gomez 51521ad8e4 Improved PDCCH blind search and fixed a few issues with ambiguous DCI size with Release 10 4 years ago
Andre Puschmann 14289ebcc6 dl_harq: lower log level when MCS changes in DL grant to debug
fixes #1489

this is normal behavior and should not result in a warning message.
4 years ago
Ismael Gomez 06a5bdaab2 Process all calls to RLF in the main RRC task 4 years ago
Francisco Paisana 92221eb780 update of rrc_interface_mac to remove signal from mac to rrc that RA failed in case of handover failure 4 years ago
Francisco Paisana 46e1e101d3 removal of unecessary ho_ra_complete(false) in mac. In case of HO failure, the rrc should let the t304 expire 4 years ago
Francisco Paisana aed9120458 in case of RA problem during handover, the UE cannot trigger RLF. It has to let t304 expire, which will then trigger the reestablishment procedure with the right cause 4 years ago
Francisco Paisana fca1273b3e avoid spurious warnings of trying to start the PRACH when it is already running during handover 4 years ago
Francisco Paisana fddcc3d8ea In the case of Handover, postpone the activation of the CQI and SR config present in the HO command for after the RA proc completion to the target eNB 4 years ago
Andre Puschmann 641a4a5e79 mac_test: fix compilation if PCAP write is enabled 4 years ago
Andre Puschmann 49a7a90698 mac: simplify BSR packing logic
simplify logic to check whether a BSR fits and, if so, which type.
before the check has been done in two places.

we now also accomodate for the CE subheader size.
4 years ago
Andre Puschmann 6364a4513c mac_pdu: fix issue when packing CE but no space left in PDU
we've not checked the return value when adding a new CE, like BSR or PHR,
for a UL MAC PDU. For very small UL grants, this could fail and
we need to remove the subheader again before packing the PDU.

This fixes issue #1649.
4 years ago
Daniel Willmann 7d0ae71f17 ttcn3_sys_interface: Handle initial cell attenuation
When new Cells are added they can have an attenuation configured
directly. Honor that setting.
4 years ago
Francisco Paisana 5242f9422b fix deadlock in handover 4 years ago
Ismael Gomez 72cc4e0ca5 Stop ContentionResolutionTimer on RA error. Updated test 4 years ago
Xavier Arteaga df2c949417 Radio: add individual Rx gain and integrate in srsue
Fix compilation

Fix compilation

Add missing variable. Wasn't compiling

Radio: revert some changes
4 years ago
Xavier Arteaga 029f36b449 srsLTE: added efficient integer resampler and srsue/srsenb integration 4 years ago
Xavier Arteaga 1ff74da078 Remove wrong error message 4 years ago
Francisco Paisana 75b204bc52 fix phy ctrl call to cell selection observers 4 years ago
Francisco Paisana 834c0b3929 integrated new observer pattern into phy controller fsm 4 years ago
Francisco Paisana 48dd436d86 integrated observer pattern into rrc phy ctrl fsm 4 years ago
Francisco Paisana 997552ee45 stop t304 when handover is successful 4 years ago
Francisco Paisana 1d8286eb62 always wait for t304 to expire in case of failed handover 4 years ago
Francisco Paisana ccc8ab70ef stop t304 on handover procedure exit 4 years ago
Francisco Paisana db15f43a77 set reestablishment cause correctly on handover failure 4 years ago
Francisco Paisana b1670c005b remove shadowed variables for reestablishment during handover 4 years ago
Xavier Arteaga 0e96ef3df0 Channel emulator takes SNR as input parameter 4 years ago
Andre Puschmann 5e40bfe72c mac_pdu: unpack and print BSR index as well as BSR value in bytes
before the BSR was extracted but the actual index (between 0 and 63)
was not stored but directly converted into bytes.

for log parsing and debugging it is easier to follow the index
value. this patch therefore adds both values to the log message
and extends the API accordingly.
4 years ago
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 4 years ago
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
4 years ago
Francisco Paisana 841b884796 remove extern C flags from common_helper.h 4 years ago
Francisco Paisana 5be5409f62 scaling governor function moved to common header file 4 years ago
Francisco Paisana 087805d222 add warning if scaling governor is not performance mode 4 years ago
Francisco Paisana 8d10aa906e move defer_task to switch case in the rrc 4 years ago
Andre Puschmann 24dfb03b9d rrc: defer manipulations of the RLC/PDCP arrays
all calls that manipulate the RLC and/or PDCP arrays suffer
from a high deadlock risk if a PHY worker holds the RLC
AM Rx mutex at the same time when the stack wants to carry
out this reconfiguration.

this applies to RRC Reconfigs, but potentially also to RRC Connection
Reestablishment or even RRC Connection Setup, although this should
seldom be the case.

By breaking the call stack between RLC->PDCP->RRC->RCL and
carrying out the reconfig as a single task without holding the
RLC readlock the deadlock should not happen anymore.

This should fix issue #1593
4 years ago
faluco e5a792d508 - Fix unused variable. 4 years ago
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
4 years ago
Xavier Arteaga 202ec283ff SRSUE: fix erroneous code in MUX 4 years ago
Xavier Arteaga 4e1e8cea1a SRSUE: MAC HARQ entities vector is fixed 4 years ago
Xavier Arteaga 09af743361 SRSUE: minor PHY modfifications 4 years ago
Xavier Arteaga 0b02f8948c SRSUE: fix shadow variable 4 years ago
Ismael Gomez c02e920b6b Trigger RA after SR failed directly (don't wait for next BSR trigger) 4 years ago
faluco efdff8ba4c
Import srslog into srsue (#1556)
- Import the srslog project into srslte.
- Ported srsue app to use the new logging framework.
- Implemented a wrapper that dispatches log entries to srslog.
- Renamed an existing log test to be more specific to avoid name clashes.
4 years ago
Andre Puschmann 1199a79851 fix Scell sync for large cells
the PSS detection needs more temporary buffer than a full subframe.
we therefore need to allocate and initialize the sync object with
larger maximum size to support Scell search of large cells, e.g.
20 MHz

this fixes issue #1538
4 years ago
Andre Puschmann ce5129467c correct default value of PHY threads in eNB and UE examples 4 years ago
Andre Puschmann 9550bd3ef8 rlc: revisit interface for MAC and RRC
* add locked and unlocked version of has_data() since one is
  called from stack and one from PHY threads

* add comments in each interface section as to why locking
  is required or not

* remove RLC rwlock when not required

* move calls only used by RRC to RRC section
4 years ago
Pedro Alvarez c686e6cea1
SRSUE: Set SCell configuration is unlocking (#1544) 4 years ago
Ismael Gomez 06eba7eb72 Discard cells if not found during cel selection 4 years ago
Andre Puschmann 138ec1f8e7 nas,usim: remove use of shadowed variables 4 years ago
Ismael Gomez 7866f19f6b Use correct target cell when doing reselection in HO 4 years ago
Ismael Gomez 443dee7035
Changes in Cell Selection Procedure (#1557)
* Fixes RRC cell reselection procedure
4 years ago
Xavier Arteaga 0192130742 SRSUE/SRSENB: UCI bits are carrier by the lowest serving cell index
SRSENB: Fix UCI in lowest serving cell index PUSCH transmission
4 years ago
Andre Puschmann 4fd5395903 change default EARFCN to 3350 or 2.68GHz
as 3400 or 2.685 GHz is on the edge of band 7, some phones won't connect
to a 20 MHz cell on this EARFCN.

In order to simplify testing with other bandwidths we change the default EARFCN.
4 years ago
Francisco Paisana 4fb8011a6d updated phy controller to use task scheduler 4 years ago
Francisco Paisana 36fc88d2e2 fsm log macros, and utility methods to convert event callbacks to move tasks 4 years ago
Francisco Paisana 9c5471b094 more ergonomic event callback 4 years ago
Francisco Paisana 58a9610efa use of stack event loop to propagate cell search and selection results 4 years ago
Francisco Paisana d48a45976e moved cell selection/search complete event signalling out of phy_controller 4 years ago
Francisco Paisana 48138b5281 removal of phy cell selection procedure as it now it is replaced by phy controller 4 years ago
Francisco Paisana 489969722e implemented phy controller FSM to perform cell selection & search. The controller also tracks the phy sync state 4 years ago
Andre Puschmann a7911f0dab pdcp,rlc: refactor SDU queueing policy
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.

When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.

To avoid this, this patch makes the following changes:

* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
  * a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
  * all writes into queues need to be non-blocking
  * if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
  * this case should be avoided with the monitoring mechanism
4 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 4 years ago
Francisco Paisana 7c364070ee creation of task scheduler interface for classes/functions running outside the main control thread 4 years ago
Francisco Paisana 039977aeb5 renamed interfaces 4 years ago
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 4 years ago
Francisco Paisana 4f5e65781f created task scheduler class to deal with timers, thread pool, multiqueue, internal tasks 4 years ago
Pedro Alvarez 528777fa29 Added sleep to avoid nas test concurrency issue. 4 years ago
Francisco Paisana 8c920837d6 fix issue when adding neighbour cell that matches serving cell 4 years ago
Francisco Paisana 43db9b81fb fix function ptr issue 4 years ago
Francisco Paisana d746115130 moved serving cell to meas_cell_list 4 years ago
Francisco Paisana 928459408e fix cell meas sorting issue 4 years ago
Francisco Paisana d2dd30c8cb rrc_meas_test failing 4 years ago
Francisco Paisana 9a1f69113f created class for managing neighbor cells of rrc 4 years ago
Francisco Paisana 069dc1f751 moved cell struct of srsue::rrc to separate file 4 years ago
Andre Puschmann 1e4eae7395 nas: log estimated count instead of local rx_count when logging integrity check result 4 years ago
Andre Puschmann bd0c13aad0 ue_stack: bump priority of stack thread
the stack thread should really run with the next highest priority after
sync + phy workers to make sure it gets enough CPU
4 years ago
Francisco Paisana 08f9801c76 remove requirement for rrc to be idle and nas attached to run reselection 4 years ago
Francisco Paisana d12b037e0d make cell reselection periodic and with period of 20msec 4 years ago
Francisco Paisana 510687766f added comments in rrc cell select test 4 years ago
Francisco Paisana c6f422d23e improved cell selection test in srsue::rrc 4 years ago
Francisco Paisana 3b1f2719dd return error from cell selection if unable to select serving cell 4 years ago
Francisco Paisana 3e016b8095 select serving cell during cell selection if it is stronger than neighbors 4 years ago
Andre Puschmann 218fa5cf55 ttcn3_dut: fix bug in DUT
reducing the sync queue len to 1 caused an issue when the
PHY was locking the mutex while trying to push a TTI event
on the stack.

instead of signaling the new TTI within the PHY, we now do it outside
in the DUT (after releasing the PHY mutex)
4 years ago
Francisco Paisana 84f34bc736 changed to a label filtering approach for ctest 4 years ago
Francisco Paisana ebb8f18000 set some extra tests with the prefix "long_" 4 years ago
Francisco Paisana c6323478d2 remove unecessary sleeps in mac test, and add long_ prefix in long tests 4 years ago
Pedro Alvarez 772ab89391 srsUE: Fix for NAS overflow counter computation. 4 years ago
Ismael Gomez 0382933cb1 Select serving cell if PHY not in sync 4 years ago
Ismael Gomez e378a45db0 Reorganized priorities to avoid GW starve the CPU 4 years ago
Francisco Paisana d7a0fe4060 improve log messages for CA 4 years ago
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).
...
4 years ago
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.
4 years ago
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
4 years ago
Andre Puschmann d16897c09a scell_sync: fix missing dtor freeing sync object 4 years ago
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.
4 years ago
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
4 years ago
Daniel Willmann 7a25d1d300 Send the RRC_PDU_IND as JSON
Fixes: srslte_ttcn3#13, srslte_ttcn3#15
4 years ago
Xavier Arteaga f8cc2d176d Fix typo 4 years ago
Xavier Arteaga 2f0c38fc70 SRSUE: avoid deadlock while configuring cell from stack 4 years ago
Francisco Paisana a0606669e2 fix ue nr gw initialization 4 years ago
Francisco Paisana fddcbc9879 fix vnf-ue stack interface 4 years ago
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
4 years ago
Andre Puschmann bf6ddbe976 ttcn3_drb_interface: use uint8_t and len as tx interface 4 years ago
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
4 years ago
Andre Puschmann 07f22326b4 pass current SS TTI when formatting DRB common IND 4 years ago
Daniel Willmann 8652f75510 Don't try to guess the lcid, use what we got 4 years ago
Daniel Willmann 0b88161b3c Send DRB PDUs as JSON to TTCN3 4 years ago
Daniel Willmann 31f1516d74 Use callback to establish connection before sending PDUs in TestmodeB 4 years ago
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()
4 years ago
Daniel Willmann a3adba0081 Implement DRB establishment and handle rx/tx 4 years ago
Daniel Willmann 999de5f484 ttcn3_helpers: Add function to generate JSON for DRB PDUs 4 years ago
Andre Puschmann aca307b79b ue,rrc: don't log neighbor list in info mode
this floods the info log
4 years ago
Francisco Paisana d7138b7752 fix nr activation guards 4 years ago
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
4 years ago
Francisco Paisana ddff68a546 add ifdef guards for NR code 4 years ago
Francisco Paisana 6735199728 fix nr optional linking 4 years ago
Francisco Paisana f0874b780b add radio_base/null classes 4 years ago
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
4 years ago
Xavier Arteaga 0e415260e9 SRSUE: scell_sync vector changed to map 4 years ago
Xavier Arteaga e0e8405285 SRSUE: initial scell sync
SRSUE: SCell Synch feedbacks delay

SRSUE: Implemented SCell Radio offset correction
4 years ago
Francisco Paisana a42c20b73d preemptive transmission of the rrc reconf complete 4 years ago
Ismael Gomez 54b331c504
Adds best neighbour to CSV and stdout metrics (#1440) 4 years ago
Xavier Arteaga 65a603f522 SRSUE: minor AGC code readability improvement 4 years ago
Xavier Arteaga f04cf2090a Integrates number of samples in radio buffer
Fix minor issue

Radio: Fix minor bug and add unit test
4 years ago
Xavier Arteaga de230826b9 Added string helper for removing spaces and parsing list
Fix

Fix string parser
4 years ago
Xavier Arteaga 89b24b54e5 Refactored radio class for acommodating multiple RF devices 4 years ago
Andre Puschmann d1cb5531d6 demux: fix typo 4 years ago
Andre Puschmann c71d6b9204 ue,rrc: improve error message when cell selection fails due to missing SIBs 4 years ago
Francisco Paisana 057980d1fb use common log helper macros 4 years ago
Francisco Paisana 0d38c33a60 rename ue phy nr class 4 years ago
Francisco Paisana 27e5d98ef9 added vnf phy nr 4 years ago
Pedro Alvarez 396dc82b98 Swapped resume with reestablish in the UE. 4 years ago
Xavier Arteaga 0e5704731e Removed UHD unrelated changes 4 years ago
Xavier Arteaga cd463d1b87 UHD: Initial C++ porting
UHD: cmakefix

x3
4 years ago
Andre Puschmann 8512c10286 create simple helper method to log command line arguments 4 years ago
Ismael Gomez 84b84eaad6 Move search_in_common variable 5 years ago
Ismael Gomez 9b634b8d2a Search DCI in UE space before common to avoid DCI size ambiguity. Fixes #1398 5 years ago
Francisco Paisana 17cd3a02cb fix pcch error message 5 years ago
Francisco Paisana 877dee2ba8 fix use of phy cell select procedure 5 years ago
Francisco Paisana 3d76cc6c1a fix dangling pointer in cell selection dispatching 5 years ago
Francisco Paisana 81848deae2 extended handover procedure to accommodate all the handover (phy cell select + ra) 5 years ago
Francisco Paisana 556fcb69e7 fix handover my defering to next tti the reestablishment of bearers 5 years ago
Francisco Paisana 71cac8f5b8 fix phy cell selection triggering 5 years ago
Francisco Paisana 37ce475398 fix+refactor of the ue rrc handover preparation procedure to avoid deadlocking 5 years ago
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.
5 years ago
Daniel Willmann 0e99e2f6eb srsue: Refactor definition to live in its own .cc file 5 years ago
Francisco Paisana 8f4f37e89b remove more unused rrc variables 5 years ago
Francisco Paisana 29fd147d41 remove unused rrc variables 5 years ago
Francisco Paisana b2aae8763b made mac_nr and rrc_nr final to avoid using virtual dtors 5 years ago
Francisco Paisana 76a3c0ed1c removed deadcode 5 years ago
Francisco Paisana 452c043370 created a global map of lcids to srbs/drbs for NR 5 years ago
Francisco Paisana 4cf756434f add srsue::rrc_nr srsue::ue_stack_nr 5 years ago
Francisco Paisana 6a164e032d added srsue::rrc_nr 5 years ago
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.
5 years ago
Ismael Gomez 6a19a19f00 Fix memory fault during exiting and waiting for worker 5 years ago
Francisco Paisana 9a0ea6e08c use log_helper for log macros 5 years ago
Francisco Paisana edba7f57e4 corrected mac_nr_pdu includes 5 years ago
Francisco Paisana 0b701022a3 added ue nr mac 5 years ago
Francisco Paisana d36ae722d5 added extra debug logs 5 years ago
Ismael Gomez 5d42d16b79 Do not cancel Regular BSR after triggering SR. Fixes mac_test 5 years ago
Ismael Gomez b5ccbf1891 Simplify relationship between BSR, SR and RA procedures. Fix issue #1346 5 years ago
Xavier Arteaga e605a6f367 UE PHY test disabled due to unstable behaviour 5 years ago
Xavier Arteaga 0d2b3eb55d Removed ue_phy_test log overload 5 years ago
Xavier Arteaga ac0e347d94 SRSUE: refactored sync.cc and clean up 5 years ago
Xavier Arteaga 2d8bd0692a SRSUE: fix and enable UE PHY test 5 years ago
Xavier Arteaga dc927b745a SRSUE Removed async_scell_recv.h 5 years ago
faluco d80bce79e0 Fix for 1489462. 5 years ago
faluco eb69321649 Fix for issue 1476278. 5 years ago
faluco 9efa24bfa9 More warning fixes. 5 years ago
faluco 7ff251f112 - Fixed warnings caught by Clang 9.0.0 5 years ago
Pedro Alvarez 2ea78c8feb Added configuration options for stack logging. 5 years ago
Ismael Gomez 8c82203c74 Removed unused pregenerate option 5 years ago
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.
5 years ago
Andre Puschmann ead2acf70c ue: add info to check ue log file when param parsing failed 5 years ago
Andre Puschmann 552179a113 srsue: flush CSV metrics before stopping 5 years ago
Francisco Paisana de4d58d8fe fix coverity scan issues in master 5 years ago
Xavier Arteaga 9d0a3268e8 Added DL channel estimator algorithm options 5 years ago
Francisco Paisana 38f848ecdf fix type name deducing for clang 5 years ago
Francisco Paisana af9ca9f9e5 remove unecessary moves 5 years ago
Francisco Paisana 12b2ea7dde remove warnings for base classes with no virtual dtors 5 years ago
Francisco Paisana b8e6ba02e4 remove warnings related to unused vars and fwd declarations with trivial dtors 5 years ago
yagoda 8e0b106c22 fixing some warnings from LGTM 5 years ago
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.
5 years ago
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
5 years ago
Francisco Paisana b506e29b72 removed common ce_typeenum 5 years ago
Xavier Arteaga 58803d1b3e Added UL EARFCN map and UE PHY interface cleanup 5 years ago
Xavier Arteaga 89dcd6339f More LGTM fixes 5 years ago
Xavier Arteaga 77d5dedddc Fix LGTM warnings and recommendations 5 years ago
Xavier Arteaga 562590e595 Fix LGTM warnings 5 years ago
Pedro Alvarez ad0abe740b Added support to PDCP SN len of 7. Also added a check for valid configs in pdcp entity. 5 years ago
Francisco Paisana 6ddedd5972 moved pdu to common mac folder 5 years ago
Xavier Arteaga e6792cf9b7 Refactored OFDM and added half CP window offset in UL Demodulator 5 years ago
Xavier Arteaga 4756319e8f Reduce PHY logging 5 years ago
Xavier Arteaga 11a2d2cc4a Fix and tidy up time offset in srsue 5 years ago
Francisco Paisana 28467d568d eliminated old way to schedule tasks using the heap 5 years ago
Andre Puschmann 2e7e61f53e rrc_meas: fix another compile error on 32bit 5 years ago
Andre Puschmann 8c925e90f5 rrc: fix compile error on 32bit machines 5 years ago
Andre Puschmann 20d9a83dac fix printfs of 64bit numbers when compiling for 32 bit
this caused issues when compiling in 32bit on RPi2
5 years ago
Xavier Arteaga 04c47e2b47 Added srsue argument for enabling EVM calculation 5 years ago
Xavier Arteaga 1cabe2d55f Load PDSCH configuration arguments 5 years ago
Francisco Paisana c09f76ed6c unified stack task defer method 5 years ago
Andre Puschmann d35c9e2b89 nas: add support ot UE test loop mode B
extend GW-NAS interface to signal test mode activation.
The method is a noop in the normal GW but is implemented in
the TTCN3 DUT according to TS 36.509 for Mode B
5 years ago
Andre Puschmann 66a799661e gw,tft: move traffic flow template matching into own class
this prepares the reuse of the matching functions for the TTCN3 DUT.
create own matcher class that the GW uses.
5 years ago
Xavier Arteaga 198684ce32 SRSUE: all TA control logic into a single class and faster TA response 5 years ago
Francisco Paisana a2ade9edd1 break down rrc_interface_types.h into multiple files. moved pdcp_config.h to same folder 5 years ago
Francisco Paisana 2950d26daa remove asn1 namespace from srsue files 5 years ago
Andre Puschmann 451bbb20e8 ttcn3_ss: refactor AS security activation and use new timed call 5 years ago
Ismael Gomez 309c10b0c6 Set CFO from initial cell search 5 years ago
Andre Puschmann 54a99d3f66 ttcn3_dut: add basic DRB handler skeleton
the handler is currently just listening on the designated port
and prints the received JSON string
5 years ago
Daniel Willmann 925225dbeb Implement Close UE Test Loop/Complete messages
This commit implements support for the CLOSE_UE_TEST_LOOP message.
Currently the mode is not saved and looping the data is not implemented.
Only the *_COMPLETE message is sent back as a response.
5 years ago
Andre Puschmann a4abd96ab6 nas: use MME security header when receiving identity request
this basically avoids sending a integrity protected or ciphered
identity response to a plain identity request
5 years ago
Andre Puschmann 4f8f6bf90c nas: add comment as to why attach request is only integrity protected 5 years ago
Andre Puschmann 84d80f3e32 ss: use factory method to create PDCP config for SRB 5 years ago
Andre Puschmann acc2948b45 nas: fix security handling
First of all, with this the NAS conformance tests pass with ciphering and
integrity turned on. Before only integrity was working.

Mainly the NAS was applying the integrity protection and/or ciphering
incorrectly because it wasn't taking the secuirty status of the PDUs
into account. Some where already correct, some not. The patch
streamlines the handling for all outgoing messages.
5 years ago
Xavier Arteaga 9a2b0b7cc7 Standard vector allocation uses vector library 5 years ago
Xavier Arteaga 25312e81b4 SRSUE: cell select RRC MEAS CFO is carried to PHY Cell object 5 years ago
Xavier Arteaga cbaba9c0bd Fix RRC and TTCN3 test 5 years ago
Xavier Arteaga 051e8fcc52 SRSUE: Apply default PHY config to SCell as well 5 years ago
Xavier Arteaga e9813375eb SRSUE: set SNR threshold for MIB decoding 5 years ago
Xavier Arteaga 6d355ab61e SRSUE: Fix HO initial CFO 5 years ago
Francisco Paisana 30ae2226c1 common interface for stack multiqueue tasks, background tasks and timers 5 years ago
Andre Puschmann 62e4bd9469 log_ptr: fix issue if accessing log_ptr that was reset already
during deinit of the UE/eNB it could happen that the log_ptr
was already set to null but the stack thread was still accessing
it through log_h->info()

i've moved the old macro into a new header and used as as much
as possible. there are still places in the code where similar
macros are used but we would need to change the variable name
to replace them
5 years ago
Andre Puschmann dbb8b6a360 nas: add helper for entering new state in FSM
the helper will log the event
5 years ago
Andre Puschmann ef80502047 nas: print attach attempts on console 5 years ago
Andre Puschmann f477c1d2e5 nas: allow starting a attach request procedure even if a PLMN is already selected
previously the NAS would cancel a attach request procedure if the PLMN
is already selected. PLMN selection, however, in not necessarily happening
before requesting RRC to establish a connection.
5 years ago
Andre Puschmann d8680cc9a8 nas: add helper to pack attach request and send to RRC 5 years ago
Andre Puschmann cf28276a3a nas: add helper function to reset NAS security context 5 years ago
Andre Puschmann 94c6034339 nas: rename start_attach_request to start_attach_proc
this is to better differentiate from "send_attach_request" that
only packs and send the actual attach request message. The
entire attach procedure may include PLMN search, etc.
5 years ago
Andre Puschmann 9239bb14a6 ss: store current TTI in DL/UL grant struct
this fixes the TTI log in the PCAP generated by the UE
5 years ago
Andre Puschmann 5267a88d60 ttcn3_ss: remove unneeded NDI reset 5 years ago
Andre Puschmann 562b4ef6c8 ttcn3_ss: add missing timer stepping 5 years ago
Andre Puschmann 0e76b9ed15 nas: set NAS key set identifier to no key available when attaching with IMSI 5 years ago
Andre Puschmann 9cfe692825 nas: fix reset of attach attempt counter according to 24.301 Sec 5.5.1.1 5 years ago
Andre Puschmann d0480141e5 nas: move re-arming and stopping of attach request related timers
t3402, t3410 and t3411 are now managed in the sender
function of the attach request. previosly they were only
correctly started in the high-level NAS call start_attach_request()
which may not be called if NAS itself resends the request
5 years ago
Andre Puschmann 15c47fab56 nas: adding t3402 to restart attach after initial attach attempt counter expired 5 years ago
Andre Puschmann 7ef56cb637 nas: add an attach attempt counter as described in 24.301 5 years ago
Francisco Paisana 1538917c3f fix ue metrics 5 years ago
Francisco Paisana 599588ff51 removed uneeded locks in the rlc, moved ue stack get_metrics to stack thread, solved the idle procedure double-locking 5 years ago
Ismael Gomez 95c6916987
Improve robustness in RF Overflow (#1124)
* Use task id to track old background tasks in RA procedure

* Improve robustness against RF overflow in PHY

* Increase SNR out-of-sync threshold

* Do not change frequency if it's the same

* Increase sync priority

* Increase time to start receiving to reduce input buffer occupation

* Use scoped lock in sf_worker
5 years ago
Francisco Paisana 344eaf49ec use logmap in the whole enb and ue 5 years ago
Francisco Paisana 8e837e173d printf has already a way to pad spaces. If we use it, we can avoid accidentally adding extra logs because we did srslte::logmap::get("MAC") instead of srslte::logmap::get("MAC ") 5 years ago
Ismael Gomez 4fe68e2d54 Verify that cell is valid before configuring scell 5 years ago
Francisco Paisana c7741f368f update rrc_meas_test 5 years ago
Francisco Paisana aeed623734 removed pdu processing from the ue rrc cmd queue. Instead, now the rrc processes the incoming pdus right away. This is essential to fix the security cmd issue in the ue 5 years ago
Xavier Arteaga 8e891b7038 Added AWGN channel to SRSUE and SRSENB 5 years ago
Andre Puschmann b9a2217355 fix uninit vars reported by Coverity 5 years ago
Xavier Arteaga 5e6828c3a0 SRSUE: fix add/mod meas object 5 years ago
Andre Puschmann 3f10224729 refactor airplane mode simulation and move to NAS
- move handling to NAS
- use switch off to enable airplane mode (don't wait for EPC response)
- add tiny FSM to control airplane mode activation/deactivation
- only start on/off counter after state has been entered
5 years ago
Andre Puschmann ac1d4d994b srsue: refactor arg parsing error handling 5 years ago
Francisco Paisana 70c2510c25 simplified mac_test step interface 5 years ago
Francisco Paisana e91a7ea513 removed stack-mac interface dedicated methods. We use now the task dispatch methods instead 5 years ago
Francisco Paisana de03c96c3b mac::process_pdus now uses the stack task dispatch interface 5 years ago
Francisco Paisana 7f6bde59fc move write_pdu_pcch and write_pdu_bcch_bch to stack thread 5 years ago
Francisco Paisana de3c28e52d added task dispatch capabilities to stack interface 5 years ago
Francisco Paisana 46a1be3e76 updated mac-rlc interface to use unique_byte_buffer 5 years ago
Ismael Gomez 7c7c83b9ad Address comments 5 years ago
Ismael Gomez 71723c315d Apply PHY configs to workers sequentially without interrupting processing 5 years ago
Ismael Gomez fd3d4a7874 Refactor thread_pool: use std::mutex and fix some hidden potential bugs 5 years ago
Francisco Paisana 82cb6baef0 now the whole ue and enb mac uses the logmap 5 years ago
Francisco Paisana 602690246e avoid calling rrc::run_tti multiple times in a tti jump 5 years ago
Francisco Paisana 45bc123967 remove manual tti counters from the rrc 5 years ago
Francisco Paisana 138347b6b5 nas using stack timers 5 years ago
Francisco Paisana 770f04b92a the rrc now only works with the stack latest tti, instead of mac's tti 5 years ago
Francisco Paisana e3e5b5be11 removed tti from some mac subcomponent interfaces 5 years ago
Francisco Paisana d3f49d0e3c changed interface sync-stack to allow tti jumps > 1 5 years ago
Francisco Paisana fb967d17a2 now we can disable tprofs individually 5 years ago
Francisco Paisana e73cbb09b0 created tprof statistic for sliding windows 5 years ago
Xavier Arteaga ea1b6b60dd Fix UHD memory issues 5 years ago
Xavier Arteaga f3f03ad12d SRSUE PHY: Add extra debugging information to errors 5 years ago
Francisco Paisana 597334c4bf limit the rlc queue size for suspended bearers 5 years ago
Andre Puschmann 12dfe1cc58 fix srsUE's CSV DL metrics 5 years ago
Andre Puschmann cf9306abdb fix UE CSV metrics header typo 5 years ago
Andre Puschmann ac17ec6452 add common signal_handler for srsUE/srsENB/srsEPC
the signal handler is the same for all three apps. The "running" flag
as well as the file_logger object are in the common header in order
to allow the signal handler to flush the file if the alarm goes off.
5 years ago
Ismael Gomez cf4f4508ce Normalize throughput in CSV/stdout metrics with respect to number of TTIs 5 years ago
Andre Puschmann 69d9914e0a fix bit rate plotting in CSV metrics 5 years ago
Ismael Gomez a1f1b44e26 Fixed flush period 5 years ago
Ismael Gomez 78463b8092 Add CC, PCI and earfcn 5 years ago
Ismael Gomez 568dbdb6d6 Fix typo 5 years ago
Ismael Gomez 1da7b2c8b9 Fix compilation issue 5 years ago
Ismael Gomez 23cc42ce9f CSV metrics per carrier. Add options to flush file earlier and append to file 5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
Daniel Willmann b7e11b7bda Use RRC establishment cause mo-signalling for NAS Attach procedure 5 years ago
Daniel Willmann 3a804e23fa ttcn3_sys_interface: Parse SIBs even when "StaticCellInfo" is missing
The test TC_9_2_1_1_1 sends a Cell->AddOrReconfigure->Basic message
without a "StaticCellInfo" member. This is used to change SIB1 of
the cell and simulate a different PLMN/TAC in the test.

handle_request_cell_basic() ignored the json message if "StaticCellInfo"
is missing which results in the SIB not being updated (PLMN stays as
00102 for example).
With this patch the SIBs after the json are now parsed even if there
"StaticCellInfo" is missing. A confirmation of the json is not sent
because the test does not seem to expect one in that case.

Related: TC_9_2_1_1_1
5 years ago
Daniel Willmann bc4e4ff97b ttcn3_ip_sock_interface.h: Don't respond to UDP/ICMP Close
A close request should not be responded to with a ctrl_cnf
5 years ago
Daniel Willmann 275f26d875 liblte_mme.h: Add/fix UE_TEST_LOOP/DEACT_TEST_MODE msg types 5 years ago
Francisco Paisana 5330249625 created tti_point type and unit test. Added also the tti_point to the scheduler harqs, and rrc procedure 5 years ago
Andre Puschmann 70ffe79b43 add support for periodic airplane mode simulation in srsUE 5 years ago
Xavier Arteaga 6c4e807141 SRSUE: fix signal ready issue 5 years ago
Xavier Arteaga 5af89513eb use double precission for frequency in srsue and srsenb 5 years ago
Ismael Gomez e8b8c9922e
Add RF per-channel frequency band constraints (#1026) 5 years ago
Andre Puschmann 1b1e7ac1a6 only print error when trying to enable non-existing carrier in UE 5 years ago
Xavier Arteaga 76408b195e Rename TX_DELAY and FDD_HARQ_DELAY_MS 5 years ago
Xavier Arteaga 65711d06dc PRACH TA base default to 0 and apply clang-format 5 years ago
Xavier Arteaga e8f9bfc6ba Addition of PRACH TA correction 5 years ago
Andre Puschmann 356fa9258b check configured flag of SCell struct before enabling SCell
this prevents crashing the UE when receiving a SCell activation
command before the SCell has been configured from RRC
5 years ago
Pedro Alvarez 96c82b3fc6 Moved PDCP configs to pdcp_config.h. Added `as_security_cfg_t` structure to hold access stratum keys.
Refactored PDCP, RRC and USIM accordingly.
5 years ago
Andre Puschmann f2e1bfa699 refactor naming for s/p/cell structs and {enb,ue}_cc_idx 5 years ago
Daniel Willmann 1314b8f653 Implement override_lcid() function in ttcn3_sys_interface
Fixes: TC_7_1_1_1 (#6)
5 years ago
Pau Espin Pedrol 1d81ef9e24 gw: Proper error log on non-existing netns 5 years ago
Andre Puschmann 5b8b718482 simplify NAS security handling and fix missing call in act test mode complete
add extra method to apply NAS security config, if configured,
that can be used by each NAS message sender
5 years ago
Ismael Gomez 4e12405fff
Remove radio_multi class and organize channels, ports and carrier buffers (#1019) 5 years ago
Andre Puschmann e2892047e9 refactor UE shutdown
use alarm to give UE time to gracefully terminate
if the UE can't terminate and the alarm goes off, flush the logs
and exit
5 years ago
Andre Puschmann 664170fec6 pcap: add CC index when writing PCAP 5 years ago
Andre Puschmann df31a5c4cc store CC idx in DL/UL HARQ entity 5 years ago
Francisco Paisana fed06138b9 moved rach_detected to stack thread. Created a more friendly interface to enqueue tasks in stack 5 years ago
Andre Puschmann 8e4f2a4d59 add UE parameter to enable TTI stats calculations 5 years ago
Andre Puschmann a8bbe551ac move thread class into srslte namespace to avoid ambiguity between std::thread 5 years ago
Andre Puschmann 8b46f631c1 add basic TTI stats in stack 5 years ago
Andre Puschmann ae4cfb50f2 print warning to console if TUN interface couldn't be setup 5 years ago
Xavier Arteaga 2fc0832f05 Addition of DL HARQ-ACK generation procedure for eNb DL and minor aesthetic changes 5 years ago
Andre Puschmann e7c10270fa ttcn3_ss: fix security activation for PDCP 5 years ago
Andre Puschmann 9e113f8b27 pdcp: allow to configure security for rx/tx seperately
previously PDCP security (integrity and ciphering) could only
be enabled for both Rx and Tx at the same time.

this, however, caused an issue during the conformance testing in which,
in TC_8_2_1_1() for example, the eNB sends a SecModeCommand and a
RRC Reconfiguration in the same MAC TB. In this case, the eNB
needs to be able to enable DL security right after sending the SecModeCmd
in order to send the RRCReconfig encrypted. However, enabling UL security needs
to be postponed until after the SecModeComplete is received.

This patch allows to enable PDCP security for rx/tx independently if
that is needed. The default way is like before, enabling it for tx/rx at
the same time.
5 years ago
Andre Puschmann 5a03eaed2b ss: move timing_info_t to ttcn3_helpers, fix PDCP count handling 5 years ago
Andre Puschmann 72c5b381e4 fix bug when parsing cipher algo config for SS 5 years ago
Andre Puschmann 8a69772ebc rewrite packing of DL PDU in SS
the new algo tries to write more than just one RLC PDU inside a MAC PDU
if this is possible
5 years ago
Andre Puschmann e919c57a32 add handling of FollowOnFlag from tester 5 years ago
Andre Puschmann 51864bc03c rrc: print release cause when receiving rrc connection release 5 years ago
Francisco Paisana ac52208409 removed most of clang-tidy warnings, introduced logmap in asn1, fixed info object naming in s1ap and ngap for successful and unsuccessful outcomes 5 years ago
Andre Puschmann dffa2af461 fix NAS re-attach after detach request from network
needed to add a timer to delay transmission of attach request
to allow RRC release on eNB side
5 years ago
Andre Puschmann e4f85ec390 remove re-arming of t3411 after PLMN search
t3411 is restarted after attach or TAU failure only
5 years ago
Andre Puschmann 89d5876470 add TimingInfo support for remaining SS commands 5 years ago
Andre Puschmann 5b31c1db43 nas: delete security context when receiving attach reject with cause 3, 6, or 35 5 years ago
Francisco Paisana e859d622c7 added logref class to forbid logmap pointer invalidation. Created a test for the logref, and introduced it in the scheduler, rrc and nas 5 years ago
Francisco Paisana 4739f3084f fix logs for SIB acquire 5 years ago
Francisco Paisana b8b8740258 fix wraparound in si proc and error in scell parsing 5 years ago
Andre Puschmann 81e28aa9dc add basic support for TimingInfo field from tester
this fixes an issue where commands are received out of
order and we are therefore applying configs incorrectly. if
commands include a timinginfo we are now putting the command
on a queue that the SS reads after the start of a new TTI.

the security and cell reconfig commands will be added in another
PR after the AS_security command has been fixed.
5 years ago
Andre Puschmann 55a5947df7 add default init to TTCN3 syssim to prevent segfault when tc_start isn't received 5 years ago
Andre Puschmann 39f2011699 fix issue in SS where Msg4 wouldn't be sent because ConnectionSetup is provided too late 5 years ago
Andre Puschmann b88e877b4c ttcn3: make SS single threaded and use SCTP for test ports
- remove all threading from SS
- use epoll to handle test port connections, signals, and timers
- convert testport interface to SCTP
5 years ago
Andre Puschmann 6d88b640b7 rrc: log full message if decoding fails 5 years ago
Francisco Paisana 82629c6910 made failure to compute si periodicity more explicit. Created a const for sib1 periodicity 5 years ago
Francisco Paisana 5a64fc0a93 sib_acquire_proc is not tti-driven anymore. No need to call run explicitly 5 years ago
Francisco Paisana 57da7fd986 fixed issue with setting retry timer. I had to account for si_window_start in the timer duration 5 years ago
Francisco Paisana 925ac862cb sib acquiring is failing for sib2 5 years ago
Francisco Paisana c29f08d8d5 refactored si acquisition procedure to use stack timers. Also created an interface that is going to be used for the task/timer handling 5 years ago
Xavier Arteaga f8165383f6 Neighbour SCell measurement test waits for final measurement before exiting-xx 5 years ago
Ismael Gomez 7cdd1c2ba4 Set FIND sampling rate before setting frequency 5 years ago
Francisco Paisana 4d80856359 fix bug in cell selection initiation 5 years ago
Francisco Paisana 22f51bb30b made cell select non-blocking using background threads 5 years ago
Ismael Gomez 21f01f6140 Do not print error when UL RNTI is not valid 5 years ago
Ismael Gomez 72e6fa40fc Fix multiple issues with DCI sizes when using CA. 5 years ago
Ismael Gomez be82e1f368
Fix concurrency bug in ZMQ during srate change (#954)
The bug was manifesting as buffer overflow in 20 MHz 2x2 CA
5 years ago
Ismael Gomez 4fb83ae26d Run configure_prach_params as a background task 5 years ago
Andre Puschmann 701e4aa6be fix bug causing segfault when UE wasn't initialized 5 years ago
Andre Puschmann dc4be1b856 fix overwriting dedicated_info_nas in connection_request_proc
this fixes an issue in the step() function of the connection_request_proc
in which the dedicated_info_nas message was passed to RRC without
checking if its actually valid or not, i.e. contains a message at all.

because this check was missing and the step() function could be called
multiple-times, the function would overwrite the dedicated_info_nas
in RRC, and therefore causing the connection setup complete to fail
5 years ago
Andre Puschmann f25b4f17f1 nas: log attach request cause 5 years ago
Andre Puschmann b15cd3fdaa add error handling to TTCN3 socket handlers 5 years ago
Andre Puschmann 42920d508f fix SS debug output 5 years ago
Andre Puschmann 327aa97cfd add macro for invalid RNTI 0x0 5 years ago
Andre Puschmann 265037c202 some tiny MAC code refactoring and typo fixing 5 years ago
Andre Puschmann 8d284f48bd cancel RA when receiving contention resolution in wrong state
this fixes a bug in which the contention resolution timer expired
and the RA proc entered the BACKOFF state.
In the same TTI, a MAC PDU with the contention reslution ID is received
and the already aborted RA procedure succeeds. Unfortunatly with the
wront c-rnti which has already been reset before. See log excerpt
below:

16:16:36.909687 [RRC ] [D] MEAS:  Processing measurement of 1 cells
16:16:36.909706 [RRC ] [I] MEAS:  New measurement serving cell: rsrp=-85.00 dBm.
16:16:36.909732 [MAC ] [I] [ 6283] RA:    ConRes: Contention Resolution Timer expired. Stopping PDCCH Search and going to Response Error
16:16:36.909749 [MAC ] [D] [ 6283] RA:    ConRes: Backoff wait interval 143
16:16:36.909771 [MAC ] [D] [ 6282] Delivering PDU=27 bytes to Dissassemble and Demux unit (Temporal C-RNTI)
16:16:36.909799 [MAC ] [D] [ 6283] Found Contention Resolution ID CE
16:16:36.909814 [MAC ] [D] [ 6283] RA:    Backof: MAC PDU Contains Contention Resolution ID CE
16:16:36.909826 [MAC ] [D] [ 6283] Msg3 buffer flushed
16:16:36.909858 [MAC ] [I] [ 6283] RA:    Backof: Random Access Complete.     c-rnti=0x0, ta=0
16:16:36.909871 [MAC ] [D] [ 6283] Saved MAC PDU with Temporal C-RNTI in buffer
5 years ago
Xavier Arteaga 6672f6df0f Minor aesthetic changes in intra measure class and changed scell_search test arguments 5 years ago
Xavier Arteaga 344016ef0a Refactored and commented SRSUE's Intra measure component 5 years ago
Xavier Arteaga 8f6dd184be SRSUE: neighbour cell measurement test defined 5 years ago
Xavier Arteaga f935916e7c SRSUE: fix srsue_rf_test 5 years ago
Francisco Paisana c76cdc6cea refactored the serving cell config procedure. there was one more state than it was needed. 5 years ago
Andre Puschmann cccabdaf4f removing unneeded install targets for static libs (reported by Filipe) 5 years ago
Andre Puschmann 627dac49b0 log message when ASN1 couldn't unpack DL message 5 years ago
Andre Puschmann c7343cf6d8 protect sf_buffer from overrun in receive_samples
this patch adds a buffer len paramter to the receive_samples() call
that protects the (also) provided buffer from overflowing.

currently each call to srslte_ue_sync_zerocopy() which then calls receive_samples()
relies on a buffer that is "big enough". But that buffer is sometimes
2 subframes, sometimes 3 or 5, sometimes has space for the maximum PRB size, sometimes
only for 6 PRBs (i.e. during cell search).

By extending the interface to pass the buffer size we can make sure that
only samples are received that actually fit inside the provided buffer.
5 years ago
Andre Puschmann 23bab1f207 fix potential segfault when overrunning char array
this fixed an issue when printing many neighbor cells because
the calculation of the remaining length can be negative
5 years ago
Andre Puschmann 0e337a01c3 fix SRB2 security handling in SS 5 years ago
Andre Puschmann 7c1b4c1f12 add support for IMEISV when requesting UE idendity 5 years ago
Ismael Gomez f2851b037e Fix concurrency issue in set_crnti() 5 years ago
Pau Espin Pedrol 2f3a125757 srsue: fix trailing whitespace 5 years ago
Pau Espin Pedrol 4949df257e Proper shutdown on SIGHUP
If a process exits and has a controlling terminal, everything under
it gets a SIGHUP by the kernel. That's the case for instance when
running a srsUE over ssh with some specific parameters. As a result,
when the ssh client is killed, SIGHUP is sent to srsUE, which will be
killed immediatelly without proper release, which means in turn that log
buffers are not flushed.
Let's do proper shutdown when SIGHUP is received so that everyone can
get log files.
5 years ago
Andre Puschmann ed179fd311 timers: rename value() to time_elapsed()
this seems to be better readable than value() since
we've sometimes confused it with the timeout value
5 years ago
Xavier Arteaga 4d3c28ff97 SRSUE: wait for valid RSRP measurement before adquiring SIBs during cell search 5 years ago
Andre Puschmann 9720449cbb fixing RRC measurement test after logmap refactor 5 years ago
Andre Puschmann 3d7598a4cb rewrite cell handling in TTCN3 PHY and SS 5 years ago
Andre Puschmann 2a46413121 during cell search don't configure found cell as serving cell
this fixes an issue in which, during cell search, the sync code
itself would set the serving cell whenever it found a new cell.

instead, only report the found cell to RRC and keep the sample
rate at 1.92 MHz. RRC may select a new serving cell and then tell
PHY to camp on it.
5 years ago
Andre Puschmann ca54f02b87 fix RRC measurement reporting when reportInterval is set to infinity 5 years ago
Andre Puschmann bbacc35e24 move configuration of default logger to main
this prevents the case where a layer requests a new log_filter
before the default logger has been configured
5 years ago
Xavier Arteaga 5302fcfa4d SRSUE: listen to paging only when RRC is IDLE 5 years ago
Xavier Arteaga fe199e6be2 SRSUE: Undo enable/disable RA procedure flag 5 years ago
Xavier Arteaga 66bb7d6f82 SRSUE: fix TTCN3 compile 5 years ago
Xavier Arteaga f8294fb9df SRSUE: RRC measurements refactor and more fixes 5 years ago
Ismael Gomez 52716f8716 Process HO complete in the background to avoid heap-after-use bug when PHY measurements are reported during a HO
rrc_meas refactor. Need to split commit

Fix typo

Temporal commit

Apply rx_gain_offset to neighbour cell measurements

srsLTE: modify TESTASSERT Macro to follow codeline

SRSUE: prevent RRC from having serving cell in neighbour list

SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release

SRSUE: extend intra-frequency to CA SCell

SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue

SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful

SRSUE: fix compilation issues and Reest SIB indexes

Fixes sync using incorrect cell configuration when search cell does not find a correct cell

Small refactor to remove measurement report triggers always after removing measurement

SRSUE: Removed SIC PSS from UE

SRSUE: fix inter-frequency reestablishment and added more traces

SRSUE: Fix compilation issue
5 years ago
Francisco Paisana 296af7e297 fix setting up nas log before all log configuration 5 years ago
Francisco Paisana ea777d92e8 applied new logmap class to nas 5 years ago
Xavier Arteaga c080cb3395 SRSUE: expose correct synch error parameter 5 years ago
Ismael Gomez 17f9ff326b Expose in-sync and out-of-sync constants to ue.conf 5 years ago
Ismael Gomez cc7dfefa1a
Fix logic for UL HARQ retx causing Msg3 adaptive retx to be identified as a new transmission 5 years ago
Francisco Paisana 91d83fc20d different way to retrieve a proc future 5 years ago
Ismael Gomez 171e26ee68 Add checks more checks for UL grants 5 years ago
Francisco Paisana 5ae3afd2b8 created cbit_ref for unpacking const buffers 5 years ago
Francisco Paisana 5468189cd9 fix some variables' naming (e.g. x2_ap -> x2ap, e_rab -> erab) 5 years ago
Andre Puschmann b0bfc7956d use const& in metrics interface 5 years ago
Andre Puschmann 77522a6b69 add srsUE parameter to change netns before creating TUN in GW 5 years ago
yagoda 260648582e small formatting fix 5 years ago
yagoda fc1c506d1f refactoring TA command structure in UE 5 years ago
yagoda 2db90c5dd3 allowing TA CE commands in Msg4 5 years ago
Andre Puschmann d045213fb9 fixing bug in RRC measurement when receiving periodic config
in the UE conformance testing we've spotted an issue
where an event was evaluated even though the trigger type for
the report was periodic which caused an exception in RRC
5 years ago
Andre Puschmann bc6aa1a166 fixing PDCP call in TTCN3 SS
this fixes an issue introduced in 6ec573987a
5 years ago
Andre Puschmann e24d33562a disabling ue_phy_test temporarily 5 years ago
Andre Puschmann 6ec573987a remove default value for 'blocking' param from pdcp::write_sdu()
there were two defaults and one was shadowing the other. This
commit removes both defaults and uses blocking-mode for RRC
calls to PDCP in the UE. The eNB write_sdu() uses the non-blocking
mode by default. We have to review the eNB's RRC perhaps and use blocking
there too and non-blocking only for data plane
5 years ago
Andre Puschmann 8f419c035b fixing snprintf issue where return value was used for length calculation 5 years ago
Andre Puschmann e5609e299d fix UE PHY test compilation on 32 bit systems 5 years ago
Xavier Arteaga 36b2102de8 SRSUE: avoid testing ue_phy_test 5 years ago
Xavier Arteaga 0134d47ee8 SRSUE: clear EARFCN list if the list is not empty 5 years ago
Xavier Arteaga 11eafa8ab4 srsLTE: FFTW wisdom gets loaded and saved by default 5 years ago
Xavier Arteaga c92dce71b7 srsLTE: AGC only uses boundaries for requesting gain to Radio 5 years ago
Pedro Alvarez 6d4303cd94 Added option to force 32bit compilation (useful for debug). Fixed various warnings when compiling in a 32 bit arch. 5 years ago
Xavier Arteaga 089a5e21dc Label test that memcheck is excessively long 5 years ago
Xavier Arteaga ad46fc006f srsLTE: Fix thread memory leak. Moved test. Fix CLang warnings. 5 years ago
Xavier Arteaga a7e92c384e srsLTE: applied minor comments in tti semaphore 5 years ago
Xavier Arteaga d2c6dda025 SRSUE: Avoid sf_worker return without calling worker_end 5 years ago
Xavier Arteaga 447ede327c srsLTE: removed unused argument 5 years ago
Xavier Arteaga 384c420c7c SRSUE: fix phy workers concurrency issue 5 years ago
Xavier Arteaga dc7ac0a8d6 SRSUE: Updated PHY test 5 years ago
Xavier Arteaga 6895bfa70a SRSUE initial PHY worker test 5 years ago
Andre Puschmann 476f970ee1 replace FIXME with TODO 5 years ago
Andre Puschmann f874722cfb fix error handling in UE init
previously we've returned the init() function when a sublayer
init failed. This leaves the pointers to the layers unset which, in turn,
breaks the stop() call for the UE
5 years ago
Andre Puschmann 4a9e3728c9 add condtional variable for PHY initialization and configuration
adding a cond variable and mutex to protect init and (re-)config of PHY
currently this is only used during init. If the stack couldn't be
initialized but the PHY init thread was already started, we need to
properly wait until this is done
5 years ago
Andre Puschmann 705cd3c211 fix typos spotted by aleksander0m 5 years ago
Andre Puschmann 3127f59b4c wait with init of GUI until cell is found and initialized
with the stack refactor we've introduced a regression in which
the GUI was started too early when no cell was found yet.

this caused the GUI to be initilized with only one Tx port. When connecting
to a cell with ports, the GUI plotter would then write
into unitialized memory.
5 years ago
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
5 years ago
Andre Puschmann c7ee887170 add factory function for creating PDCP config 5 years ago
Andre Puschmann f7f956708c use helper function to print MIB content 5 years ago
Andre Puschmann 8a064cd3a6 pass msg_type from caller when logging RRC message
before the type of some message wasn't displayed correctly,
like SIBs, for example because the logger didn't
know the filed to retrieve the type string
5 years ago
Andre Puschmann 60d07f1656 assign msg-type to temp variable before logging ASN1 message in RRC 5 years ago
Andre Puschmann fa2821a4e7 fixing periodic measurment reporting
fixes various issues with unset timers, interval parameters, etc.
with those fixes, TC_8_3_1_1 and TC_8_3_1_2 pass
5 years ago
Francisco Paisana d59016ae68 use of srslte::log* type for ASN1 logging. Initialization of the asn1 and rrc_asn1 loggers done now in both the ue and enb 5 years ago
Ismael Gomez 44c23b1690 Fix bug in rrc_meas in ASN to_number() conversion, making the UE to generate Measurement reports every TTI 5 years ago
Xavier Arteaga 1fa5a19a55 SRSUE: SRSUE: fix timealigmenttimer 5 years ago
Xavier Arteaga bcde542111 SRSUE: fix typo 5 years ago
Xavier Arteaga b9492bbd73 SRSUE: Fix set intra-frequency cell during cell search 5 years ago
Xavier Arteaga 8ad69b0c4d SRSUE: Fixed minor RRC measurement 5 years ago
Xavier Arteaga db36fb08a2 SRSUE: fix intra-frequency measurement cell select 5 years ago
Xavier Arteaga 22e4d3c905 SRSUE: Camping SFN synchronism discards cell 5 years ago
Xavier Arteaga e89dde0f35 SRSUE: Check cell is valid 5 years ago
Xavier Arteaga 4be4f56333 SRSUE: Fix duplicates ACK 5 years ago
Francisco Paisana d270518d69 updated rrc to new srsasn1 version 5 years ago
Xavier Arteaga 0ec49f00f7 SRSUE: Reset measurements during cell search in PHY 5 years ago
Pedro Alvarez e68956bcf6 Adding discard timer timeout to PDCP config. 5 years ago
Pedro Alvarez 2e7ddef038 Continue to add discard_sdu to RLC interfaces. 5 years ago
Xavier Arteaga a8763cb7a0 SRSUE: Added Cell PCI in console trace 5 years ago
Xavier Arteaga d96836a0fa SRSUE: Stack TTI based purely in radio timestamp 5 years ago
Xavier Arteaga 7312752988 SRSUE: reestablishment procedure wait for children to finish before aborting 5 years ago
Xavier Arteaga 6d896ee453 Fixed more static code analysis warnings 5 years ago
Xavier Arteaga b48bb0d754 Removed atof, atoll and atoi calls 5 years ago
Xavier Arteaga 8dd1c59e18 Added amplitude and power conversions to dB and viceversa 5 years ago
Xavier Arteaga b4b1ab94af SRSUE RRC: new PHY unknown sync state, cell select waits for PHY in-sync 5 years ago
Xavier Arteaga 67935d2b99 SRSUE: RRC blocks MAC RA procedure during reestablishment 5 years ago
Andre Puschmann 71c83bd0e0 fixing typo in RRC proc 5 years ago
Andre Puschmann 8ef0d6c6ca do not automatically consider cells for which a measurment has been received as "in sync"
the in_sync flag has been misused in some parts of the code
receiving a PHY measurement for a cell does not automatically
mean that we are "in sync", as it is used in RRC as a condition
to indicate if we are camping on cell

the in_sync/out_of_sync condition should only be altered by the
corresponding functions sent from the PHY for the currently selected
cell (and not automatically for all cells)

the commit also removes the deletion of cells which are not "in sync"
from the list of neighbor cells. Instead, RRC calls a clean-up function
peridically that deletes old cells eventually.
5 years ago
Xavier Arteaga f5e4ff9f4d SRSUE: RRC Reest Procedure Refactor 5 years ago
Xavier Arteaga dbdb699a78 SRSUE: minor RRC/PHY fixes 5 years ago
Xavier Arteaga f37a096f10 SRSUE: Refactored/Fixed RRC connection Re-establishment and minor CLang Format/Tidy fixes 5 years ago
Francisco Paisana 54992e72f1 fixed and simplified multiqueue task api to avoid dangling pointers. 5 years ago
Francisco Paisana b2d3c2a150 fix compilation issue 5 years ago
Francisco Paisana ac4d3b9624 std::functions do not accept move-only captures. So I had to create a wrapper earlier. In this PR, I cleaned a bit the previous API for the code to be a bit more readable 5 years ago
Andre Puschmann 4e2d9c6b60 specify MAC source files in UE 5 years ago
Andre Puschmann 6f72cbffab fix snprintf of uint64 for ARM 5 years ago
Pedro Alvarez c6ddada488 Fix compilation issue when enabling TTCN3 5 years ago
Pedro Alvarez 15613465cf Moving some initialization from init function to constructor in the PDCP entities. 5 years ago
Francisco Paisana 177e880293 removed extra threads from enb rrc 5 years ago
Francisco Paisana c8e50c1e19 DL/UL sched are called in a round-robin fashion 5 years ago
Andre Puschmann 1a7142d73f fix GW init procedure and set pool instance in ctor 5 years ago
Andre Puschmann 2f00fd62ec fix PDCP config in TTCN3 SS 5 years ago
Pedro Alvarez b7fdcaabc5 Starting to add reordering timers at PDCP NR entity. Timeout seems to be triggered correctly and pass the SDUs to the upper layers when it expires. First tests passing. 5 years ago
Francisco Paisana dc0f7acfda a new future was not being created for the new cell_search 5 years ago
Andre Puschmann d25a734200 fix uninit value in NAS and move emm_info on stack 5 years ago
Francisco Paisana 8440126d35 removal of srslte::timers class 5 years ago
Francisco Paisana ecba994712 fixed bad initialization of t311 5 years ago
Francisco Paisana d2c56caf7e applied new timer class to the whole code base 5 years ago
Francisco Paisana 15bde8660a getting a future of an already finished proc is dangerous 5 years ago
Francisco Paisana 248583ecdf added extra logging and removed uneeded member from proc_t 5 years ago
Francisco Paisana b254bdbb93 typedefed the proc_result_t<void> to become proc_state_t 5 years ago
Francisco Paisana f2d88e5a5b simplified NAS rrc connection request procedure
move non-type-specific methods of proc_t to its base class.
procedure state machine was simplified via a future-type. Now procedures dont get stuck until the user reads the procedure outcome.
made the NAS procedures more event trigger/reaction-based.
5 years ago
Francisco Paisana 8864787f59 added the continuation functionality to procedures via the "then()" method. 5 years ago
Francisco Paisana c1be118d1d new wrapper-based design for stack procedures. Removes extra base class, gets rid of spurious copies/moves during the pop(), and allows the use of a non-default ctor() 5 years ago
Francisco Paisana 8980810061 added some util print functions and fixed the issue with sync::cell_select when the last cell search was not successful 5 years ago
Xavier Arteaga 423475173d Refactored magnitude and argument extraction from sf_worker 5 years ago
Andre Puschmann 44dcfbe5c2 use info_long to print full message rxed on SYS interface 5 years ago
Andre Puschmann 82e3fd1052 fix uninitialized vars in RRC 5 years ago
Andre Puschmann 755a0599c4 rework cell list and SIB handling in SS 5 years ago
Andre Puschmann 891a66a2e5 make the establishment cause a paramter when sending a connection request
needed to signal a mo_sig establishment cause after a RLF
5 years ago
Andre Puschmann c24b25f42e after RLF store PCI of current serving cell
the PCI is needed for the reestablishment request in case
the new serving cell has changed
5 years ago
Andre Puschmann c1da02cd07 after initiating reestablishment, we need to perform cell reselection immediatly
before cell reselection was postponed to the next TTI but this is not possible in
the case where the serving cell changes.

if the "old" serving cell is no longer suitable, we would directly go to RRC IDLE below.
Therefore we need to select the new serving cell before sending the reestablishment
request.

this is tested in TC_8_5_1_1
5 years ago
Andre Puschmann b631106612 always print RF errors to stdout 5 years ago
Andre Puschmann 1a68fbc460 fix wrong setting for RF log level 5 years ago
Francisco Paisana e94755c471 revert nas_test fix 5 years ago
Francisco Paisana 9bcb268421 added for-range loop and bool decay checks to clang-tidy. Applied some of the recommendations of clang-tidy to nas.cc 5 years ago
Andre Puschmann 4d688bce98 fixing nas test 5 years ago
Andre Puschmann cf548fe807 nas: add handling of T3410/T3411 5 years ago
Andre Puschmann 35307a047a make UE switch_on non-blocking
this allows a simpler main that just signals NAS to switch on the UE
but doesn't block until the action is completed.

For making sure the UE also attached if the first attempt failed
the NAS needs to be extended to support the correct timers.
5 years ago
Andre Puschmann 487fdd5616 ttcn3: split SS interface and protect SS main thread properly
the SS main thread and the provided interaces weren't protecting members
correctly
5 years ago
Francisco Paisana 80ef7f8497 changed the name of proc Error/Warning/Info logging macros 5 years ago
Francisco Paisana 71ebac861c fix nas proc logging, and reuse of cell selection result 5 years ago
Francisco Paisana 81a466a641 since we moved cell search to the background thread, cell reselection prints a error message that it cannot start. In fact it already started. It is just waiting for the cell search to finish. This PR fixes this 5 years ago
Francisco Paisana e67f66e539 moved cell search completed signal from the background thread to the stack thread 5 years ago
Xavier Arteaga 0b00e6d94a SRSUE: fixed CSI and HARQ collision for CA 5 years ago
Xavier Arteaga 743cce5503 SRSUE: Added end of burst when a out-of-sync is detected in PSS/SSS sync 5 years ago
Xavier Arteaga a9dae4c29c SRSUE: Enable Asynchronous SCell Receiver AGC 5 years ago
Ismael Gomez 1d83bb08e2 Changes in ACK procedure to support CA. Tested 1 cell in SISO/MIMO 5 years ago
Andre Puschmann 7a672ca340 fix typo 5 years ago
Francisco Paisana b1496317d5 fixed the pcch proc issue by letting the cell selection explicitly propagate its result to the pcch_process_proc 5 years ago
Andre Puschmann 3a678b1e5f fixed wrong SRS parameter logging 5 years ago
Andre Puschmann 3c6ff0da30 make NAS logging less verbose 5 years ago
Andre Puschmann c5f52adfba nas: fix issue in which NAS wouldn't allow to attach once it failed
the main issue was the plmn_selected variable. the solution
was to create a function to enter the deregistered state that resets the variable
and performs all other actions that need to be performed, like clearing
EPS bearers.

The patch also extends the SS to support AT commands to enable/disable
data services and now succesfully passes TC_9_2_2_1_7
5 years ago
Francisco Paisana 2fb830fcfa moved cell search to background task thread pool, and provided a stack interface to rrc to call "start_cell_search". Once completed, the background task signals back to RRC 5 years ago
Andre Puschmann a166b3c2d9 fix PHY-MAC interface in TTCN3 PHY 5 years ago
Andre Puschmann 08418b17ce fix concurrency issue in TTCN3 PHY 5 years ago
Andre Puschmann 0467d8bc84 rework neighbor cell handling 5 years ago
Andre Puschmann c7f0caa24a add TTI field to MAC dl/ul grants and fix PCAP to include TTI 5 years ago
Francisco Paisana 6db0e474be moved RA waiting procedure to a background task of the stack thread pool 5 years ago
Xavier Arteaga efdec15964 Renamed lock_guard (lg) to lock 5 years ago
Xavier Arteaga 665f899a74 Fixed some coverity and Clang tidy warnings 5 years ago
Andre Puschmann f94d2537a3 nas: send identity response integrity protected if security ctxt is present 5 years ago
Andre Puschmann bb84b27f0b fix RRC connect proc in NAS to allow reattch after detach 5 years ago
Andre Puschmann cfadd1ba0b use received count for NAS integrity check
using the local rx count has caused issues when our UE
missed one NAS message was therefore out-of-sync and then
dropped all following NAS messages due to integrity failure

the NAS spec clearly states that the UE should use the
count received as an input for the integrity check calculation
5 years ago
Francisco Paisana e92632e729 zero-initialized mbms rrc interface types 5 years ago
Francisco Paisana fc9bb3c934 removed rrc asn1 header include from the ue_interfaces and phy 5 years ago
Xavier Arteaga ef26bc7451 SRSUE: fixed prach TA correction 5 years ago
Ismael Gomez 9325aaddf2 Do not change master clock rate if not necessary. Hint in ue/enb configs for low BW cells 5 years ago
Andre Puschmann 0e6b0768fd print PCCH hex when decoding fails 5 years ago
Andre Puschmann 2f47010eb6 fix various uninitialized vars 5 years ago
Andre Puschmann db4cc71240 minor changes to TTCN3 dut to make reading logs easier 5 years ago
Andre Puschmann 0e89f72846 remove EPS bearer deletion when going RRC idle
when going RRC idle, NAS gets informed and currently
clears all registered EPS bearers. This is wrong because
the EPS can outlive a RRC session.

Also in the conformance tests it's clearly seen
that after a RRC release a dedicatated EPS bearer is
created with a linked EPS bearer ID that has been
created _before_ RRC went idle.
5 years ago
Xavier Arteaga 3c25e2b16c SCell Search Test: Return success always if test is finished 5 years ago
Xavier Arteaga 9ee8cc0ad2 CRS SCell searcher: Fixed memory leaks 5 years ago
Xavier Arteaga 91a7bbf2b6 SCell search test: removed basic_string header 5 years ago
Xavier Arteaga 4c85b99ec5 SRSUE: Added intra frequency SCell search test 5 years ago
Xavier Arteaga 35f85c651c SRSUE: Added SCell synchronizer and measurements based on reference signals 5 years ago
Xavier Arteaga 8e17aba5d8 Improved SSS decoding and improved scell_search_test 5 years ago
Xavier Arteaga dedf0f2f78 Added initial time to delay channel simulator 5 years ago
Xavier Arteaga 368690ea6b SRSUE: Added intra frequency SCell search test 5 years ago
Xavier Arteaga 54974d935e SRSUE PHY: unitialised values and attributes clean-tidy up 5 years ago
Xavier Arteaga 78fcc11a30 Fixes minor unitialised/leaked memory 5 years ago
Ismael Gomez 0984debe1b
Fix issues with RLF in B210 and X300 (#669)
* Calling tx_end() from radio_reset() causes long execution time in B210. Using boolean to call later instead. Fixes RLF failing in B210. Checked in X300

* Fix issue #655
5 years ago
Francisco Paisana 0f166ce739 fixed mac_test 5 years ago
Francisco Paisana 946ead06e8 using an interface between the stack and lower mac to process demux pdus. 5 years ago
Andre Puschmann 57317fab7c expose debug_long to class log and use in RRC to log ASN1 structs 5 years ago
Andre Puschmann 7dde4f3b8a fix BCCH-BCH logging in RRC debug mode
also decode BCCH-BCH using ASN1 lib and write MIB to log
5 years ago
Andre Puschmann 99a6d49e78 only write MIB to PCAP if cell search was successful 5 years ago
Francisco Paisana 7e67aee839 resolved the uninit variable issue in the queue_test 5 years ago
Francisco Paisana 14267640ee implemented andre's PR review requests 5 years ago
Francisco Paisana 11ec5cdba6 added a maximum capacity to the pending task multiqueue, so that the buffer pool does not get depleted 5 years ago
Francisco Paisana 63457f195c extented queue test 5 years ago
Francisco Paisana a2d7b2320a placed GW packets in the same thread as UE stack thread 5 years ago
Francisco Paisana 647c624423 created a multiqueue handler, and started using it for the ue stack 5 years ago
Andre Puschmann 9e1c46dfb0 add initial TTCN3 code 5 years ago
Andre Puschmann 08ca9ebd4e write BCH to PCAP
this patch moves the BCH payload buffer into the UE sync object and
therefore allows to pass it to the MAC for PCAP logging
5 years ago
Ismael Gomez a3932f9bea Minor change to fix coverty issue 5 years ago
Francisco Paisana 94667beb00 added a bound checker to bit_ref packer, and other fixes 5 years ago
Ismael Gomez 6bb0790cf1
Fix coverty issues (#652) 5 years ago
Andre Puschmann bd1e367263 add missing mutex lock in mux 5 years ago
Andre Puschmann 761fda542d fix invalid neighbor cell addition
if phy measurements are received and processes before a serving cell
is selected, an invalid neighbor cell is added because the uninitlized
serving cell is used.

fix the issue by checking if the serving cell is valid
5 years ago
Andre Puschmann 8b015ee128 fix typos and extend cell (re-)selection logging 5 years ago
Xavier Arteaga 1a567a764e SRSUE: Call Radio tx-end when PHY is reseted and removed redundant attribute is_start_of_burst. 5 years ago
Pedro Alvarez 004db4a067 Applied clang-format to zuc_support PR. 5 years ago
Pedro Alvarez 1ae8ccda8c Added EIA3 and EEA3 to default UE capabilities to srsUE. Added parsers for EEA3/EIA3 config options in srsENB and srsEPC 5 years ago
David Rupprecht 4ff70b6008 reconfigured test case for eia sec matching 5 years ago
David Rupprecht 06ac8143a4 NAS test working again due to replayed sec caps mismatch 5 years ago
David Rupprecht 50332089ce Add EEA3 and EIA3 support for UE/enodeb and MME 5 years ago
Andre Puschmann 513c7b12e3 remove warning and replace with pragma message 5 years ago
Ismael Gomez 4f95822c06 Reestablish RLC before waiting for uplink 5 years ago
Ismael Gomez cbb1bbfaa1 Fix multiple PRACHs after SR fail and a minor issue in HO 5 years ago
Xavier Arteaga 4bd0d2da6d UE RRC: Fixed minor variable overlap and clang tidy warning in UE capabilities 5 years ago
Ismael Gomez bfddc55148
RRC-PHY interface (#639)
RRC-PHY interface refactor. Moved RRC-MAC interface to rrc_asn1_utils and created RRC-PHY interface also in rrc_asn1_utils. All ASN1 includes should be made from rrc_asn1_utils only keeping ue_interfaces clean of ASN1

Tested with different common and dedicated configurations (64QAM UL, 256QAM, CA, SRS enabled/disabled, etc)
5 years ago
Francisco Paisana 67d6a25194 Moving mac timers to stack timers (#638)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.

* moved timers out of the UE MAC
5 years ago
Ismael Gomez 69edee4e6c
Fix issues in uplink QoS (#636)
Fix bugs in Long BSR and Truncated BSR and added unit tests
5 years ago
Francisco Paisana 116dc0a57b fixed group extensions, removed extra presence flag for copy_ptr<T> types as it was just a source of bugs. 5 years ago
Paul Sutton 2f14b7a2a2 Fix for [gw] parameter names 5 years ago