Francisco Paisana
04e192eb0f
redesign fsm to use transition table
2020-05-05 19:42:34 +01:00
Francisco Paisana
1c74c5675e
remove ambiguous enter/exit template method
2020-04-27 22:19:08 +01:00
Francisco Paisana
e1ac6d7cfe
use macro to disable throw
2020-04-27 22:19:08 +01:00
Francisco Paisana
6ddedd5972
moved pdu to common mac folder
2020-04-22 10:06:08 +01:00
Francisco Paisana
df0da116ce
removed enter state visitor, and srslte::same_state return special case in fsms
2020-04-17 17:09:48 +01:00
Francisco Paisana
63142899d1
simplified some of the fsm sfinae conditions
2020-04-17 17:09:48 +01:00
Francisco Paisana
6322e447e9
fixed issue with subfsm revisits not starting in initial substate
2020-04-17 17:09:48 +01:00
Francisco Paisana
d40dcd28f3
removed uneeded swap method
2020-04-17 11:38:24 +01:00
Francisco Paisana
b5abba41a3
use normal polymorphism to create vtable
2020-04-17 11:38:24 +01:00
Francisco Paisana
e2b10307ea
changed inplace_task name to move_callback
2020-04-17 11:38:24 +01:00
Francisco Paisana
ee50ed08c2
allow inplace task to be called in const contexts
2020-04-17 11:38:24 +01:00
Francisco Paisana
ef834b3c60
changed inplace_task file name
2020-04-17 11:38:24 +01:00
Francisco Paisana
a6b7c5d1d2
inplace task now uses small buffer optimization for bigger captures
2020-04-17 11:38:24 +01:00
Francisco Paisana
4b2b76cf01
created inplace task to avoid mallocs in task enqueuing
2020-04-17 11:38:24 +01:00
Francisco Paisana
4ac07e5abb
simplified power off state transition
2020-04-09 18:57:18 +01:00
Francisco Paisana
ff988127fe
wrote nas fsm test
2020-04-09 18:57:18 +01:00
Francisco Paisana
977a1acc5e
eliminated unhandled_event special function. Use react instead.
2020-04-09 18:57:18 +01:00
Francisco Paisana
6e34dadce2
reverted back to tuples to store fsm state_list
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
2e15514d00
fix enter/exit calls
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
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
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
Francisco Paisana
82cb6baef0
now the whole ue and enb mac uses the logmap
2020-03-20 11:32:03 +00:00
Xavier Arteaga
e832769ae6
Updated copyright
2020-03-16 11:26:06 +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
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
Francisco Paisana
6b96d21732
extension of the timer test to check safe running timer erasure
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
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
Francisco Paisana
64c9302b43
added wireshark generation to SCell Activation CE pdu_test
2020-02-14 21:49:01 +00:00
Francisco Paisana
e51e2ac062
added scell activation to pdu_test
2020-02-14 21:49:01 +00:00
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
2020-02-06 14:40:47 +01:00
Xavier Arteaga
0edd8f74d8
fix memory leak in timer test
2020-02-04 16:33:46 +01:00
Xavier Arteaga
b88a8635f1
Reduce stress timer test number of timers
2020-02-04 16:33:46 +01:00
Xavier Arteaga
e0cc1fd697
Reduce time of timer_test; use unique_lock instead of guard
2020-02-04 16:33:46 +01:00
Xavier Arteaga
22da8dfbb1
srsLTE: protected priority queue in timers
2020-02-04 16:33:46 +01:00
Francisco Paisana
c8cd12ac53
updated the test logging utils
2020-01-29 17:15:35 +00:00
Francisco Paisana
c537d38650
separated sched tests based on output into a separate file. Added scheduler random tester to unit tests
2020-01-29 17:15:35 +00:00
Francisco Paisana
3e2de6dd3e
new logmap class to store globally accessible logs
2020-01-29 14:20:43 +00:00
Francisco Paisana
07a9e889a4
added a singleton map to facilitate access to each layer logger
2020-01-29 14:20:43 +00:00
Francisco Paisana
91d83fc20d
different way to retrieve a proc future
2020-01-24 10:10:27 +00:00
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
2019-12-16 16:04:22 +01:00
Andre Puschmann
cf1e742120
add a simple log_filter test to print a long hex message
...
the purpose of this is to show that the hex message is cut if the
lenght exceeds the size of the preallocated buffer
2019-12-14 22:37:08 +01:00
Andre Puschmann
7885b5b9ee
add CMake flag to enable 5G-NR components
2019-12-11 17:50:11 +01:00
Francisco Paisana
c9f092e8e9
created a nullsink and a TESTASSERT for C
2019-11-28 11:44:54 +00:00
Francisco Paisana
b0e0b3232f
fix linking issue
2019-11-15 17:57:36 +00:00
Francisco Paisana
2de0eee9c7
clean up some comments
2019-11-15 17:57:36 +00:00
Francisco Paisana
76673d2d40
cleaned up socket util methods, and made the S1AP non-blocking.
2019-11-15 17:57:36 +00:00
Francisco Paisana
2c3e4a3daf
creation of util class net_addr_t that provides methods for conversion of IP addr const char* to sockaddr_in
2019-11-15 17:57:36 +00:00
Francisco Paisana
31dffde6c3
simplified interface and made it more generic to different types of sockets
2019-11-15 17:57:36 +00:00
Francisco Paisana
e37a718f21
created a sctp socket class
2019-11-15 17:57:36 +00:00
Francisco Paisana
131b1a7e41
added a class to handle multiple sockets via a select
2019-11-15 17:57:36 +00:00
Andre Puschmann
f4a0bebe1f
fix handling of invalid MAC LCIDs
2019-10-31 21:43:27 +01:00
Andre Puschmann
aa9733eb59
add packing for CCCH over UL-SCH for MAC NR
2019-10-31 21:43:27 +01:00
Francisco Paisana
9ae5563331
fixed timer issue with setting the duration. Setting the duration cannot reset the on-going timer run
2019-10-23 19:33:25 +01:00
Francisco Paisana
d2c56caf7e
applied new timer class to the whole code base
2019-10-23 19:33:25 +01:00
Francisco Paisana
5953d5ef96
fixed some potential bug related to timer getting stopped, but signaling that it expired
2019-10-23 19:25:48 +01:00
Francisco Paisana
551192705e
allow for pre-reservation of timers vector and priority queue
2019-10-23 19:25:48 +01:00
Francisco Paisana
50a1c9d557
addressed potential overflow, and extended timer test to check if ordering is working correctly
2019-10-23 19:25:48 +01:00
Francisco Paisana
349646a9da
created a new class for timers. It uses a priority queue to avoid incrementing all timers every tti (step_all() went from O(N) to O(1)), and that is not bounded in number of timers. Not being bounded will be useful for layers that require one or more timers per UE
2019-10-23 19:25:48 +01:00
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.
2019-10-23 18:19:25 +02:00
Francisco Paisana
8864787f59
added the continuation functionality to procedures via the "then()" method.
2019-10-23 18:19:25 +02:00
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()
2019-10-23 18:19:25 +02:00
Andre Puschmann
89889d6df5
add packing and unpacking test for MAC PDU only containing padding bytes
2019-10-11 17:35:52 +02:00
Francisco Paisana
a2f1998350
fix issue with thread pool shut down
2019-10-04 10:24:21 +02:00
Francisco Paisana
3f1fad3f4e
bug fix: avoid renaming thread in worker ctor
2019-10-04 10:24:21 +02:00
Francisco Paisana
c413fadea9
created a queue-based thread pool. Tasks are inserted into a queue and then popped by the thread pool workers to be processed.
2019-10-02 11:04:47 +02:00
Andre Puschmann
2f47010eb6
fix various uninitialized vars
2019-09-24 13:23:30 +02:00
Francisco Paisana
7e67aee839
resolved the uninit variable issue in the queue_test
2019-09-18 12:18:33 +02:00
Francisco Paisana
b2bc05c50a
make queue_test less dependent on thread timings
2019-09-18 12:18:33 +02:00
Francisco Paisana
ceba00f00e
extended multiqueue to support blocking push
2019-09-18 12:18:33 +02:00
Francisco Paisana
63457f195c
extented queue test
2019-09-18 12:18:33 +02:00
Francisco Paisana
647c624423
created a multiqueue handler, and started using it for the ue stack
2019-09-18 12:18:33 +02:00
Andre Puschmann
6baa89cd2c
add MAC NR PDU packing and associated unit tests
2019-09-17 17:19:13 +02:00
Pedro Alvarez
004db4a067
Applied clang-format to zuc_support PR.
2019-09-10 13:46:21 +02:00
David Rupprecht
f05bb12c78
Process with EIA3 test cases and fix EIA3
2019-09-10 13:46:21 +02:00
David Rupprecht
d580a94dab
Add EIA3 and test case
2019-09-10 13:46:21 +02:00
David Rupprecht
7e13860dd5
Add decryption function and all tests for enc
2019-09-10 13:46:21 +02:00
David Rupprecht
ef4cf7aa52
First ZUC working test case
2019-09-10 13:46:21 +02:00
Ismael Gomez
c92c61d560
Optimized front-end logging processing ( #641 )
...
Avoid memory allocation and stringstream in log frontend calls (executed from worker threads). Uses a buffer pool of fixed buffer and vsnprintf
2019-09-04 15:32:29 +02:00
Ismael Gomez
69edee4e6c
Fix issues in uplink QoS ( #636 )
...
Fix bugs in Long BSR and Truncated BSR and added unit tests
2019-09-02 22:48:41 +02:00
Francisco Paisana
c9d3b61038
added resumable procedures to make RRC and NAS non-blocking
2019-08-08 10:56:54 +02:00
yagoda
408400bee6
adding fixes and tests for eMBMS
2019-07-21 22:27:17 +02:00
Andre Puschmann
94cc61e4b1
add MAC PDU pack test for max size TB PDU
2019-07-16 17:31:03 +02:00
Andre Puschmann
6b2961fcee
add MAC DL-SCH unpacking test
2019-07-05 17:24:06 +02:00
Andre Puschmann
92f0d58856
mac: move further init/config into ctor to allow early logging, etc.
2019-07-05 17:24:06 +02:00
Andre Puschmann
fab75592ec
fix MAC PDU padding with only padding and add test accordingly
2019-06-26 17:57:25 +02:00
Andre Puschmann
b6d7fd5def
improve error handling in PDU packing
2019-06-26 17:57:25 +02:00
Andre Puschmann
6d586d84a8
extend MAC PDU test
2019-06-26 17:57:25 +02:00
Andre Puschmann
ee1f910877
pdu: add unit test for packing and unpacking RAR PDUs
2019-05-30 13:06:42 +02:00