move UE RRC into own folder

master
Andre Puschmann 6 years ago
parent 0e3baa0f2f
commit 3a6dd9b164

@ -20,8 +20,11 @@
if(RF_FOUND) if(RF_FOUND)
add_executable(benchmark_radio benchmark_radio.cc) add_executable(benchmark_radio benchmark_radio.cc)
target_link_libraries(benchmark_radio srsue_phy srslte_common srslte_phy srslte_radio ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) target_link_libraries(benchmark_radio srslte_common srslte_phy srslte_radio)
if(SRSGUI_FOUND)
include_directories(${SRSGUI_INCLUDE_DIRS})
target_link_libraries(benchmark_radio ${SRSGUI_LIBRARIES})
endif(SRSGUI_FOUND)
endif(RF_FOUND) endif(RF_FOUND)

@ -19,7 +19,7 @@
* *
*/ */
#include "../../../srsue/hdr/upper/rrc.h" #include "../../../srsue/hdr/rrc/rrc.h"
#include "srslte/asn1/rrc_asn1.h" #include "srslte/asn1/rrc_asn1.h"
#include "srslte/common/bcd_helpers.h" #include "srslte/common/bcd_helpers.h"
#include "srslte/common/log_filter.h" #include "srslte/common/log_filter.h"

@ -19,7 +19,7 @@
* *
*/ */
#include "../../../srsue/hdr/upper/rrc.h" #include "../../../srsue/hdr/rrc/rrc.h"
#include "srslte/asn1/rrc_asn1.h" #include "srslte/asn1/rrc_asn1.h"
#include "srslte/common/bcd_helpers.h" #include "srslte/common/bcd_helpers.h"
#include "srslte/common/log_filter.h" #include "srslte/common/log_filter.h"

@ -19,7 +19,7 @@
* *
*/ */
#include "../../../srsue/hdr/upper/rrc.h" #include "../../../srsue/hdr/rrc/rrc.h"
#include "srslte/asn1/rrc_asn1.h" #include "srslte/asn1/rrc_asn1.h"
#include "srslte/common/bcd_helpers.h" #include "srslte/common/bcd_helpers.h"
#include "srslte/common/log_filter.h" #include "srslte/common/log_filter.h"

@ -32,14 +32,15 @@
#include <string> #include <string>
#include <pthread.h> #include <pthread.h>
#include "ue_base.h"
#include "phy/phy.h"
#include "mac/mac.h" #include "mac/mac.h"
#include "srslte/upper/rlc.h" #include "phy/phy.h"
#include "rrc/rrc.h"
#include "srslte/radio/radio_multi.h"
#include "srslte/upper/pdcp.h" #include "srslte/upper/pdcp.h"
#include "upper/rrc.h" #include "srslte/upper/rlc.h"
#include "upper/nas.h" #include "ue_base.h"
#include "upper/gw.h" #include "upper/gw.h"
#include "upper/nas.h"
#include "upper/usim.h" #include "upper/usim.h"
#include "srslte/common/buffer_pool.h" #include "srslte/common/buffer_pool.h"

@ -27,14 +27,15 @@
#ifndef SRSUE_UE_BASE_H #ifndef SRSUE_UE_BASE_H
#define SRSUE_UE_BASE_H #define SRSUE_UE_BASE_H
#include <stdarg.h>
#include <string>
#include <pthread.h>
#include "phy/phy.h" #include "phy/phy.h"
#include "upper/usim.h" #include "rrc/rrc.h"
#include "upper/rrc.h"
#include "upper/nas.h"
#include "srslte/interfaces/ue_interfaces.h" #include "srslte/interfaces/ue_interfaces.h"
#include "srslte/radio/radio_multi.h"
#include "upper/nas.h"
#include "upper/usim.h"
#include <pthread.h>
#include <stdarg.h>
#include <string>
#include "srslte/common/logger.h" #include "srslte/common/logger.h"
#include "srslte/common/log_filter.h" #include "srslte/common/log_filter.h"

@ -20,6 +20,7 @@
add_subdirectory(phy) add_subdirectory(phy)
add_subdirectory(mac) add_subdirectory(mac)
add_subdirectory(rrc)
add_subdirectory(upper) add_subdirectory(upper)
# Link libstdc++ and libgcc # Link libstdc++ and libgcc
@ -34,6 +35,7 @@ endif (RPATH)
add_executable(srsue main.cc ue_base.cc ue.cc metrics_stdout.cc metrics_csv.cc) add_executable(srsue main.cc ue_base.cc ue.cc metrics_stdout.cc metrics_csv.cc)
target_link_libraries(srsue srsue_mac target_link_libraries(srsue srsue_mac
srsue_phy srsue_phy
srsue_rrc
srsue_upper srsue_upper
srslte_common srslte_common
srslte_phy srslte_phy

@ -86,21 +86,23 @@ void parse_args(all_args_t* args, int argc, char* argv[])
("rrc.feature_group", bpo::value<uint32_t>(&args->rrc.feature_group)->default_value(0xe6041000), "Hex value of the featureGroupIndicators field in the" ("rrc.feature_group", bpo::value<uint32_t>(&args->rrc.feature_group)->default_value(0xe6041000), "Hex value of the featureGroupIndicators field in the"
"UECapabilityInformation message. Default 0xe6041000") "UECapabilityInformation message. Default 0xe6041000")
("rrc.ue_category", bpo::value<string>(&args->rrc.ue_category_str)->default_value(SRSLTE_UE_CATEGORY_DEFAULT), "UE Category (1 to 10)") ("rrc.ue_category", bpo::value<string>(&args->stack.rrc.ue_category_str)->default_value(SRSLTE_UE_CATEGORY_DEFAULT), "UE Category (1 to 10)")
("rrc.release", bpo::value<uint32_t>(&args->rrc.release)->default_value(8), "UE Release (8 to 10)") ("rrc.release", bpo::value<uint32_t>(&args->stack.rrc.release)->default_value(SRSLTE_RELEASE_DEFAULT), "UE Release (8 to 10)")
("rrc.mbms_service_id", bpo::value<int32_t>(&args->stack.rrc.mbms_service_id)->default_value(-1), "MBMS service id for autostart (-1 means disabled)")
("nas.apn", bpo::value<string>(&args->nas.apn_name)->default_value(""), "Set Access Point Name (APN) for data services") ("rrc.mbms_service_port", bpo::value<uint32_t>(&args->stack.rrc.mbms_service_port)->default_value(4321), "Port of the MBMS service")
("nas.apn_protocol", bpo::value<string>(&args->nas.apn_protocol)->default_value(""), "Set Access Point Name (APN) protocol for data services")
("nas.user", bpo::value<string>(&args->nas.apn_user)->default_value(""), "Username for CHAP authentication") ("nas.apn", bpo::value<string>(&args->stack.nas.apn_name)->default_value(""), "Set Access Point Name (APN) for data services")
("nas.pass", bpo::value<string>(&args->nas.apn_pass)->default_value(""), "Password for CHAP authentication") ("nas.apn_protocol", bpo::value<string>(&args->stack.nas.apn_protocol)->default_value(""), "Set Access Point Name (APN) protocol for data services")
("nas.force_imsi_attach", bpo::value<bool>(&args->nas.force_imsi_attach)->default_value(false), "Whether to always perform an IMSI attach") ("nas.user", bpo::value<string>(&args->stack.nas.apn_user)->default_value(""), "Username for CHAP authentication")
("nas.eia", bpo::value<string>(&args->nas.eia)->default_value("1,2"), "List of integrity algorithms included in UE capabilities") ("nas.pass", bpo::value<string>(&args->stack.nas.apn_pass)->default_value(""), "Password for CHAP authentication")
("nas.eea", bpo::value<string>(&args->nas.eea)->default_value("0,1,2"), "List of ciphering algorithms included in UE capabilities") ("nas.force_imsi_attach", bpo::value<bool>(&args->stack.nas.force_imsi_attach)->default_value(false), "Whether to always perform an IMSI attach")
("nas.eia", bpo::value<string>(&args->stack.nas.eia)->default_value("1,2"), "List of integrity algorithms included in UE capabilities")
("pcap.enable", bpo::value<bool>(&args->pcap.enable)->default_value(false), "Enable MAC packet captures for wireshark") ("nas.eea", bpo::value<string>(&args->stack.nas.eea)->default_value("0,1,2"), "List of ciphering algorithms included in UE capabilities")
("pcap.filename", bpo::value<string>(&args->pcap.filename)->default_value("ue.pcap"), "MAC layer capture filename")
("pcap.nas_enable", bpo::value<bool>(&args->pcap.nas_enable)->default_value(false), "Enable NAS packet captures for wireshark") ("pcap.enable", bpo::value<bool>(&args->stack.pcap.enable)->default_value(false), "Enable MAC packet captures for wireshark")
("pcap.nas_filename", bpo::value<string>(&args->pcap.nas_filename)->default_value("ue_nas.pcap"), "NAS layer capture filename (useful when NAS encryption is enabled)") ("pcap.filename", bpo::value<string>(&args->stack.pcap.filename)->default_value("ue.pcap"), "MAC layer capture filename")
("pcap.nas_enable", bpo::value<bool>(&args->stack.pcap.nas_enable)->default_value(false), "Enable NAS packet captures for wireshark")
("pcap.nas_filename", bpo::value<string>(&args->stack.pcap.nas_filename)->default_value("ue_nas.pcap"), "NAS layer capture filename (useful when NAS encryption is enabled)")
("gui.enable", bpo::value<bool>(&args->gui.enable)->default_value(false), "Enable GUI plots") ("gui.enable", bpo::value<bool>(&args->gui.enable)->default_value(false), "Enable GUI plots")
@ -281,8 +283,8 @@ void parse_args(all_args_t* args, int argc, char* argv[])
bpo::value<bool>(&args->expert.phy.sic_pss_enabled)->default_value(false), bpo::value<bool>(&args->expert.phy.sic_pss_enabled)->default_value(false),
"Applies Successive Interference Cancellation to PSS signals when searching for neighbour cells. Must be disabled if cells have identical channel and timing.") "Applies Successive Interference Cancellation to PSS signals when searching for neighbour cells. Must be disabled if cells have identical channel and timing.")
("expert.interpolate_subframe_enabled", ("phy.interpolate_subframe_enabled",
bpo::value<bool>(&args->expert.phy.interpolate_subframe_enabled)->default_value(false), bpo::value<bool>(&args->phy.interpolate_subframe_enabled)->default_value(false),
"Interpolates in the time domain the channel estimates within 1 subframe.") "Interpolates in the time domain the channel estimates within 1 subframe.")
("expert.estimator_fil_auto", ("expert.estimator_fil_auto",

@ -0,0 +1,25 @@
#
# Copyright 2013-2019 Software Radio Systems Limited
#
# This file is part of srsLTE
#
# srsLTE is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# srsLTE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# A copy of the GNU Affero General Public License can be found in
# the LICENSE file in the top-level directory of this distribution
# and at http://www.gnu.org/licenses/.
#
set(SOURCES rrc.cc)
add_library(srsue_rrc STATIC ${SOURCES})
install(TARGETS srsue_rrc DESTINATION ${LIBRARY_DIR})

@ -19,7 +19,7 @@
* *
*/ */
#include "srsue/hdr/upper/rrc.h" #include "srsue/hdr/rrc/rrc.h"
#include "srslte/asn1/rrc_asn1.h" #include "srslte/asn1/rrc_asn1.h"
#include "srslte/common/bcd_helpers.h" #include "srslte/common/bcd_helpers.h"
#include "srslte/common/security.h" #include "srslte/common/security.h"
@ -2002,6 +2002,11 @@ void rrc::write_pdu_mch(uint32_t lcid, srslte::unique_byte_buffer_t pdu)
serving_cell->has_mcch = true; serving_cell->has_mcch = true;
phy->set_config_mbsfn_mcch(&serving_cell->mcch); phy->set_config_mbsfn_mcch(&serving_cell->mcch);
log_rrc_message("MCH", Rx, pdu.get(), serving_cell->mcch); log_rrc_message("MCH", Rx, pdu.get(), serving_cell->mcch);
if (args.mbms_service_id >= 0) {
rrc_log->info("Attempting to auto-start MBMS service %d\n", args.mbms_service_id);
mbms_service_start(args.mbms_service_id, args.mbms_service_port);
}
} }
} }
} }

@ -18,7 +18,7 @@
# and at http://www.gnu.org/licenses/. # and at http://www.gnu.org/licenses/.
# #
set(SOURCES gw.cc nas.cc rrc.cc usim_base.cc usim.cc) set(SOURCES gw.cc nas.cc usim_base.cc usim.cc)
if(HAVE_PCSC) if(HAVE_PCSC)
list(APPEND SOURCES "pcsc_usim.cc") list(APPEND SOURCES "pcsc_usim.cc")

@ -19,21 +19,20 @@
* *
*/ */
#include <iostream> #include "srslte/common/bcd_helpers.h"
#include <assert.h>
#include "srsue/hdr/upper/usim_base.h"
#include "srsue/hdr/upper/usim.h"
#include "srsue/hdr/upper/nas.h"
#include "srsue/hdr/upper/gw.h"
#include "srslte/upper/rlc.h"
#include "srsue/hdr/upper/rrc.h"
#include "srsue/hdr/mac/mac.h"
#include "srslte/common/log_filter.h" #include "srslte/common/log_filter.h"
#include "srslte/upper/pdcp_entity.h"
#include "srslte/upper/pdcp.h"
#include "srslte/interfaces/ue_interfaces.h" #include "srslte/interfaces/ue_interfaces.h"
#include "srslte/common/bcd_helpers.h" #include "srslte/upper/pdcp.h"
#include "srslte/upper/pdcp_entity.h"
#include "srslte/upper/rlc.h"
#include "srsue/hdr/mac/mac.h"
#include "srsue/hdr/rrc/rrc.h"
#include "srsue/hdr/upper/gw.h"
#include "srsue/hdr/upper/nas.h"
#include "srsue/hdr/upper/usim.h"
#include "srsue/hdr/upper/usim_base.h"
#include <assert.h>
#include <iostream>
using namespace srsue; using namespace srsue;
using namespace asn1::rrc; using namespace asn1::rrc;

@ -116,15 +116,20 @@ imei = 353490069873319
##################################################################### #####################################################################
# RRC configuration # RRC configuration
# #
# ue_category: Sets UE category (range 1-5). Default: 4 # ue_category: Sets UE category (range 1-5). Default: 4
# release: UE Release (8 to 10) # release: UE Release (8 to 10)
# feature_group: Hex value of the featureGroupIndicators field in the # feature_group: Hex value of the featureGroupIndicators field in the
# UECapabilityInformation message. Default 0xe6041000 # UECapabilityInformation message. Default 0xe6041000
# mbms_service_id: MBMS service id for autostarting MBMS reception
# (default -1 means disabled)
# mbms_service_port: Port of the MBMS service
##################################################################### #####################################################################
[rrc] [rrc]
#ue_category = 4 #ue_category = 4
#release = 8 #release = 8
#feature_group = 0xe6041000 #feature_group = 0xe6041000
#mbms_service_id = -1
#mbms_service_port = 4321
##################################################################### #####################################################################
# NAS configuration # NAS configuration
@ -222,10 +227,6 @@ enable = false
# #
##################################################################### #####################################################################
[expert] [expert]
#ip_netmask = 255.255.255.0
#ip_devname = tun_srsue
#mbms_service = -1
#rssi_sensor_enabled = false
#rx_gain_offset = 62 #rx_gain_offset = 62
#prach_gain = 30 #prach_gain = 30
#cqi_max = 15 #cqi_max = 15

Loading…
Cancel
Save