465 Commits (ff62ae6ad08cc9179daedd683cbe23b89895aaad)

Author SHA1 Message Date
Andre Puschmann 49279c89d8 send DL-DCCH on SRB2 after it has been established 5 years ago
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
5 years ago
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
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
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
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
5 years ago
Andre Puschmann 343c30be4a fix RF metrics/logging in eNB 5 years ago
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.
5 years ago
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
5 years ago
Pedro Alvarez 6efa944b5e Removed srslte prefix from pdcp_config_t 5 years ago
Pedro Alvarez 494be243c0 Changed security direction to use an enum. 5 years ago
Pedro Alvarez 964db869a6 Fix mistake in configuring SRB1's PDCP. 5 years ago
Pedro Alvarez d3b6828082 Changed PDCP configuration to explicitly have tx and rx direction. Decrypt on PDCP NR seems fine. 5 years ago
Pedro Alvarez 73e30743d1 Added enum to PDCP config to replace two bools. 5 years ago
Pedro Alvarez 457f35699d Reverted back to a single config structure between PDCP NR and PDCP LTE. 5 years ago
Pedro Alvarez 005d03cb1a Starting to split pdcp_entity into pdcp_entity_lte and pdcp_entity_nr to support NR PDCP 5 years ago
Andre Puschmann e0bd7f156d replace remaining warning macros with pragma message 6 years ago
Andre Puschmann 09610ce788 add type setter to sch_subh and use it for MCH PDUs 6 years ago
Andre Puschmann e60a4490d2 streamline embms parameters and fix MCS selection 6 years ago
yagoda 408400bee6 adding fixes and tests for eMBMS 6 years ago
Francisco Paisana 424876c5e4 added DL TTI mask for MBMS 6 years ago
Ismael Gomez 0dac2ef59b Update SIB2 also when forcing p_b 6 years ago
Ismael Gomez feafec2725 Fix srsENB PHY log and reorganized expert args 6 years ago
Andre Puschmann 62eba8f3d8 fix default radio, channel and rx antenna setting in eNB (#594) 6 years ago
Xavier Arteaga 5e49aca835
Merge pull request #570 from softwareradiosystems/feature_256qam_fix
Resource allocation extended tables and PDSCH table 2 for 256QAM
6 years ago
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)
6 years ago
Ismael Gomez d595c4d882 Fixes issue #545 and unlocking of tti_sync condvar before closing causing deadlock at stop 6 years ago
Andre Puschmann 5faa819dcd fixing uninitialized class members found by coverity 6 years ago
Andre Puschmann 92f0d58856 mac: move further init/config into ctor to allow early logging, etc. 6 years ago
Andre Puschmann 6a11030ae1 enb: fix race condition in workers overwriting the DL tx buffer
this adds a own tx buffer for each HARQ PID
6 years ago
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. 6 years ago
Francisco Paisana b936629221 removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests 6 years ago
Guillem Foreman 535325bc37 srsLTE: added resource allocation extended tables for 256QAM and integration with PDSCH test 6 years ago
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
6 years ago
Francisco Paisana 34fde16b40 change scheduler mutex to std::mutex (#546)
* change scheduler mutex to std::mutex

* rename lck to lock
6 years ago
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.
6 years ago
Pedro Alvarez 5d8dcbe4cb Make sure that PDCP SN is initialized properly in the eNB. UE attaches again when using encription. 6 years ago
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. 6 years ago
Pedro Alvarez 09144a2c5f Added check of IP version to the eNB GTP-u. Helpfull for debug. 6 years ago
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.
6 years ago
Andre Puschmann da35f41dd5 rework MAC logical channel prioritization 6 years ago
Andre Puschmann e0a28cf4c0 simplify PDCP init and also bypass it for SRB0 on eNB 6 years ago
Francisco Paisana 415d3418b6 reorganized enb to mirror ue director/class structure with a stack class 6 years ago
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.
6 years ago
Xavier Arteaga 1f52c32b84 SRSENB: Fixed CLang Tidy in enb.cc 6 years ago
Xavier Arteaga 080b4a327c SRSUE: Refactored asynchronous cell and ue_radio. CA Fixed. 6 years ago
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
6 years ago
Francisco Paisana 0e3baa0f2f Renamed the reset() method of byte_buffer_t to clear() 6 years ago
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 6 years ago
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 6 years ago
Francisco Paisana 0976ea6f27 created a unique byte buffer that automatically deallocates 6 years ago
Francisco Paisana 7be183c223 rework scheduler 6 years ago
Francisco Paisana b04cb0deb9 using the new choice set api in UE and eNB RRC 6 years ago
yagoda c25f3b0acf increasing rlc UM window size for eMBMS, small adjustment to eMBMS PHY common 6 years ago
Pedro Alvarez d4d7691fab Catch exception by reference to avoid compiler warning. 6 years ago
Ismael Gomez 5e5e797cb9 Adjust 75 PRB radio offset and clean log 6 years ago
Francisco Paisana a0235ccafe better error messages 6 years ago
Francisco Paisana e70e88b8b4 revert prach freq offset auto change 6 years ago
Francisco Paisana 82a0145593 added extra tests in the unpacking of rrc asn1 6 years ago
Francisco Paisana 1674c8939f automatically resolve invalid prach_offset for prb6 6 years ago
Andre Puschmann e4ea96aa79 add check for return value for RRC unpacking
- handle error cases accordingly
6 years ago
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
6 years ago
Andre Puschmann 4b01a2e4a0 update copyright notice 6 years ago
Andre Puschmann 205db6f229 add missing license headers 6 years ago
Francisco Paisana 4ba1993815 fixed some race conditions in the scheduler (#411) 6 years ago
Pedro Alvarez c51a8bfe9d Fix compilation error when using GCC 8, C++11 and C complex functions. 6 years ago
Andre Puschmann 45de6c3305 fix selection for EEA0 and disallow EIA0 6 years ago
Ismael Gomez 7780b1aba5 add tdd/ca support 6 years ago
Andre Puschmann bdfb408857 fix uninitialized loop counter 6 years ago
Pedro Alvarez 435d63b871 Making sure errors in the enb.conf is handled gracefully 6 years ago
David Rupprecht 39c49ab1ef Configurable sec algo preference list 6 years ago
David Rupprecht fd34e22c84 Started with local preference selection algorithm 6 years ago
David Rupprecht 735f97ceb6 Fixed Bearer ID for data Bearer and changed debug type for enc data pdus 6 years ago
David Rupprecht b84e49310e Enable encryption in reconfiguration and after security mode command (NOT TEST) 6 years ago
David Rupprecht eb3a83ac45 User Plane key in configuration interface 6 years ago
Francisco Paisana 185242d5f5 default release for ack_nack_repeat 6 years ago
Francisco Paisana 8a0ae614c2 added default value to ack_nack_repeat 6 years ago
Francisco Paisana f778c6ca8d make mcch check 6 years ago
Francisco Paisana 41338293ea added a default radioframe alloc 6 years ago
Francisco Paisana dc0b903130 added default enum inits 6 years ago
Pedro Alvarez aa3a2a3dba Fix compilation issue with GCC 8.x using complex numbers. 6 years ago
Andre Puschmann 3702a6660e fix compilation for gcc 4.x 6 years ago
Andre Puschmann 8e38ef2ee4 print PDU length when logging RRC message 6 years ago
Francisco Paisana 75acb046d9 small p_a initialization fix 6 years ago
Andre Puschmann 6b04435edc move setting of EARFCNs straight into parse_args function 6 years ago
Andre Puschmann 4204321fde fix uninitialised variables in enb during startup 6 years ago
Francisco Paisana 43a8a8e195 checking the number of prbs available for DL requires an additional check for the prb=6 (#322) 6 years ago
Francisco Paisana 15abb2b020 set the correct size of the buffer for paging 6 years ago
Andre Puschmann a436baed39 fix build string for builds without valid .git folder 6 years ago
Francisco Paisana be06f260db fixed issues in the parsing of sibs 6 years ago
Pedro Alvarez c5dad67a16 Adding catch to boost program options parser. 6 years ago
Francisco Paisana 0204db2e12 new asn1 rrc library 6 years ago
Andre Puschmann df7ab7ffe8 Merge branch 'master' into next 6 years ago
Igor Kim 9def82d15b add error handling on binding s1c socket (#267) 6 years ago
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
6 years ago
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
6 years ago
Andre Puschmann df40259c26 fix issue in PDCP when bearer ID for DRBs was not starting with 1 6 years ago
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
6 years ago
rubund b801c3dd4e Fix some spelling errors detected by lintian (#271) 6 years ago
Andre Puschmann c60f7e9013 remove "disconnected" from enb console trace 6 years ago