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: #358Closes: #363
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
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.
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
An invalid call to the CMake macro CHECK_LIBRARY_EXISTS() in
cmake/modules/FindbladeRF.cmake prevents srsLTE to enable
support for the bladeRF driver when:
* libbladeRF is installed to the same custom prefix we use to build
srsLTE, as with cmake -DCMAKE_INSTALL_PREFIX=/path/to/custom/prefix
* libbladeRF is installed to /usr/local/lib BUT the linker does not
search this path by default
This trivial patch makes FindbladeRF.cmake provide the linker with the path
libbladeRF is actually installed to.
update the byte_buffer length variable after updating the remaining
PDU length. This has caused an error when calculating the
remaing space in the PDU because the SDU length was counted twice.