Francisco Paisana
b0d2584795
Merge pull request #735 from softwareradiosystems/pr_sched_changes
...
Scheduler changes
2019-10-23 20:40:38 +01:00
Francisco Paisana
8440126d35
removal of srslte::timers class
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
6aec98e140
cleanup of some type names, and other minor changes
2019-10-23 18:47:37 +01:00
Francisco Paisana
c19e0d9423
moved the RAR/Msg3 scheduling to a separate class
2019-10-23 18:46:26 +01:00
Francisco Paisana
388776d1fa
provided a general way to access ue_db from the scheduler - part2
2019-10-23 18:07:42 +01:00
Francisco Paisana
e0b8be61e5
provided a general way to access ue_db from the scheduler
2019-10-23 18:07:42 +01:00
Francisco Paisana
d79e49ed4c
moved the BC scheduling to a separate class/file
2019-10-23 18:06:32 +01:00
Francisco Paisana
837c16557f
started to implement separate SIB scheduler, and its tests. This is particualrly important for CA
2019-10-23 17:48:47 +01:00
Francisco Paisana
84ac16826f
modernized the scheduler code, and removed some clang-tidy warnings
2019-10-23 17:48:47 +01:00
Francisco Paisana
ad0b3ce6e2
modernize the random sched test
2019-10-23 17:39:45 +01:00
Ismael Gomez
3828e03f33
Refactor in eNodeB, add channel emulator and fixes in OFDM
...
* Added channel emulator to srsENB. Added support for fixed delay
* Bug in OFDM when using nonguru mode
* A few changes and refactor in eNodeB
2019-10-23 11:09:39 -05:00
Xavier Arteaga
73517f981e
Minor fixes
2019-10-21 16:17:37 +02:00
Xavier Arteaga
423475173d
Refactored magnitude and argument extraction from sf_worker
2019-10-21 16:17:37 +02:00
Xavier Arteaga
f9a795e985
SRSENB: cleanup and mutex rearange
2019-10-21 16:17:37 +02:00
Xavier Arteaga
8e92baf401
SRSENB: quitsafter entering 'q\n'
2019-10-21 16:17:37 +02:00
Xavier Arteaga
10480f62b3
SRSENB: Split sf_worker and cc_worker
2019-10-21 16:17:37 +02:00
Xavier Arteaga
4238c045a4
fix unitialised value
2019-10-14 14:43:59 +02:00
Xavier Arteaga
ce9bcc1033
fix unitialised value
2019-10-14 14:42:34 +02:00
Ismael Gomez
1d83bb08e2
Changes in ACK procedure to support CA. Tested 1 cell in SISO/MIMO
2019-10-14 11:20:35 +02:00
Francisco Paisana
a2f1998350
fix issue with thread pool shut down
2019-10-04 10:24:21 +02:00
Francisco Paisana
6db0e474be
moved RA waiting procedure to a background task of the stack thread pool
2019-10-02 11:04:47 +02:00
Xavier Arteaga
b3e8c4ae6a
SRSENB: Schedule RI reporting
2019-09-30 15:15:18 +02:00
Ismael Gomez
9325aaddf2
Do not change master clock rate if not necessary. Hint in ue/enb configs for low BW cells
2019-09-27 18:59:55 +02:00
Andre Puschmann
a2ab043c0d
fix memleaks and uninitialized vars found by cppcheck
2019-09-20 10:55:29 +02:00
Ismael Gomez
6bb0790cf1
Fix coverty issues ( #652 )
2019-09-13 15:06:20 +02:00
Pedro Alvarez
004db4a067
Applied clang-format to zuc_support PR.
2019-09-10 13:46:21 +02:00
Pedro Alvarez
1ae8ccda8c
Added EIA3 and EEA3 to default UE capabilities to srsUE. Added parsers for EEA3/EIA3 config options in srsENB and srsEPC
2019-09-10 13:46:21 +02:00
Andre Puschmann
49279c89d8
send DL-DCCH on SRB2 after it has been established
2019-09-09 17:16:22 +02:00
Harald Welte
2e426948fe
[ENB] Add CFSB support
...
This commit introduces CSFB (circuit switched fall-back) capabilities to
srsLTE. Actually, all the eNB has to do is to send a
RrcConnectionRelease with the RedirectedCarrierInfo IE.
The MME triggers this by the S1AP CS Fallback Indicator IE, which may
be present either in the Initial Context Setup Requst or in the
UE Context Modification Request.
As srsLTE has no support for the UE Context Modification Request at all
yet (!), basic support for this message is introduced in this patch.
Both Mobile Originated and Mobile Terminated CSFB with a coupel of
different UE models have been verified using this patch in a setup
consisting of srsENB attached to an undisclosed EPC connected via SGsAP
to a complete Osmocom 2G network.
Closes : #358
Closes : #363
2019-09-09 16:59:00 +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
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
2019-09-04 15:28:09 +02:00
Francisco Paisana
116dc0a57b
fixed group extensions, removed extra presence flag for copy_ptr<T> types as it was just a source of bugs.
2019-09-02 20:21:54 +02:00
Harald Welte
756374419f
SRSENB: Add SIB7 (GERAN neighbor) support
...
This adds the required missing bits to the eNB config file parser
to enable minimalistic support of parsing SIB7 configuration.
SIB7 contains GERAN (GSM) neighbor cell information, which is important
if you are operating a combined 2G+4G netowrk and want to assist the UEs
to reselect GSM cells once they move out of LTE coverage.
An example SIB7 section looks as follows:
sib7 = {
t_resel_geran = 1;
carrier_freqs_info_list =
(
{
cell_resel_prio = 0;
ncc_permitted = 255;
q_rx_lev_min = 0;
thresh_x_high = 7;
thresh_x_low = 7;
start_arfcn = 871;
band_ind = "dcs1800";
explicit_list_of_arfcns = ( 873, 875, 877 );
}
);
};
Closes : #357
2019-08-29 20:47:02 +02:00
Andre Puschmann
343c30be4a
fix RF metrics/logging in eNB
2019-08-07 14:12:57 +02:00
Harald Welte
44977bcdec
[ENB] enb.conf.example: Mention WRITE_SIB_PCAP
...
The documentation talks about a MAC protocol trace, but in fact
it is only a protocol trace of dedicated channels. There's a related
define in the source code, but that's not documented.
Let's at least make the user aware that the MAC pcap trace is
for dedicated channels only, unless he uses that #define.
2019-08-05 11:24:55 +02:00
Harald Welte
d01dd7fb91
[ENB] Fix builds with #define WRITE_SIB_PCAP
...
Building with WRITE_SIB_PCAP was broken in April 2019 in commit
7780b1aba5
. Let's make it work again.
2019-08-05 11:24:48 +02:00
Harald Welte
844994f2cd
[ENB] Fix enabling of MAC pcap file
...
when using
[pcap]
enable = true
filename = /tmp/enb.pcap
in enb.conf, there is no pcap file created.
The problem is somewhere in the way how arguments are handled.
pcap.enable is properly parsed into args.pcap. However, later on,
lte_stack->init(args.stack, rrc_cfg, lte_phy.get()) only passes
args.stack down the road, not args.pcap. enb_stack_lte::init() then
basically uses args.stack.pcap and not args.pcap, and the latter appears
always false.
Let's remove pcap_args_t from all_args and only use the instance in
stack_args_t.
Closes : #359
2019-08-05 11:24:41 +02:00
Pedro Alvarez
6efa944b5e
Removed srslte prefix from pdcp_config_t
2019-07-30 15:01:50 +02:00
Pedro Alvarez
494be243c0
Changed security direction to use an enum.
2019-07-30 15:01:50 +02:00
Pedro Alvarez
f90b69e5f4
More clang-format for PDCP
2019-07-30 15:01:50 +02:00
Pedro Alvarez
964db869a6
Fix mistake in configuring SRB1's PDCP.
2019-07-30 15:01:50 +02:00
Pedro Alvarez
d3b6828082
Changed PDCP configuration to explicitly have tx and rx direction. Decrypt on PDCP NR seems fine.
2019-07-30 15:01:50 +02:00
Pedro Alvarez
73e30743d1
Added enum to PDCP config to replace two bools.
2019-07-30 15:01:50 +02:00
Pedro Alvarez
457f35699d
Reverted back to a single config structure between PDCP NR and PDCP LTE.
2019-07-30 15:01:50 +02:00
Pedro Alvarez
005d03cb1a
Starting to split pdcp_entity into pdcp_entity_lte and pdcp_entity_nr to support NR PDCP
2019-07-30 15:01:50 +02:00
Andre Puschmann
e0bd7f156d
replace remaining warning macros with pragma message
2019-07-23 15:38:21 +02:00
Andre Puschmann
09610ce788
add type setter to sch_subh and use it for MCH PDUs
2019-07-23 15:38:21 +02:00
Andre Puschmann
e60a4490d2
streamline embms parameters and fix MCS selection
2019-07-21 22:27:17 +02:00
yagoda
408400bee6
adding fixes and tests for eMBMS
2019-07-21 22:27:17 +02:00
Francisco Paisana
424876c5e4
added DL TTI mask for MBMS
2019-07-21 22:27:17 +02:00
Ismael Gomez
98f52529f7
Minor change to ue.conf
2019-07-18 16:39:44 +02:00
Ismael Gomez
0dac2ef59b
Update SIB2 also when forcing p_b
2019-07-17 17:35:36 +02:00
Ismael Gomez
feafec2725
Fix srsENB PHY log and reorganized expert args
2019-07-17 12:40:57 +02:00
Andre Puschmann
62eba8f3d8
fix default radio, channel and rx antenna setting in eNB ( #594 )
2019-07-16 14:32:02 +02:00
Andre Puschmann
f1387d8cf8
fix uninitialized vars in scheduler_grid
2019-07-15 15:32:58 +02:00
Ismael Gomez
1b970fa978
Modified comments
2019-07-15 06:18:34 -04:00
Xavier Arteaga
5e49aca835
Merge pull request #570 from softwareradiosystems/feature_256qam_fix
...
Resource allocation extended tables and PDSCH table 2 for 256QAM
2019-07-12 12:32:47 -04:00
Andre Puschmann
e0b583db5d
remove extra indirection from enb_phy
2019-07-12 04:17:56 +02:00
Andre Puschmann
4e86b2f6b2
introduce layerd architecture we use for UE to eNB
...
- this allows flexible use of different PHYs and radios
- use common radio_multi (moved to lib)
2019-07-12 04:17:56 +02:00
Ismael Gomez
d595c4d882
Fixes issue #545 and unlocking of tti_sync condvar before closing causing deadlock at stop
2019-07-11 14:55:35 +02:00
Andre Puschmann
5faa819dcd
fixing uninitialized class members found by coverity
2019-07-08 11:12:46 +01: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
6a11030ae1
enb: fix race condition in workers overwriting the DL tx buffer
...
this adds a own tx buffer for each HARQ PID
2019-07-05 10:48:30 +02:00
Francisco Paisana
58e2e51044
removed rlc_interfaces. The rlc_cnfg types are now part of the rrc_interface_types. Removed implicit RB initialization in the RLC.
2019-07-05 10:44:15 +02:00
Francisco Paisana
b936629221
removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests
2019-07-05 10:44:15 +02:00
Guillem Foreman
db4127ca64
Fixes 256QAM, added pdsch table 2, fixed warnings
2019-07-04 15:49:43 +02:00
Guillem Foreman
535325bc37
srsLTE: added resource allocation extended tables for 256QAM and integration with PDSCH test
2019-07-04 15:49:43 +02:00
Andre Puschmann
62a4fa1c93
fix various potential buffer overruns
...
this is based on suggested fixes by Dirk Grabinski and David who
have fuzzed various parts of srsLTE using afl
2019-07-04 14:43:59 +02:00
Francisco Paisana
34fde16b40
change scheduler mutex to std::mutex ( #546 )
...
* change scheduler mutex to std::mutex
* rename lck to lock
2019-07-01 11:38:37 +02:00
Pedro Alvarez
498f1b8e4b
Small PDCP fixes:
...
- Moved most the initialization of the pdcp_entity to the header.
- Initilize some variables in gtpu_ntoa.
- Removed debug print.
- Format eNB GTP-u debugging code.
2019-06-27 17:09:52 +02:00
Pedro Alvarez
5d8dcbe4cb
Make sure that PDCP SN is initialized properly in the eNB. UE attaches again when using encription.
2019-06-27 17:09:52 +02:00
Pedro Alvarez
b97d1191f4
Added more debug info at eNB GTP-U. Changed the pdcp_entity to follow the standard more strictly for RLC AM DRBs.
2019-06-27 17:09:52 +02:00
Pedro Alvarez
09144a2c5f
Added check of IP version to the eNB GTP-u. Helpfull for debug.
2019-06-27 17:09:52 +02:00
Andre Puschmann
58763fb714
stack: move initialization of log object into ctor
...
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
2019-06-27 14:51:33 +02:00
Andre Puschmann
da35f41dd5
rework MAC logical channel prioritization
2019-06-26 17:57:25 +02:00
Andre Puschmann
e0a28cf4c0
simplify PDCP init and also bypass it for SRB0 on eNB
2019-06-21 15:49:46 +02:00
Francisco Paisana
ce29ed545d
moved mac thread to the stack. Protect the interface of the stack with PHY and gateway via a queue of tasks
2019-06-21 13:01:41 +02:00
Francisco Paisana
415d3418b6
reorganized enb to mirror ue director/class structure with a stack class
2019-06-07 15:41:56 +02:00
Andre Puschmann
e47010130f
extend thread class to set unique thread name in ctor
...
this will also extend all classes that use srslte::thread
to specify the name of the thread in the ctor as well
as to set the name of the worker threads in the thread pool
the thread name will be displayed in gdb.
2019-06-03 15:03:20 +02:00
Andre Puschmann
0e95867f13
remove task dispatcher class
2019-06-03 15:03:20 +02:00
Xavier Arteaga
1f52c32b84
SRSENB: Fixed CLang Tidy in enb.cc
2019-05-27 12:21:57 +02:00
Xavier Arteaga
080b4a327c
SRSUE: Refactored asynchronous cell and ue_radio. CA Fixed.
2019-05-17 18:13:51 +02:00
Andre Puschmann
65f50cd7ba
introduce new UE layer design
...
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly
2019-05-17 17:46:28 +02:00
Francisco Paisana
0e3baa0f2f
Renamed the reset() method of byte_buffer_t to clear()
2019-05-16 12:35:01 +02:00
Francisco Paisana
3bedc93ba5
added _t to unique_byte_buffer type
2019-05-16 12:35:01 +02:00
Francisco Paisana
f469e2178b
replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use
2019-05-16 12:35:01 +02:00
Francisco Paisana
0976ea6f27
created a unique byte buffer that automatically deallocates
2019-05-16 12:35:01 +02:00
Francisco Paisana
7be183c223
rework scheduler
2019-05-14 22:34:50 +02:00
Francisco Paisana
b04cb0deb9
using the new choice set api in UE and eNB RRC
2019-05-10 11:59:34 +02:00
yagoda
c25f3b0acf
increasing rlc UM window size for eMBMS, small adjustment to eMBMS PHY common
2019-05-06 17:06:25 +02:00
Pedro Alvarez
d4d7691fab
Catch exception by reference to avoid compiler warning.
2019-05-02 11:41:59 +02:00
Ismael Gomez
5e5e797cb9
Adjust 75 PRB radio offset and clean log
2019-05-01 07:40:53 +02:00
Francisco Paisana
a0235ccafe
better error messages
2019-04-29 21:05:13 +02:00
Francisco Paisana
e70e88b8b4
revert prach freq offset auto change
2019-04-29 21:05:13 +02:00
Francisco Paisana
82a0145593
added extra tests in the unpacking of rrc asn1
2019-04-29 17:33:08 +02:00
Francisco Paisana
1674c8939f
automatically resolve invalid prach_offset for prb6
2019-04-29 15:53:59 +02:00
Andre Puschmann
e4ea96aa79
add check for return value for RRC unpacking
...
- handle error cases accordingly
2019-04-29 12:39:02 +02:00
yagoda
3842beab0f
- fixing pmch file test for standard LTE rates
...
- adding special value for MTCH stop
- adding error messages for config values incompatible with MBMS
2019-04-29 12:04:42 +02:00
Andre Puschmann
4b01a2e4a0
update copyright notice
2019-04-29 09:20:02 +02:00
Andre Puschmann
205db6f229
add missing license headers
2019-04-26 21:20:12 +02:00
Francisco Paisana
4ba1993815
fixed some race conditions in the scheduler ( #411 )
2019-04-26 15:52:06 +02:00
Pedro Alvarez
c51a8bfe9d
Fix compilation error when using GCC 8, C++11 and C complex functions.
2019-04-26 13:57:31 +02:00
Andre Puschmann
45de6c3305
fix selection for EEA0 and disallow EIA0
2019-04-26 12:10:40 +02:00
Ismael Gomez
7780b1aba5
add tdd/ca support
2019-04-25 20:57:58 +02:00
Andre Puschmann
bdfb408857
fix uninitialized loop counter
2019-04-22 11:33:20 +02:00
Pedro Alvarez
435d63b871
Making sure errors in the enb.conf is handled gracefully
2019-04-12 16:24:57 +02:00
David Rupprecht
39c49ab1ef
Configurable sec algo preference list
2019-04-11 21:38:01 +02:00
David Rupprecht
fd34e22c84
Started with local preference selection algorithm
2019-04-11 21:38:01 +02:00
David Rupprecht
735f97ceb6
Fixed Bearer ID for data Bearer and changed debug type for enc data pdus
2019-04-11 21:38:01 +02:00
David Rupprecht
b84e49310e
Enable encryption in reconfiguration and after security mode command (NOT TEST)
2019-04-11 21:38:01 +02:00
David Rupprecht
eb3a83ac45
User Plane key in configuration interface
2019-04-11 21:38:01 +02:00
Francisco Paisana
185242d5f5
default release for ack_nack_repeat
2019-04-11 09:44:20 +01:00
Francisco Paisana
8a0ae614c2
added default value to ack_nack_repeat
2019-04-02 11:03:37 +02:00
Francisco Paisana
f778c6ca8d
make mcch check
2019-04-02 11:03:37 +02:00
Francisco Paisana
41338293ea
added a default radioframe alloc
2019-04-02 11:03:37 +02:00
Francisco Paisana
dc0b903130
added default enum inits
2019-04-02 11:03:37 +02:00
Pedro Alvarez
aa3a2a3dba
Fix compilation issue with GCC 8.x using complex numbers.
2019-03-13 13:18:17 +01:00
Andre Puschmann
3702a6660e
fix compilation for gcc 4.x
2019-03-11 14:39:47 +01:00
Andre Puschmann
1cc6ae3c60
enable c++11 support
2019-03-11 13:31:43 +01:00
Andre Puschmann
8e38ef2ee4
print PDU length when logging RRC message
2019-03-07 21:25:10 +01:00
Francisco Paisana
75acb046d9
small p_a initialization fix
2019-02-20 16:14:58 +01:00
Andre Puschmann
6b04435edc
move setting of EARFCNs straight into parse_args function
2019-02-20 16:14:53 +01:00
Andre Puschmann
4204321fde
fix uninitialised variables in enb during startup
2019-02-20 16:14:42 +01:00
Francisco Paisana
43a8a8e195
checking the number of prbs available for DL requires an additional check for the prb=6 ( #322 )
2019-02-05 11:50:33 +01:00
Francisco Paisana
15abb2b020
set the correct size of the buffer for paging
2019-02-04 15:01:44 +00:00
Andre Puschmann
86232c143e
expose RLC tx queue length through config struct
2019-02-01 17:11:55 +01:00
Andre Puschmann
a436baed39
fix build string for builds without valid .git folder
2019-01-22 12:09:52 +01:00
Francisco Paisana
d22e53832b
fix sib.conf.mbsfn.example defaults
2019-01-21 17:28:44 +00:00
Francisco Paisana
be06f260db
fixed issues in the parsing of sibs
2019-01-21 16:39:00 +00:00
Pedro Alvarez
c5dad67a16
Adding catch to boost program options parser.
2019-01-18 12:38:56 +00:00
Francisco Paisana
0204db2e12
new asn1 rrc library
2019-01-17 17:43:13 +01:00
Andre Puschmann
8326299ec5
fix uninitialized variables
2019-01-15 16:34:41 +01:00
Andre Puschmann
2590ebd10b
fix bugs reported by coverity
2019-01-15 15:59:38 +01:00
Andre Puschmann
df7ab7ffe8
Merge branch 'master' into next
2018-12-14 16:54:46 +01:00
Igor Kim
9def82d15b
add error handling on binding s1c socket ( #267 )
2018-12-14 12:02:25 +01:00
Andre Puschmann
d52ea8b602
decrease threshold for DL scheduler to allocate SDU
...
since the RLC buffer state now returns the actual number of
bytes, which may be as low as 2B for a single RLC AM status PDU waiting
to be transmitted, the current DL scheduler wasn't allocating the
PDU even though it was given a grant
2018-12-10 17:48:52 +01:00
Andre Puschmann
c3441046c9
simplify RLC buffer status query procedures
...
- add a simple and low-overhead has_data() method to check whether
an RLC entity has data to transmit or not
- use this method for all calls that are actually not interested
in the amount of data to send
- use the more expensive get_buffer_state() for all cases where
the actual size of the buffer is of importance
2018-12-10 17:48:52 +01:00
Andre Puschmann
df40259c26
fix issue in PDCP when bearer ID for DRBs was not starting with 1
2018-12-10 16:58:08 +01:00
Andre Puschmann
4867b16e38
move config file parsing in enb to beginning of init
...
- this waits with initializing the radio until after the configs have been read
- in case the config files contain any mistake, the enb shuts down gracefully
2018-12-10 10:39:42 +01:00
rubund
b801c3dd4e
Fix some spelling errors detected by lintian ( #271 )
2018-12-03 10:36:15 +01:00
Andre Puschmann
c60f7e9013
remove "disconnected" from enb console trace
2018-12-03 09:46:44 +01:00
Pedro Alvarez
548808ecee
Changing RRC key logging from debug to info. Small readability fix.
2018-11-30 21:42:43 +01:00
Pedro Alvarez
645bd60d75
More debug prints
2018-11-30 21:42:43 +01:00
Andre Puschmann
05abdc9516
remove printf from eNB RRC
2018-11-20 18:36:00 +01:00
Andre Puschmann
db910cb84b
add CSV metrics for eNB
2018-11-20 12:15:04 +01:00
Andre Puschmann
8a1368c8d6
send connection reject if MME isn't connected
2018-11-16 14:56:39 +01:00
Andre Puschmann
93d17fed3e
disable buffer pool logging by default
2018-10-10 16:29:57 +02:00
Andre Puschmann
c35b467d57
suppress scheduler warning for failed PUCCH allocation for 6 PRBs
2018-10-05 15:12:06 +02:00
Andre Puschmann
5a3fa7c305
fix scheduler issues for 6 PRBs
2018-10-05 15:00:49 +02:00