Andre Puschmann
edd150b29f
fix PID not being set when reading pending UL grant
...
this should fix #2679
2021-04-18 15:12:22 +02:00
Xavier Arteaga
01ce0718be
NR-PUSCH RE mapping correction and NR-SCH detailed grant information
2021-04-17 15:51:11 +02:00
David Rupprecht
bfe2ad98ef
Added parsing for NR DL HARQ cfg
2021-04-17 12:33:21 +02:00
Andre Puschmann
b9ae064338
mac_nr: add DL HARQ
...
this commit adds a complete DL HARQ entity to the MAC of the UE.
It also refactors demux into an own class and adapts the PHY-MAC
interface to use the new MAC capabilities.
2021-04-16 15:32:09 +02:00
David Rupprecht
fe8727050b
Added new rrc_nr to phy flattening functions and fixes
2021-04-16 09:02:29 +02:00
David Rupprecht
4c68c17bd3
Fixed log level of nr loggers to lte level and hex size
2021-04-15 12:12:20 +02:00
Andre Puschmann
44baea6666
mac_nr: add UL HARQ
...
this patch adds a basic UL HARQ entity for NR.
The patch also updates some interfaces between MAC/RA/HARQ,
i.e. get_temp_crnti().
It also adds a Msg3 unit test.
2021-04-14 13:40:31 +02:00
Xavier Arteaga
b5e879db47
SRSUE: review metrics interfaces
2021-04-13 16:02:53 +02:00
Xavier Arteaga
044da18db9
SRSUE: Reviewed PHY metrics getter
2021-04-13 16:02:53 +02:00
Xavier Arteaga
2f453b43ba
Initial NR PHY interface
2021-04-13 16:02:53 +02:00
David Rupprecht
eeddbe69ce
Fixes repeating proc RA due to SR trigger
2021-04-12 20:51:07 +02:00
David Rupprecht
5a3a2a6d6f
Added functions for adding phr and tag config
2021-04-12 20:50:30 +02:00
Francisco
f7a8b8bf94
separate drb srb ids into separate enum types
2021-04-12 13:21:43 +01:00
Francisco
21718af3b6
avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type
2021-04-12 13:21:43 +01:00
Andre Puschmann
cf696138d3
mac_nr: fix packing order of SDU and CEs
...
SDUs need to go first in the MAC PDU, followed by CEs
2021-04-10 14:01:43 +02:00
Andre Puschmann
7f415189f3
ue,mac: enable basic MAC metrics
...
this adds basic MAC metrics calculation for the DL NR MAC
2021-04-10 14:01:43 +02:00
Andre Puschmann
db496df1e6
mac_nr: add support for periodic BSR reporting
...
building on the previous refactor this patch now adds support
for peridoic BSR reporting (using short BSR). It furthermore does
the following changes:
* add BSR packing
* add proc_bsr_nr unit test
* move mac_nr test code into test folder under src (needs to be done with other test code too)
2021-04-09 12:28:05 +02:00
David Rupprecht
56e947bf27
Added functionality for releasing a NR bearer
2021-04-08 17:37:36 +02:00
David Rupprecht
cc6d8128ad
Added gw interface if it is running
2021-04-08 17:37:36 +02:00
David Rupprecht
7a481c40ab
Added mac prach nr proc error handling
2021-04-08 17:37:36 +02:00
David Rupprecht
f9ea02b6bf
Added functions for rrc reestablishing procedure if nr reconfig failes
2021-04-08 17:37:36 +02:00
David Rupprecht
43ec714ce1
Added functionality for printing nr metrics
2021-04-08 15:55:28 +02:00
Xavier Arteaga
db1a1c059c
NR PHY workers TTI synchronization between DL and UL work
2021-04-08 11:39:55 +02:00
Xavier Arteaga
991c6e7016
Refactored NR HARQ-ACK feedback enqueue
2021-04-08 11:39:55 +02:00
Xavier Arteaga
49731ab5a1
Initial NR-DCI refactor
...
Added NR DCI 1_1 size
Several DCI NR fixes
2021-04-07 16:57:12 +02:00
Xavier Arteaga
dee2ec30cd
SRSUE: use new MAC interface for NR SR procedure
2021-04-07 14:16:46 +02:00
Xavier Arteaga
01990c2e1d
SRSUE: Add PHY-MAC SR related interfaces
2021-04-07 14:16:46 +02:00
David Rupprecht
506adca930
Set eutra nr band info based config value
2021-04-07 13:24:26 +02:00
Andre Puschmann
d135ae4d29
proc_bsr: initial BSR procedure for NR
...
* refactor some common methods to mac_common.cc
* add common mux_base class
* move UL PDU generation to mux class
* add logical channel registration to MAC, MUX, BSR
* add initial proc BSR
* add basic MAC NR test
* rework MAC interfaces
2021-03-30 13:46:12 +02:00
Francisco
d04a19f8bc
refactor - increase code reuse in adt files
2021-03-29 22:11:25 +01:00
Andre Puschmann
bde7b49ca3
ue,mac_nr: add basic SR procedure
...
the current implementation support only one SR config
and doesn't support the prohibit timer
2021-03-26 09:53:03 +01:00
David Rupprecht
8c86d2084d
Adding NR phy config RRC parsing
...
Added error handling
Reworked flattening error handling
2021-03-25 11:34:53 +01:00
Xavier Arteaga
5bdf2c93b3
Initial NR PDSCH CSI-RS RE skip and other changes
2021-03-24 09:06:26 +01:00
Xavier Arteaga
7704c09ce2
Fix typos
2021-03-23 15:11:46 +01:00
Andre Puschmann
1a0891df51
all: check return value of make_byte_buffer() and handle them safely
2021-03-23 14:31:15 +01:00
Codebot
4523ee6087
rename srsLTE to srsRAN
2021-03-21 21:47:01 +01:00
Xavier Arteaga
8c4ed489e8
SRSUE: Disable neighbour cell display by default
2021-03-19 11:47:09 +01:00
Xavier Arteaga
4ae194581f
SRSUE: Adjustments in distance and speed estimations
2021-03-19 11:47:09 +01:00
Xavier Arteaga
49a535b81a
SRSUE: force printing neighbour cells by default in console trace
2021-03-19 11:47:09 +01:00
Xavier Arteaga
2782d96170
SRSUE: compute speed from TA commands
2021-03-19 11:47:09 +01:00
Francisco
3e9f93eb8a
refactor - remove old log_filter and logmap libraries from the codebase
2021-03-11 20:10:54 +00:00
faluco
173dcdd421
- Import latest srslog version.
...
- Remove string allocs in some log lines in radio.cc.
Add new tracing buffer capcity options into srsenb and srsue.
Add missing file.
2021-03-10 16:27:33 +01:00
faluco
c7542daf43
Remove rlc traces and add new ones into tti run functions both in the enb and ue.
2021-03-10 11:59:09 +01:00
Xavier Arteaga
9dffad87f2
Initial UCI bits multiplexing in PUSCH
2021-03-09 17:05:08 +01:00
David Rupprecht
bb3e87302d
Added new pcap enable option and mac nr
2021-03-03 09:50:15 +01:00
AlaiaL
3a86c210f9
[metrics] Added the system metrics to the ue stdout
2021-03-02 22:17:13 +01:00
Xavier Arteaga
784f4be72e
SRSUE: NR CSI report fixes
2021-03-02 15:40:40 +01:00
Xavier Arteaga
4679e9f871
Initial NR CSI reports
2021-03-02 15:40:40 +01:00
Xavier Arteaga
1e55d68b55
Removed set RNTI from API
2021-03-01 15:30:33 +01:00
Francisco
766018f2b4
fix gcc compilation issue
2021-02-26 16:44:57 +01:00
Francisco
b329e25bbb
move ue phy interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
Francisco
13d805ef56
move ue rrc interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
Francisco
b1706b9197
move ue nas interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
Francisco
b8bd869d0f
move ue rlc interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
Francisco
a988351f46
move ue pdcp interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
Francisco
ea04104e8e
move ue gw interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
Francisco
186285ffd3
move ue usim interfaces to separate interfaces header file
2021-02-26 16:44:57 +01:00
faluco
2328011732
- Remove old loggers in ttcn3 and in NR.
2021-02-26 13:59:39 +01:00
faluco
eaf20fa4f3
- Removed some logger injections in the ue app.
...
- Removed old logger setup code not needed anymore.
2021-02-26 13:59:39 +01:00
faluco
3ce7454105
- Remove old loggers from ue_stack_lte, ue gw.
...
- Remove old loggers setting up for these classes.
2021-02-26 13:59:39 +01:00
Xavier Arteaga
126fc09b7d
SRSUE: Added initial SR procedure for NR
2021-02-25 09:04:04 +01:00
Andre Puschmann
9c4146442a
mac,phy: refactor NR MAC/PHY UL data passing interface
...
inspired by accepted (but not yet merged) PR to include the
(unique_)byte_buffer_t for MAC/PHY interfacing, this patch adds
a few more useful bits to that. Buffer management for UL data is now
done in MAC and only a pointer to the data is passed in the UL action.
* Move Tx softbuffer to MAC (until UL HARQ class is ready)
* Remove temparal data member in cc_worker
* Remove memcpy after packing MAC PDU
2021-02-24 20:28:43 +01:00
David Rupprecht
f6f6ee406b
SRSUE NR: use correct rnti in rar and make NR proc ra
2021-02-23 17:02:23 +01:00
David Rupprecht
1fcd006a7c
fixed segfaulting
2021-02-23 17:02:23 +01:00
Xavier Arteaga
b768002a93
SRSUE Added RAR unpacking and other fixes
2021-02-23 17:02:23 +01:00
David Rupprecht
82a8dcc77a
Change interface to unique_byte_buffer
...
logging message for msg3 preparing
2021-02-23 17:02:23 +01:00
David Rupprecht
3af0342418
Added mux class and packing of msg3
2021-02-23 17:02:23 +01:00
Xavier Arteaga
760ad3a746
SRSUE: Interface stack and PHY for NR-RA procedure
2021-02-23 17:02:23 +01:00
David Rupprecht
0f1586dd2d
Deleted all HAVE_5GNR in CC and h files
...
CMakeList and travis yaml
2021-02-22 21:16:04 +01:00
David Rupprecht
1987ddd923
Added phy_nr to ue_stack_lte
2021-02-22 14:26:20 +01:00
Xavier Arteaga
fe452fae2b
Aesthetical changes scell synchronization class
2021-02-19 17:28:05 +01:00
Xavier Arteaga
326c5bc25e
Set secondary Serving cell synchronism bandwidth at cell selection and skip at configuration set-up
2021-02-19 17:28:05 +01:00
Xavier Arteaga
283fc78782
Fix override VNF
2021-02-17 16:34:00 +01:00
Xavier Arteaga
81748c7b1c
SRSUE: PHY does not compile NR interface
...
Fix
2021-02-17 16:34:00 +01:00
Xavier Arteaga
bdef411855
SRSUE: Aesthetic changes
2021-02-17 16:34:00 +01:00
Xavier Arteaga
784a33583b
SRSUE: Initial NR MAC-PHY interfaces
...
SRSUE Fix compilation
SRSUE: temporary fixes LTE/NR PHY/Stack interface problem
fix
fix
2021-02-17 16:34:00 +01:00
David Rupprecht
24123313bf
Added MAC NR RA procedure with a minimal test case
2021-02-16 09:42:09 +01:00
Xavier Arteaga
d807ccc3dd
SRSUE: Initial NR-PUCCH HARQ feedback
2021-02-15 12:54:17 +01:00
Xavier Arteaga
818f3ea7c7
Initial NR-PDSCH HARQ-ACK/NACK procedure
2021-02-15 12:54:17 +01:00
Andre Puschmann
6eed6f622f
mac_nr: update RA related function in MAC/PHY interface
...
* expose interface to trigger PRACH from MAC
* indicate PRACH tx from PHY
* add temporary RAR PDU handling with Msg3 grant indication to PHY
2021-02-08 22:15:09 +01:00
Francisco
3265d940ec
remove byte buffer pool cached member variables as they are unnecessary now.
2021-02-07 18:48:21 +00:00
Francisco
0c7c317be5
refactor byte_buffer class and move it to separate file
2021-02-07 18:48:21 +00:00
Pedro Alvarez
bb0e31feda
Reduce log level of SDUs dropped in the stack to info. Added ul_dropped_sdus to stack metrics.
2021-02-05 16:48:04 +00:00
Xavier Arteaga
a19671802e
Added SRSUE NR-PUSCH initial procedures
2021-02-05 15:55:03 +01:00
David Rupprecht
3dab82c42f
Added interface that allows to update the lcid in case of a nr reconfiguration
...
nr rrc updates gw lcid if reconf was received
2021-02-05 11:08:08 +01:00
faluco
821925a273
- Upgrade to srslog the loggers in lib/mac.
...
- Adapted users of these classes and tests.
2021-02-04 18:37:00 +01:00
Xavier Arteaga
a2d9b436d9
SRSUE: add NR stack to PHY and initial decoded PDU push
2021-02-04 10:51:47 +01:00
Xavier Arteaga
e65c145704
SRSUE: Added hard-coded NR-PUSCH resources
2021-02-04 10:51:47 +01:00
Xavier Arteaga
77f0a53abd
Added DCI Format 0_0 unpacking and more NR-PUSCH procedures
2021-02-04 10:51:47 +01:00
Xavier Arteaga
b150e45129
Renamed NR-PHY state and fix license headers
2021-02-04 10:51:47 +01:00
Andre Puschmann
8e13f04684
mac_pcap: refactor MAC PCAP and include NR RAT into same object
...
after adding the thread-safe PCAP writer functionality to the EUTRA
MAC object it became clear that we don't wont to replicate the
same for the NR object.
This patch therefore refactors the class that now supports both EUTRA and
NR rats. The old mac_nr_pcap.[h/cc] has been deleted. All test-cases
and usages now use the new object that needs to pass the RAT type in
the ctor.
this patch addresses the last open point of #2160
2021-02-03 17:21:57 +01:00
faluco
a7bb3ce7d0
Remove unused variable in vnf_phy_nr.
2021-02-03 14:15:27 +01:00
faluco
d37a07a47f
Replaced loggers in buffer_pool.h
2021-02-03 14:15:27 +01:00
Andre Puschmann
ecf7eaec5c
ue_stack_lte: expose MAC NR interface for NSA configs
2021-02-03 10:23:18 +01:00
Xavier Arteaga
aaa789f530
Removed unused logger
2021-02-02 15:23:14 +01:00
Xavier Arteaga
92c4a38fc2
Fix logger for NR PHY
2021-02-02 15:23:14 +01:00
Xavier Arteaga
2421f2cd99
Multiple PHY fixes and NR-PHY configuration refactor
2021-02-02 15:23:14 +01:00
Xavier Arteaga
b652cd68a5
Refactored NR PHY configuration to accept multiple CORESETs/SearchSpaces
2021-02-02 15:23:14 +01:00
Xavier Arteaga
10a7b63c6a
NR-UE PHY transmits PRACH in all oportunities
2021-02-02 15:23:14 +01:00
Andre Puschmann
f5c945dc2f
mac_nr: add interface to set C-RNTI and contention ID from RRC
...
used during contention-based/free RA
2021-02-02 14:13:25 +01:00
Andre Puschmann
1aadc5c53e
mac_nr: tiny cleanups of MAC class, use of new logger
2021-02-01 09:58:43 +01:00
Andre Puschmann
73cb0dabf2
mac_nr: move UE MAC class into own subfolder
...
this should simplify further MAC NR extensions and lead
to a more organized folder structure
2021-02-01 09:58:43 +01:00
Andre Puschmann
da9e3363f1
mac_pdu_nr: rename MAC PDU class for NR to adhere naming conventions
...
* mainly to have _nr as trailing name for filename and class
* also add "sch" to class and filename (RAR PDU will have extra class)
2021-01-30 11:58:25 +01:00
faluco
5981469f9f
Upgrade loggers in srsue ( #2163 )
...
* Replaced UE logger in the ue class.
* Replaced loggers in the main phy class and prach.
* Replaced loggers in phy common and ta_control.
* Replace loggers in cc and sf workers.
* Replaced loggers in intra_measure, scell_recv, search, sfn_sync, sync.
* Remove last uses of the old loggers in the main phy class.
* Remove stray newline in logs.
* Replaced loggers in ue gw.
* - Started to replace loggers in the ue stack.
- Replaced loggers in usim and pcsc.
- Adapted nas and usim tests.
* Replace loggers in nas.
* Added missing log init calls in two previously modified tests.
* Replaced logger in nas idle procs.
* Replaced loggers in nas emm state.
* Replaced loggers in tft packet filter and adapted tft test.
* Replaced loggers in main RRC class.
* Replaced loggers in RRC cell.
* Replaced loggers in RRC meas.
* Replaced loggers in rrc procedures.
* Started logger replacement in MAC layer, more precisely in demux and dl_harq classes.
Been unable to inject loggers in construction for dl_tb_process due to very weird static assertions in the std::vector code being the type not constructible which is not true, so instead use the main MAC logger directly.
* Replaced loggers in mac mux class.
* Replaced loggers in mac pro_bsr.
* Replaced loggers in mac proc phr.
* Replaced loggers in mac proc SR and RA.
* Replace loggers in mac UL HARQ.
* Replaced loggers in main ue stack class.
* Fixed nas test crashing due to a null string.
* Ported mac_test to use the new loggers.
* Removed TTI reporting for the PHY log as the old logger did.
* Replaced loggers in UE phy tests.
* Configure loggers in nas_test.
* Replaced loggers in rrc_meas_test.
* Replaced loggers in rrc_reconfig_test.
* Added missing newline in tft_test.
* Fix compilation errors in TTCN3 tests.
* Fix linker error detected in CI and warning.
* Replaced loggers in TTCN3 tests.
* Fix a text replace error in some log messages.
* Remove trailing newlines from log entries.
* Remove old logger from rrc.
* Flush backend before printing the test status.
* - Fix compilation error from previous rebase.
- Remove trailing newlines from some missing log entries.
2021-01-28 17:17:43 +01:00
Andre Puschmann
4709bacefd
srsue: add DL NR-ARFCN param
...
* add PHY param to set DL NR-ARFCN
* use new band_helper class to convert ARFCNs to supported bands
* signal supported NR bands in UE capabilities
2021-01-28 12:06:02 +01:00
David Rupprecht
9ccc36d4fa
Make fake measurement frequency depend on measurement config
2021-01-27 10:37:09 +01:00
David Rupprecht
1b19ee40e7
Added usim features for key derivation
2021-01-27 10:37:09 +01:00
David Rupprecht
ceda458bb3
Added MAC NR to EUTRA and NR with stack interfaces including MAC config build
...
Moved MAC logical channel config to MAC interface types
2021-01-27 10:37:09 +01:00
David Rupprecht
e0420049e3
Build infrastucture for reconfig
2021-01-27 10:37:09 +01:00
David Rupprecht
64299960bd
Added procedure for NR reconfiguration and RRC with NR complete
2021-01-27 10:37:09 +01:00
Xavier Arteaga
2baccc8b13
Set NR-PDSCH default table to 256QAM
2021-01-25 22:04:55 +01:00
Xavier Arteaga
3ee667c4a5
SRSUE: added NR-PDSCH constellation in GUI
2021-01-25 22:04:55 +01:00
Xavier Arteaga
59114206ae
SRSUE: Unify PRACH reconfiguration conditions
2021-01-21 21:11:15 +01:00
Andre Puschmann
a09fb95c25
proc_ra: protect RA procedure from concurrent thread access
...
that patch addreses issue #2199 by defering RA-related calls that
are executed from within PHY workers.
The time-critical bits of more complex functions such as tb_decoded()
are still executed in the PHY worker thread but the state machine
manipulation is defered.
2021-01-20 17:12:10 +01:00
Ismael Gomez
a6423442c2
Refactor NR RA files and fix header includes all over library ( #2162 )
...
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test
* Minor refactors in NR workers and ue_dl
* Fix include issues
* fix compilation issues
2021-01-20 15:46:46 +01:00
David Rupprecht
1a10c783b5
Faking measurements
2021-01-08 17:20:08 +01:00
David Rupprecht
f7d313147a
Added infrastrukture for measurements
...
Init rrc_nr as part of the LTE stack
2021-01-08 17:20:08 +01:00
David Rupprecht
4305929ec7
Hardcoded NR/MRDC-Capabilities
2021-01-08 17:20:08 +01:00
David Rupprecht
b79eef0860
Introducing nr_rrc <-> rrc interface for eutra and nr cap query
2021-01-08 17:20:08 +01:00
David Rupprecht
9eb0b72cb4
Added rrc function has_nr_dc
2021-01-08 17:20:08 +01:00
Andre Puschmann
37fc1c59e3
fix DRB release logging
...
this caused wrong logs because the LCID was printed based on the assumption
that the DRB LCID is alwasy 2 + drb ID
Use drb_id as drb_cfg key
2021-01-08 17:20:08 +01:00
Xavier Arteaga
b3200d9ef5
Renaming common UL/DL DMRS related types and initial NR PUSCH implementation
2020-12-30 13:39:08 +01:00
Xavier Arteaga
909e5de34f
Fix NR workers
2020-12-28 10:11:08 +01:00
Andre Puschmann
c8801578df
gw: use std::chrono for metrics and fix nan display
...
* replace gettimeofday with std::chrono
* fix nan printing when nof_tti is zero (at startup)
2020-12-16 20:39:21 +01:00
David Rupprecht
81609d48dd
Added measurment report for interrat nr15
...
Added function for removing interrat triggers
2020-12-16 14:12:38 +01:00
David Rupprecht
5df2fb1fa1
Added rrc has nr neighbour cells
2020-12-16 14:12:38 +01:00
David Rupprecht
0e4d77da76
Refactor eutra reporting code and add report triggers for inter rat measurements
2020-12-16 14:12:38 +01:00
David Rupprecht
e4e67eebce
Added infrastucture to process measurments and evaluate interrat triggers
2020-12-16 14:12:38 +01:00
David Rupprecht
25e5b88704
Added NR range_to_value function and debug logging for measurements
2020-12-16 14:12:38 +01:00
David Rupprecht
ce4526a935
Extended measurements interrat nr r15 testcase with measurements
2020-12-16 14:12:38 +01:00
David Rupprecht
826dd32c89
Rename meas_cell to meas_cell_eutra
...
Added meas_cell_nr class
Make meas_cell list as template class
Inheritance rrc_cell to meas_cell_nr
Added process_new_cell_meas_nr function
2020-12-16 14:12:38 +01:00
David Rupprecht
62b558fccf
Move rat type to common header
...
Removed phy measurement from rrc interface phy
Updated rrc interface for handling measurements
2020-12-16 14:12:38 +01:00
David Rupprecht
848496bb0f
Moved get_earfcn to srslte get_carrier_freq func
2020-12-12 15:59:27 +01:00
David Rupprecht
d4fb2dfb16
Added handling of inter rat measurement config function
...
Make report config more agonistic
2020-12-12 15:59:27 +01:00
David Rupprecht
f4b0042c10
Added minimal interrat and nr measurement testcase
...
Added the handling of nr_r15 meas config
Added seperate handling of reportConfig for eutra
2020-12-12 15:59:27 +01:00
Andre Puschmann
ab598dae3b
gw: calculate GW throughput based on TTI timing
...
similiar like the RLC patch, MAC TTIs are passed to GW so the
rx/tx rate can be calculated based on the LTE timing
2020-12-12 15:59:27 +01:00
Xavier Arteaga
d5d3594f49
Removed unused attribute
2020-12-12 15:59:26 +01:00
Xavier Arteaga
f9643843a0
SRSENB/UE Fixed NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
ac930003be
SRSUE: Integrated NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
a908fb6c5b
Fix NR srsue/srsenb. Initial PHY NR in SRSENB.
2020-12-12 15:59:26 +01:00
Xavier Arteaga
2b2db90933
SRSUE: initial NR workers
2020-12-12 15:59:26 +01:00
Xavier Arteaga
eed9405e40
Moved NR MAX MIMO layers to carrier
2020-12-12 15:59:26 +01:00
Xavier Arteaga
c6798653be
SRSUE: created initial PHY LTE worker pool
2020-12-12 15:59:26 +01:00
Andre Puschmann
07d2bc4fe8
change license header to agnostic version with hint to root LICENSE file
2020-12-12 15:59:25 +01:00
Xavier Arteaga
53d8319d2b
SRSUE: protect secondary serving cell synch from concurrent access
2020-12-12 15:59:25 +01:00
Xavier Arteaga
287e651ef1
SRSUE: Protect nullptr buffer in secondary serving cell synch
2020-12-12 15:59:25 +01:00
Xavier Arteaga
959f37ae81
SRSUE: Renamed PHY scell_state to cell_state
2020-12-12 15:58:33 +01:00
Xavier Arteaga
4b8cd7ce92
SRSUE: protect scell state
2020-12-12 15:58:33 +01:00
Xavier Arteaga
c5cb4d9984
SRSUE: Added time accurate SCell activation
2020-12-12 15:58:33 +01:00
Xavier Arteaga
f64c268a69
SRSUE: Refactored MAC/RRC SCell Activation/Deactivation
2020-12-12 15:58:33 +01:00
Pedro Alvarez
454162cea7
Deleted nas_interface_stack.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
604e79214d
Changed NAS is_attached interface to is_registered.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
5649ecaab0
Renamed nas_common.h to nas_config.h. Moved emm_state_t into nas_emm_state.h and nas_emm_state.cc.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
96f39da5d7
Fixes for airplane simulator.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
14844a168a
Created new class to hold all NAS states for the NAS state machine. Added EMM-DEREGISTERED substates and EMM-REGISTERED substates.
...
Decoupled PLMN selection, attach request and service request. Removed RRC connect procedure from NAS.
2020-12-12 15:58:33 +01:00
Andre Puschmann
2be85217fd
mac,ue: reset demux when restting MAC
...
this potentially fixes the issue we see during HO and RLF
under high DL load.
The issue happens because buffered DL PDUs are delivered to
RLC after reestablishing RLC that confuse the receiving
RLC entity bc the sequence numbers are very high, as opposed
to begin with zero again after reestablishment.
2020-12-12 15:58:33 +01:00
Andre Puschmann
7cf919e2af
Fix MAC PDU packing after sending Truncated BSR ( #2004 )
...
* mac_test: add extended TBSR unit test
unit test to MAC UL packing after sending a TBSR
this fixes the MAC issues described in issue #2002
* mux: fix updating of LCG buffer state after packing PDU
we've previously lowered the buffer state of the LCG according
to the bytes that have been scheduled, but not according to
those that have been actually included in the PDU.
* proc_bsr: fix LCG buffer state updating for TBSR
when sending a TBSR do not update the internal buffer
state of the BSR proc.
This caused issues because the buffer state for all LCG that
are not included in the TBSR are set to zero, although at least
one LCG does have data to transmit.
* rlc_am: include LCID when logging retx of SN
2020-12-12 15:58:32 +01:00
Francisco Paisana
510959b50f
update nr asn1 files, and asn1 tests
2020-12-12 15:58:32 +01:00
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
2020-11-06 09:33:36 +01:00
Xavier Arteaga
32ea840a30
INTRA: better ring-buffer protection
2020-11-02 16:31:37 +01:00
Xavier Arteaga
369cffec00
More deterministic SCell search test
2020-11-02 16:31:37 +01:00
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
2020-10-28 12:05:53 +01:00
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
2020-10-28 12:05:53 +01:00
Francisco Paisana
514deaf25b
fix resetting of phy and mac during reestablishment
2020-10-22 19:55:46 +02:00
Andre Puschmann
a366500a78
rrc_proc: init cs_result to none
...
detected by Coverity CID 363053
2020-10-18 15:56:16 +02:00
Francisco Paisana
665b3996bb
now the phy controller handles the scenario where the phy cell selection failed to be initialized
2020-10-16 15:54:42 +01:00
Andre Puschmann
937067a205
proc_phr: rename start_periodic_timer() and make sure its only started if a valid config is present
2020-10-13 17:38:45 +02:00
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.
2020-10-13 17:38:45 +02:00
Francisco Paisana
e7239163e9
silence noisy unhandled in_sync_ev logs
2020-10-12 18:24:14 +01:00
Francisco Paisana
f185272367
added comments explaining the meaning of the cell reselection procedures
2020-10-12 13:42:46 +01:00
Francisco Paisana
49e7b8e36e
- Change periodicity of cell reselection after a new serving cell has been selected
...
- Enable PHY intra measurements during RRC_IDLE
2020-10-12 13:42:46 +01:00
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
2020-10-12 13:42:46 +01:00
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.
2020-10-08 09:46:34 +01:00
Pedro Alvarez
bcb422736c
Save and restore NH on handover and handover failure.
2020-10-08 09:46:34 +01:00
Pedro Alvarez
3eb525563a
Fix issue reading MNC length in USIM.
2020-10-07 10:04:50 +01:00
Xavier Arteaga
6ae47b6510
SRSUE: Deafult PUCCH/SRS does not imply full PHY dedicated defaults
2020-10-07 09:58:23 +02:00
Pedro Alvarez
22a6dc305f
Moved common variables and functions from the usim and pcsc_usim classes into usim_base class.
2020-10-05 12:14:46 +01:00
Francisco Paisana
4ebe92f6a3
refactor phy configuration in the rrc to keep track of activated scells, and cells configurations
2020-10-02 18:50:29 +01:00
Francisco Paisana
d910c910a4
rrc::meas_cell now uses stack timers instead of system timers.
2020-10-02 17:53:02 +01:00
Francisco Paisana
023d32975a
avoid use of pointers to meas_cells in ho_proc as they may become dangling
2020-10-02 17:53:02 +01:00
Francisco Paisana
072b7be582
renamed rrc::cell_t to rrc::meas_cell
2020-10-02 17:53:02 +01:00
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
2020-10-01 20:15:41 +02:00
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%
2020-10-01 20:09:16 +02:00
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.
2020-10-01 18:48:07 +01:00
Francisco Paisana
1f2cca8909
in the rrc reconf procedure, handle the scenario where the rrc reconfiguration message does not config the phy
2020-10-01 11:25:21 +01:00
Francisco Paisana
c6f4776a6f
send the nassdus sooner in the rrc reconf procedure
2020-10-01 11:25:21 +01:00
Francisco Paisana
fc49b5a030
implemented rrc reconfiguration procedure that includes a continuation when phy configuration is complete
2020-10-01 11:25:21 +01:00
Francisco Paisana
b3eb9651d6
disable cqi in scells during handover procedure
2020-09-29 12:10:42 +01:00
Francisco Paisana
8a9a95a937
ensure sibs are acquired if cell selection calls cell search
2020-09-29 11:06:32 +01:00
Francisco Paisana
045f647914
fix edge case where serving cell is good enough for reestablishment but the sibs are not yet acquired
2020-09-28 23:45:13 +01:00
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
2020-09-28 18:39:28 +01:00
Pedro Alvarez
b3bfe336a9
Make sure that remote address test has a ip mask
2020-09-28 16:08:28 +02:00
Sylvain Munaut
5783c01cbb
tf_packet_filter: Improve support for the different filter types
2020-09-28 16:08:28 +02:00
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
2020-09-25 13:03:50 +01:00
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
2020-09-24 22:26:05 +02:00
Pedro Alvarez
86f4d469c6
Added some functions to save and restore AS keys for the case of failed handover in the USIM
2020-09-24 13:30:08 +01:00
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
2020-09-23 21:46:03 +02:00
Francisco Paisana
cf89d6645b
add comments explaining each function of the reest procedure
2020-09-23 14:59:38 +01:00
Francisco Paisana
d068d594af
implemented rrc reestablishment procedure part after sending reest request
2020-09-23 14:59:38 +01:00
Francisco Paisana
73e21daeb2
refactor reestablishment procedure to more closely follow TS.
2020-09-23 14:59:38 +01:00