475 Commits (090f2b4110000af28db89f2af68a96b414e1b31a)

Author SHA1 Message Date
Ismael Gomez 6bb0790cf1
Fix coverty issues (#652) 5 years ago
Pedro Alvarez 004db4a067 Applied clang-format to zuc_support PR. 5 years ago
Pedro Alvarez 1ae8ccda8c Added EIA3 and EEA3 to default UE capabilities to srsUE. Added parsers for EEA3/EIA3 config options in srsENB and srsEPC 5 years ago
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 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.
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 f90b69e5f4 More clang-format for PDCP 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 98f52529f7 Minor change to ue.conf 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
Andre Puschmann f1387d8cf8 fix uninitialized vars in scheduler_grid 6 years ago
Ismael Gomez 1b970fa978 Modified comments 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 e0b583db5d remove extra indirection from enb_phy 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 db4127ca64 Fixes 256QAM, added pdsch table 2, fixed warnings 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