Francisco Paisana
6e34dadce2
reverted back to tuples to store fsm state_list
2020-04-09 18:57:18 +01:00
Francisco Paisana
dbbeb1ec3b
fix log order
2020-04-09 18:57:18 +01:00
Francisco Paisana
4036a6887a
clean up enter/exit state methods
2020-04-09 18:57:18 +01:00
Francisco Paisana
8d3427e88a
removed namespacing from state printing
2020-04-09 18:57:18 +01:00
Francisco Paisana
b699e0e490
enter/exit moved outside of the states, into the fsm. Now i just use the type_name function to get a state name
2020-04-09 18:57:18 +01:00
Francisco Paisana
4a4827a603
created a method to detect unhandled events
2020-04-09 18:57:18 +01:00
Francisco Paisana
ec3ef4474e
created a simple procedure fsm
2020-04-09 18:57:18 +01:00
Francisco Paisana
1aae510e9d
enter/exit are now being called in order
2020-04-09 18:57:18 +01:00
Francisco Paisana
dd377becaa
small fixes in state transitions
2020-04-09 18:57:18 +01:00
Francisco Paisana
dc0427804f
clean up comments and add some util functions
2020-04-09 18:57:18 +01:00
Francisco Paisana
7dc1489ea7
reintroduced optional enter/exit methods for each state
2020-04-09 18:57:18 +01:00
Francisco Paisana
7c76a64238
fix move/copy correctness
2020-04-09 18:57:18 +01:00
Francisco Paisana
be5a33f9b7
deleted unused fsm methods
2020-04-09 18:57:18 +01:00
Francisco Paisana
6675e92806
implement fsm based on choice type
2020-04-09 18:57:18 +01:00
Francisco Paisana
018f9e7db2
implement visit pattern
2020-04-09 18:57:18 +01:00
Francisco Paisana
278a1686fb
creation of choice/variant type
2020-04-09 18:57:18 +01:00
Francisco Paisana
a2ade9edd1
break down rrc_interface_types.h into multiple files. moved pdcp_config.h to same folder
2020-04-09 10:10:04 +01:00
Francisco Paisana
2950d26daa
remove asn1 namespace from srsue files
2020-04-09 10:10:04 +01:00
Andre Puschmann
9307a54512
pdcp: adding enable_security_timed() method
...
this is an extension to the currently available security
configuration and activation methods provided by PDCP.
The new call allows to specify a Rx and Tx SN after which the
entire security config, i.e. integrity and ciphering, should
be enabled.
this is mainly required for the PDCP entity of the conformance
testing SS but could potentially also be used by the eNB
to enable security for PDCP after sending the SecModeCommand
for example.
the extra call was added to not break the existing API.
2020-04-09 10:55:13 +02:00
Pedro Alvarez
f4d648b26e
Removed rx_count state variable from PDCP LTE entity. Updated get_bearer_status(...) acordingly. Added get_last_submitted_rx_count() getter.
2020-04-09 10:55:13 +02:00
Francisco Paisana
7932a6bed7
allow the use of move_tasks in procedures
2020-04-08 14:55:33 +01:00
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.
2020-04-04 22:51:43 +02:00
Andre Puschmann
057844d7d6
signal_handler: increase alarm timeout to 5s and use raise instead of exit()
...
it seems that exit() causes problems when threads couldn't be stopped
properly, which is the reason why we have to call alarm() in the first place.
therefore, send a SIGKILL to our process and make sure we don't leave any
zombie threads running.
2020-04-03 22:22:04 +02:00
Xavier Arteaga
25312e81b4
SRSUE: cell select RRC MEAS CFO is carried to PHY Cell object
2020-04-02 13:52:23 +02:00
Xavier Arteaga
6d355ab61e
SRSUE: Fix HO initial CFO
2020-04-02 13:52:23 +02:00
Francisco Paisana
c661025cda
fix log tti, and print a warning when the ul_harq tti does not match existing ones
2020-04-01 15:02:21 +01:00
Francisco Paisana
30ae2226c1
common interface for stack multiqueue tasks, background tasks and timers
2020-03-31 13:42:06 +01:00
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
2020-03-31 12:32:52 +02:00
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.
2020-03-30 11:23:40 +02:00
Andre Puschmann
0e76b9ed15
nas: set NAS key set identifier to no key available when attaching with IMSI
2020-03-28 21:24:13 +01:00
Francisco Paisana
575475962f
the rlc um rx does not need a mutex bc it is always called in the stack thread
2020-03-26 20:11:35 +00:00
Xavier Arteaga
cca3cccfbe
Improved fading model generation
2020-03-26 08:23:07 +01:00
Xavier Arteaga
a44a61d781
Fix HST channel emulator for keeping coherent phase between frames
2020-03-26 08:18:24 +01:00
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
2020-03-25 16:56:32 +01:00
Francisco Paisana
8aa44928e9
fix 5g compilation errors
2020-03-25 15:50:30 +00:00
Francisco Paisana
344eaf49ec
use logmap in the whole enb and ue
2020-03-25 15:50:30 +00:00
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 ")
2020-03-24 22:36:27 +00:00
Xavier Arteaga
cd2f86687f
Correction in AWGN generator
2020-03-24 12:16:28 +01:00
Xavier Arteaga
8e891b7038
Added AWGN channel to SRSUE and SRSENB
2020-03-24 12:16:28 +01:00
Xavier Arteaga
c107b04f5a
Implemented high performance AWGN generator
2020-03-24 12:16:28 +01:00
Xavier Arteaga
b5be0b94b8
Added SIMD i32 add and and functions
2020-03-24 12:16:28 +01:00
Xavier Arteaga
8bf7acdeaf
Added vector malloc for i32 and u32
2020-03-24 12:16:28 +01:00
Francisco Paisana
9bde6d442c
removed the uneeded locks from the pdcp
2020-03-23 19:58:18 +00:00
Francisco Paisana
f3890b2908
use of mutexed cache to store the valid lcids that can be checked from gw thread
2020-03-23 19:58:18 +00:00
Francisco Paisana
e91a7ea513
removed stack-mac interface dedicated methods. We use now the task dispatch methods instead
2020-03-22 11:50:58 +00:00
Francisco Paisana
de03c96c3b
mac::process_pdus now uses the stack task dispatch interface
2020-03-22 11:50:58 +00:00
Francisco Paisana
de3c28e52d
added task dispatch capabilities to stack interface
2020-03-22 11:50:58 +00:00
Francisco Paisana
46a1be3e76
updated mac-rlc interface to use unique_byte_buffer
2020-03-22 11:50:58 +00:00
Xavier Arteaga
2c93f6d20a
Fix PUCCH DMRS correlation
2020-03-22 08:49:12 +01:00
Ismael Gomez
fd3d4a7874
Refactor thread_pool: use std::mutex and fix some hidden potential bugs
2020-03-22 08:48:40 +01:00
Francisco Paisana
82cb6baef0
now the whole ue and enb mac uses the logmap
2020-03-20 11:32:03 +00:00
Francisco Paisana
45bc123967
remove manual tti counters from the rrc
2020-03-19 21:52:53 +00:00
Francisco Paisana
770f04b92a
the rrc now only works with the stack latest tti, instead of mac's tti
2020-03-19 16:47:55 +00:00
Francisco Paisana
d3f49d0e3c
changed interface sync-stack to allow tti jumps > 1
2020-03-19 16:47:55 +00:00
Francisco Paisana
fb967d17a2
now we can disable tprofs individually
2020-03-19 10:59:37 +00:00
Francisco Paisana
e73cbb09b0
created tprof statistic for sliding windows
2020-03-19 10:59:37 +00:00
Francisco Paisana
2601d106f5
fix license string
2020-03-19 10:59:37 +00:00
Francisco Paisana
deb76d5dbd
improved design to avoid data structures, and allow guarded start/stop even in lambdas
2020-03-19 10:59:37 +00:00
Francisco Paisana
8a54aef89d
created a better/more composable design for time measures
2020-03-19 10:59:37 +00:00
Francisco Paisana
854211496b
redesign of tprof for thread safety
2020-03-19 10:59:37 +00:00
Francisco Paisana
269c852767
created a class for time profiling. An object of such class, if disabled, has almost zero overhead. Added a compile-time flag to turn on/off time profiling
2020-03-19 10:59:37 +00:00
Xavier Arteaga
f3f03ad12d
SRSUE PHY: Add extra debugging information to errors
2020-03-18 16:12:51 +01:00
Francisco Paisana
597334c4bf
limit the rlc queue size for suspended bearers
2020-03-18 13:22:08 +00:00
Francisco Paisana
ede09cb9b2
added dynamic CFI capability to the eNB scheduler
2020-03-17 22:06:37 +00:00
Xavier Arteaga
ada8772f57
Initial srenb TA compensation
2020-03-17 17:21:43 +01:00
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.
2020-03-17 09:58:01 +01:00
Andre Puschmann
4e3e537982
fix doxygen file description
2020-03-17 09:58:01 +01:00
Xavier Arteaga
0408d357a7
Minor fixes
2020-03-16 15:07:12 +01:00
Ismael Gomez
73447972d8
Fix issue with simultaneous CQI and ACK/NACK transmission in CA ( #1067 )
...
* Fix memory corruption when phy calling mac scheduler and not yet initiated
* Do not drop CQI if collision with ACK/NACK and PUSCH
* Allocate CQI resources for SCell properly
* Use UE_PCELL_CC_IDX macro
* Protect ul_sched from being called if not yet started
2020-03-16 13:10:21 +01:00
Xavier Arteaga
e832769ae6
Updated copyright
2020-03-16 11:26:06 +01:00
yagoda
943d90bc48
consolidating different ringbuffer functionalities into one, adding unit tests for ringbuffer
2020-03-16 07:48:10 +01:00
Daniel Willmann
275f26d875
liblte_mme.h: Add/fix UE_TEST_LOOP/DEACT_TEST_MODE msg types
2020-03-15 18:27:51 +01:00
Francisco Paisana
5330249625
created tti_point type and unit test. Added also the tti_point to the scheduler harqs, and rrc procedure
2020-03-13 19:20:40 +00:00
Xavier Arteaga
5af89513eb
use double precission for frequency in srsue and srsenb
2020-03-13 14:01:58 +01:00
Xavier Arteaga
834a081c09
Add EPRE measurement to PUSCH decoder
2020-03-13 14:01:58 +01:00
Ismael Gomez
e8b8c9922e
Add RF per-channel frequency band constraints ( #1026 )
2020-03-12 23:06:09 +01:00
Francisco Paisana
7548402632
change scell activation interface to use arrays. Added a method to the scheduler to get the current set of activated carriers
2020-03-11 21:56:33 +01:00
Xavier Arteaga
590847e794
TTI semaphore requires protection in wait_all
2020-03-11 21:17:13 +01:00
Xavier Arteaga
76408b195e
Rename TX_DELAY and FDD_HARQ_DELAY_MS
2020-03-11 21:16:36 +01:00
Xavier Arteaga
65711d06dc
PRACH TA base default to 0 and apply clang-format
2020-03-11 16:58:00 +01:00
Xavier Arteaga
e8f9bfc6ba
Addition of PRACH TA correction
2020-03-11 16:25:56 +01:00
Andre Puschmann
a8acd235f6
extend eNB MAC to support multiple CC per UE
...
- add tx/rx softbuffers for each CC that a UE might have
- make sure to call assign correct buffers when iterating
over the CC for UL/DL grant assignment
2020-03-11 10:16:23 +01:00
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.
2020-03-11 09:00:38 +00:00
Francisco Paisana
9ad80ee29f
added initial_dl_cqi to the enb rr.cfg parser
2020-03-10 22:06:07 +00:00
Francisco Paisana
fad897cb35
DL scheduler metric now takes into account the min and max of RBGs possible. This is to forbid segmentation of SRB0 allocations
2020-03-10 22:06:07 +00:00
Ismael Gomez
bf6db92f04
Reset SRS properly on PHY defaults
2020-03-10 17:25:48 +01:00
Andre Puschmann
f2e1bfa699
refactor naming for s/p/cell structs and {enb,ue}_cc_idx
2020-03-10 15:01:00 +01:00
Francisco Paisana
639f473042
fixed unsigned signed comparison
2020-03-10 14:17:49 +01:00
Francisco Paisana
1e63fa41cf
made ue_cc_idx int to set to -1 for rar and bc allocs
2020-03-10 14:17:49 +01:00
Francisco Paisana
f3c3c52fcd
added ue_cc_idx to dci allocation
2020-03-10 14:17:49 +01:00
Francisco Paisana
e62972d38e
fix fdd delays in scheduler
2020-03-10 14:17:49 +01:00
Xavier Arteaga
002a68e183
SRSENB: hard-coded parametrized PUCCH DMRS correlation threshold
2020-03-10 09:19:54 +01:00
Xavier Arteaga
64caa4321b
Fix UL control decoding. Some minor aesthetic changes.
2020-03-10 09:19:54 +01:00
Xavier Arteaga
44a5ce172e
Added vector srslte_vec_avg_power_sf
2020-03-10 09:19:54 +01:00
Andre Puschmann
2edecea33e
fix SIB transmission for CA
...
Avoid double buffering of SIBs in MAC as this would require one buffer for each CC.
Instead, use byte_buffer managed by RRC that contains packed SIBs to avoid
double memcpy for each SIB tx. Only use MAC provided buffer in error case.
Also avoid MAC calling RLC for each SIB and call RRC directly.
2020-03-09 14:18:09 +01:00
Andre Puschmann
120ad76c63
refactor cell param handling and fix SIB transmissions
...
- move cell specific eNB params to cell list in rr.conf
- make sure DL EARFCN and DL freq can be used to manually overwrite a single cell config
- fix SIB packing and transmission for multi cell configs
- introduce cell list to MAC
- adapt default enb.conf.example and rr.conf.example
2020-03-06 16:20:44 +01:00
Ismael Gomez
4e12405fff
Remove radio_multi class and organize channels, ports and carrier buffers ( #1019 )
2020-03-06 15:26:48 +01:00
Xavier Arteaga
a968fb02d3
Increase PUCCH correlatiion threasholds
2020-03-06 13:58:49 +01:00
Xavier Arteaga
da701cd82b
SRSENB: Added PUSCH TA and EVM measurement. Some more PHY cleanup.
2020-03-06 13:58:49 +01:00
Xavier Arteaga
47cbbcbd57
Improve PUSCH UCI decoder
2020-03-06 13:58:49 +01:00
Pedro Alvarez
bd3598f774
Moved srsEPC to the new S1AP library. Deleted liblte_s1ap.cc and liblte_s1ap.h.
2020-03-06 11:57:07 +00:00
Xavier Arteaga
96ffe1c3ad
Commented class tti_semaphore
2020-03-06 12:24:28 +01:00
Francisco Paisana
a6320f93b8
remove remaining const_casts
2020-03-05 20:23:07 +00:00
Francisco Paisana
ec1f1cc677
remove const_casts from scheduler. Fix ODR issue
2020-03-05 20:23:07 +00:00
Andre Puschmann
664170fec6
pcap: add CC index when writing PCAP
2020-03-05 20:46:14 +01:00
Pedro Alvarez
afc209711c
Fix jump depending on uninitialized variable in srsenb::sched_ue::set_bearer_cfg_unlocked
2020-03-04 22:03:17 +01:00
Francisco Paisana
62609fdc11
fixed some logs. Also now use one single log obj for all the asn1
2020-03-03 21:26:50 +00:00
Francisco Paisana
fed06138b9
moved rach_detected to stack thread. Created a more friendly interface to enqueue tasks in stack
2020-03-03 21:03:21 +00:00
Andre Puschmann
e4b5fa122f
add set_cell() call to PSCCH and allocate for max PRB in pscch_init()
2020-03-03 16:22:51 +01:00
Andre Puschmann
151ce10a96
remove SL specific CFO correction method
2020-03-03 16:22:51 +01:00
Andre Puschmann
09f7355870
use srslte_cell_sl_t in PSCCH
2020-03-03 16:22:51 +01:00
Andre Puschmann
14000f7ae7
adding phy_common_sl.{c,h}
2020-03-03 16:22:51 +01:00
Andre Puschmann
8b70ff7654
simplify SL chest and add RSRP and sync error measurements
2020-03-03 16:22:51 +01:00
Tiago Alves
cabd9ae742
baseline implementation of pscch
2020-03-03 16:22:51 +01:00
Andre Puschmann
a8bbe551ac
move thread class into srslte namespace to avoid ambiguity between std::thread
2020-03-03 16:22:04 +01:00
Francisco Paisana
ad9e126299
test for different enb_cc_idxs as pcell. Bug fixes
2020-03-02 16:33:31 +00:00
Xavier Arteaga
125747ae4a
Added external C to phy_common header and ACK/NACK feedack mode parser
2020-03-02 12:19:09 +01:00
Xavier Arteaga
a4135e41a5
Added PUCCH collision checker
2020-03-02 12:19:09 +01:00
Xavier Arteaga
f35ed14f76
SRSENB: refactored PHY common UE database
2020-03-02 12:19:09 +01:00
Xavier Arteaga
2fc0832f05
Addition of DL HARQ-ACK generation procedure for eNb DL and minor aesthetic changes
2020-03-02 12:19:09 +01:00
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.
2020-03-01 18:26:45 +01:00
Francisco Paisana
79e5bd94cf
remove timers from priority queue for which run() or stop() was called.
2020-02-29 18:00:11 +00:00
Francisco Paisana
5b2da779b7
new method in timer_handler to dispatch calls without an associated unique_timer
2020-02-29 18:00:11 +00:00
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
2020-02-28 18:03:29 +00:00
Andre Puschmann
5b31c1db43
nas: delete security context when receiving attach reject with cause 3, 6, or 35
2020-02-28 12:52:44 +01:00
Francisco Paisana
32c347fbb1
hide logmap implementation in source file. Export symbols so they can be used by srsASN1 project
2020-02-28 11:33:26 +00:00
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
2020-02-28 11:33:26 +00:00
Xavier Arteaga
e621853566
Minor aesthetics changes
2020-02-28 12:10:32 +01:00
Xavier Arteaga
f261365c91
Initial EVM calculation commit and other easthetic changes
2020-02-28 12:10:32 +01:00
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
2020-02-25 21:28:15 +01:00
Pedro Alvarez
aecfb151ce
Apply clang-format to the lib in preperation for PR.
2020-02-20 20:53:27 +01:00
Pedro Alvarez
d98b888ca4
Separating PDCP read_header function from discard_header_function. Starting to add DRB unit test.
2020-02-20 20:53:27 +01:00
Pedro Alvarez
284a0f7b4e
Starting to add PDCP LTE unit tests. Test failing for now.
2020-02-20 20:53:27 +01:00
Pedro Alvarez
b841859220
Moved pdcp test functionality to a common header. Fixed linking issue in 5GNR PDCP
2020-02-20 20:53:27 +01:00
Pedro Alvarez
5f39c79bda
Moved some more packing functions to base class.
2020-02-20 20:53:27 +01:00
Pedro Alvarez
fdd67c3865
Fix issue in integrity check in PDCP SRBs. Moved some helper functions to the pdcp base class
2020-02-20 20:53:27 +01:00
Pedro Alvarez
965b0ee99b
Starting to fix handling of RX SRB PDUs in PDCP.
2020-02-20 20:53:27 +01:00
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
2020-02-20 20:48:36 +01:00
Francisco Paisana
22f51bb30b
made cell select non-blocking using background threads
2020-02-18 09:47:33 +01:00
Ismael Gomez
d8d10daebe
Fix bug in SRS using the previous grant to compute collision with PUSCH ( #958 )
2020-02-16 21:30:04 +01:00
Ismael Gomez
4fb83ae26d
Run configure_prach_params as a background task
2020-02-16 21:27:24 +01:00
Andre Puschmann
327aa97cfd
add macro for invalid RNTI 0x0
2020-02-15 19:33:25 +01:00
Francisco Paisana
42449b079a
now the scell_activation CE is only for 1 octet. The 4 octet one is not yet supported.
2020-02-14 21:49:01 +00:00
Francisco Paisana
d831522692
addition of SCell Activation CE Cmd to scheduler and MAC
2020-02-14 21:49:01 +00:00
Francisco Paisana
838053e8f2
added SCell Activation CE to scheduler. Handling this CE in the MAC is still missing
2020-02-14 21:49:01 +00:00
Francisco Paisana
a0407dd6f7
created a lock guard for pthread rwlocks. This will avoid using gotos in many cases, and the RAII technique avoids many accidents.
2020-02-14 14:53:57 +00:00
Xavier Arteaga
385102fa2d
SRSENB: minor format, renaming and interface changes
2020-02-13 10:29:00 +01:00
Xavier Arteaga
67c07dfb56
Moved UL/DL PUCCH procedures into pucch_proc
2020-02-13 10:29:00 +01:00
Xavier Arteaga
bf4ecc8064
Fix srsenb PHY and unit/component tests
2020-02-13 10:29:00 +01:00
Xavier Arteaga
7a20e3a51e
Added boolean random generator
2020-02-13 10:29:00 +01:00