Merge remote-tracking branch 'origin/clang_warnings_new' into integration_2023_w15
This commit is contained in:
@@ -331,7 +331,9 @@ typedef struct nas_establish_req_s {
|
||||
* fill me
|
||||
*/
|
||||
typedef struct nas_deregistration_req_s {
|
||||
// fill me
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} nas_deregistration_req_t;
|
||||
|
||||
/*
|
||||
@@ -469,7 +471,11 @@ typedef ul_info_transfer_ind_t dl_info_transfer_ind_t;
|
||||
*/
|
||||
|
||||
/* TODO: Quality of Service parameters */
|
||||
typedef struct {} as_qos_t;
|
||||
typedef struct {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} as_qos_t;
|
||||
|
||||
/*
|
||||
* NAS->AS - Radio access bearer establishment request
|
||||
|
||||
@@ -73,7 +73,9 @@ typedef struct f1ap_net_ip_address_s {
|
||||
} f1ap_net_ip_address_t;
|
||||
|
||||
typedef struct f1ap_cu_setup_req_s {
|
||||
//
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} f1ap_cu_setup_req_t;
|
||||
|
||||
typedef struct cellIDs_s {
|
||||
|
||||
@@ -90,7 +90,9 @@ typedef struct m2ap_net_ip_address_s {
|
||||
} m2ap_net_ip_address_t;
|
||||
|
||||
typedef struct m2ap_enb_setup_req_s {
|
||||
//
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_enb_setup_req_t;
|
||||
|
||||
|
||||
@@ -449,6 +451,9 @@ typedef struct m2ap_register_enb_req_s {
|
||||
|
||||
typedef struct m2ap_subframe_process_s {
|
||||
/* nothing, we simply use the module ID in the header */
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_subframe_process_t;
|
||||
|
||||
//-------------------------------------------------------------------------------------------//
|
||||
@@ -533,48 +538,114 @@ typedef struct m2ap_enb_sctp_req_s {
|
||||
|
||||
|
||||
typedef struct m2ap_mbms_scheduling_information_resp_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_scheduling_information_resp_t;
|
||||
typedef struct m2ap_session_start_req_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_session_start_req_t;
|
||||
typedef struct m2ap_session_start_resp_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_session_start_resp_t;
|
||||
typedef struct m2ap_session_start_failure_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_session_start_failure_t;
|
||||
typedef struct m2ap_session_stop_req_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_session_stop_req_t;
|
||||
typedef struct m2ap_session_stop_resp_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_session_stop_resp_t;
|
||||
typedef struct m2ap_reset_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_reset_t;
|
||||
typedef struct m2ap_enb_configuration_update_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_enb_configuration_update_t;
|
||||
typedef struct m2ap_enb_configuration_update_ack_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_enb_configuration_update_ack_t;
|
||||
typedef struct m2ap_enb_configuration_update_failure_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_enb_configuration_update_failure_t;
|
||||
typedef struct m2ap_mce_configuration_update_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mce_configuration_update_t;
|
||||
typedef struct m2ap_mce_configuration_update_ack_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mce_configuration_update_ack_t;
|
||||
typedef struct m2ap_mce_configuration_update_failure_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mce_configuration_update_failure_t;
|
||||
typedef struct m2ap_error_indication_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m2ap_error_indication_t;
|
||||
typedef struct m2ap_mbms_session_update_req_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_session_update_req_t;
|
||||
typedef struct m2ap_mbms_session_update_resp_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_session_update_resp_t;
|
||||
typedef struct m2ap_mbms_session_update_failure_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_session_update_failure_t;
|
||||
typedef struct m2ap_mbms_service_counting_report_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_service_counting_report_t;
|
||||
typedef struct m2ap_mbms_overload_notification_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_overload_notification_t;
|
||||
typedef struct m2ap_mbms_service_counting_req_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_service_counting_req_t;
|
||||
typedef struct m2ap_mbms_service_counting_resp_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_service_counting_resp_t;
|
||||
typedef struct m2ap_mbms_service_counting_failure_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m2ap_mbms_service_counting_failure_t;
|
||||
|
||||
|
||||
|
||||
@@ -160,6 +160,9 @@ typedef struct m3ap_register_mce_req_s {
|
||||
|
||||
typedef struct m3ap_subframe_process_s {
|
||||
/* nothing, we simply use the module ID in the header */
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} m3ap_subframe_process_t;
|
||||
|
||||
//-------------------------------------------------------------------------------------------//
|
||||
@@ -270,28 +273,64 @@ typedef struct m3ap_mme_sctp_req_s {
|
||||
|
||||
|
||||
typedef struct m3ap_session_start_req_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_session_start_req_t;
|
||||
typedef struct m3ap_session_start_resp_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_session_start_resp_t;
|
||||
typedef struct m3ap_session_start_failure_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_session_start_failure_t;
|
||||
typedef struct m3ap_session_stop_req_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_session_stop_req_t;
|
||||
typedef struct m3ap_session_stop_resp_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_session_stop_resp_t;
|
||||
typedef struct m3ap_session_stop_failure_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_session_stop_failure_t;
|
||||
typedef struct m3ap_error_indication_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_error_indication_t;
|
||||
typedef struct m3ap_reset_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_reset_t;
|
||||
typedef struct m3ap_reset_ack_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_reset_ack_t;
|
||||
typedef struct m3ap_mbms_session_update_req_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_mbms_session_update_req_t;
|
||||
typedef struct m3ap_mbms_session_update_resp_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_mbms_session_update_resp_t;
|
||||
typedef struct m3ap_mbms_session_update_failure_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_mbms_session_update_failure_t;
|
||||
typedef struct m3ap_setup_req_s{
|
||||
/* Connexion id used between SCTP/M3AP */
|
||||
@@ -306,14 +345,29 @@ typedef struct m3ap_setup_req_s{
|
||||
uint16_t default_sctp_stream_id;
|
||||
}m3ap_setup_req_t;
|
||||
typedef struct m3ap_setup_resp_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_setup_resp_t;
|
||||
typedef struct m3ap_setup_failure_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_setup_failure_t;
|
||||
typedef struct m3ap_mce_configuration_update_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_mce_configuration_update_t;
|
||||
typedef struct m3ap_mce_configuration_update_ack_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_mce_configuration_update_ack_t;
|
||||
typedef struct m3ap_mce_configuration_update_failure_s{
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
}m3ap_mce_configuration_update_failure_t;
|
||||
|
||||
|
||||
|
||||
@@ -82,6 +82,9 @@ typedef struct PhyConfigurationReq_s {
|
||||
|
||||
// UE: RRC -> PHY messages
|
||||
typedef struct PhyDeactivateReq_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} PhyDeactivateReq;
|
||||
|
||||
typedef struct PhyFindCellReq_s {
|
||||
@@ -93,9 +96,15 @@ typedef struct PhyFindCellReq_s {
|
||||
} PhyFindCellReq;
|
||||
|
||||
typedef struct PhyFindNextCellReq_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} PhyFindNextCellReq;
|
||||
|
||||
typedef struct PhyMeasThresholdReq_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
# if ENABLE_RAL
|
||||
ral_transaction_id_t transaction_id;
|
||||
ral_link_cfg_param_t cfg_param;
|
||||
@@ -103,6 +112,9 @@ typedef struct PhyMeasThresholdReq_s {
|
||||
} PhyMeasThresholdReq;
|
||||
|
||||
typedef struct PhyMeasReportInd_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
# if ENABLE_RAL
|
||||
ral_threshold_t threshold;
|
||||
ral_link_param_t link_param;
|
||||
@@ -119,6 +131,9 @@ typedef struct PhyFindCellInd_s {
|
||||
} PhyFindCellInd;
|
||||
|
||||
typedef struct PhyMeasThresholdConf_s {
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
# if ENABLE_RAL
|
||||
ral_transaction_id_t transaction_id;
|
||||
ral_status_t status;
|
||||
|
||||
@@ -174,6 +174,9 @@ typedef struct x2ap_register_enb_req_s {
|
||||
|
||||
typedef struct x2ap_subframe_process_s {
|
||||
/* nothing, we simply use the module ID in the header */
|
||||
// This dummy element is to avoid CLANG warning: empty struct has size 0 in C, size 1 in C++
|
||||
// To be removed if the structure is filled
|
||||
uint32_t dummy;
|
||||
} x2ap_subframe_process_t;
|
||||
|
||||
//-------------------------------------------------------------------------------------------//
|
||||
|
||||
@@ -45,9 +45,9 @@
|
||||
#define MME_CONFIG_STRING_MME_M3 "enable_mme_m3"
|
||||
|
||||
#define MMEPARAMS_DESC {\
|
||||
{MME_CONFIG_STRING_MME_ID, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \
|
||||
{MME_CONFIG_STRING_MME_NAME, NULL, 0, strptr:NULL, defstrval:"OAIMME", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_M3, NULL, 0, strptr:NULL, defstrval:"no", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_ID, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
|
||||
{MME_CONFIG_STRING_MME_NAME, NULL, 0, .strptr=NULL, .defstrval="OAIMME", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_M3, NULL, 0, .strptr=NULL, .defstrval="no", TYPE_STRING, 0}, \
|
||||
}
|
||||
|
||||
#define MME_MME_ID_IDX 0
|
||||
@@ -75,9 +75,9 @@
|
||||
|
||||
|
||||
#define MME_NETPARAMS_DESC { \
|
||||
{MME_CONFIG_STRING_MME_INTERFACE_NAME_FOR_M3_MCE, NULL, 0, strptr:&mme_interface_name_for_m3_mce, defstrval:"lo", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_IPV4_ADDRESS_FOR_M3C, NULL, 0, strptr:&mme_ipv4_address_for_m3c, defstrval:"127.0.0.18/24", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_PORT_FOR_M3C, NULL, 0, uptr:&mme_port_for_m3c, defintval:36444L, TYPE_UINT, 0}, \
|
||||
{MME_CONFIG_STRING_MME_INTERFACE_NAME_FOR_M3_MCE, NULL, 0, .strptr=&mme_interface_name_for_m3_mce, .defstrval="lo", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_IPV4_ADDRESS_FOR_M3C, NULL, 0, .strptr=&mme_ipv4_address_for_m3c, .defstrval="127.0.0.18/24", TYPE_STRING, 0}, \
|
||||
{MME_CONFIG_STRING_MME_PORT_FOR_M3C, NULL, 0, .uptr=&mme_port_for_m3c, .defintval=36444L, TYPE_UINT, 0}, \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -707,7 +707,7 @@ schedule_MBMS_NFAPI(module_id_t module_idP, uint8_t CC_id, frame_t frameP,
|
||||
uint16_t msi_control_element[29], *msi_ptr;
|
||||
// MSI buffer pointer
|
||||
char *buffer_pointer=NULL;
|
||||
if (msi_flag == 1 && cc->mbms_SessionList) {
|
||||
if (msi_flag == 1 && cc->mbms_SessionList[mbms_mch_i]) {
|
||||
// Create MSI here
|
||||
msi_ptr = &msi_control_element[0];
|
||||
|
||||
@@ -867,7 +867,7 @@ schedule_MBMS_NFAPI(module_id_t module_idP, uint8_t CC_id, frame_t frameP,
|
||||
|
||||
// there is MTCHs, loop if there are more than 1
|
||||
// BAd race condition: all this struct is filled by another thread, no mutex or any code to make it coherent
|
||||
if (mtch_flag == 1 && cc->mbms_SessionList && cc->mbms_SessionList[0] && cc->mbms_SessionList[0]->list.array[0]) {
|
||||
if (mtch_flag == 1 && cc->mbms_SessionList[0] && cc->mbms_SessionList[0]->list.array[0]) {
|
||||
// Calculate TBS
|
||||
// get MTCH data from RLC (like for DTCH)
|
||||
LOG_D(MAC, "[eNB %d] CC_id %d Frame %d subframeP %d: Schedule MTCH (area %d, sfAlloc %d)\n", module_idP, CC_id, frameP, subframeP, i, j);
|
||||
|
||||
@@ -414,7 +414,8 @@ void ra_preambles_config(NR_PRACH_RESOURCES_t *prach_resources, NR_UE_MAC_INST_t
|
||||
// Overwrite seed with non-random seed for IQ player/recorder
|
||||
seed = 1;
|
||||
} else {
|
||||
seed=(unsigned int) (rdtsc_oai() && ~0);
|
||||
// & to truncate the int64_t and keep only the LSB bits, up to sizeof(int)
|
||||
seed = (unsigned int) (rdtsc_oai() & ~0);
|
||||
}
|
||||
|
||||
RA_config_t *ra = &mac->ra;
|
||||
@@ -739,7 +740,6 @@ uint8_t nr_ue_get_rach(module_id_t mod_id,
|
||||
uint16_t sdu_lengths[NB_RB_MAX] = {0};
|
||||
int TBS_bytes = 848;
|
||||
int mac_ce_len = 0;
|
||||
int header_length_total=0;
|
||||
unsigned short post_padding = 1;
|
||||
|
||||
// fill ulsch_buffer with random data
|
||||
@@ -749,7 +749,6 @@ uint8_t nr_ue_get_rach(module_id_t mod_id,
|
||||
//Sending SDUs with size 1
|
||||
//Initialize elements of sdu_lengths
|
||||
sdu_lengths[0] = TBS_bytes - 3 - post_padding - mac_ce_len;
|
||||
header_length_total += 2 + (sdu_lengths[0] >= 128);
|
||||
size_sdu += sdu_lengths[0];
|
||||
|
||||
if (size_sdu > 0) {
|
||||
@@ -966,7 +965,8 @@ void nr_ra_failed(uint8_t mod_id, uint8_t CC_id, NR_PRACH_RESOURCES_t *prach_res
|
||||
// Overwrite seed with non-random seed for IQ player/recorder
|
||||
seed = 1;
|
||||
} else {
|
||||
seed=(unsigned int) (rdtsc_oai() && ~0);
|
||||
// & to truncate the int64_t and keep only the LSB bits, up to sizeof(int)
|
||||
seed = (unsigned int) (rdtsc_oai() & ~0);
|
||||
}
|
||||
|
||||
ra->first_Msg3 = 1;
|
||||
|
||||
@@ -1275,7 +1275,6 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
||||
header->LCID = DL_SCH_LCID_PADDING;
|
||||
buf += sizeof(NR_MAC_SUBHEADER_LONG);
|
||||
header->L = htons(bufEnd-buf);
|
||||
dlsch_total_bytes += bufEnd-buf;
|
||||
|
||||
for (; ((intptr_t)buf) % 4; buf++)
|
||||
*buf = lrand48() & 0xff;
|
||||
@@ -1306,6 +1305,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
||||
UE->mac_stats.dl.total_rbs += sched_pdsch->rbSize;
|
||||
UE->mac_stats.dl.num_mac_sdu += sdus;
|
||||
UE->mac_stats.dl.current_rbs = sched_pdsch->rbSize;
|
||||
UE->mac_stats.dl.total_sdu_bytes += dlsch_total_bytes;
|
||||
|
||||
/* save retransmission information */
|
||||
harq->sched_pdsch = *sched_pdsch;
|
||||
|
||||
@@ -325,6 +325,7 @@ int nr_process_mac_pdu(instance_t module_idP,
|
||||
|
||||
if (UE_idx->CellGroup) {
|
||||
LOG_D(NR_MAC, "Frame %d : ULSCH -> UL-DCCH %d (gNB %ld, %d bytes), rnti: 0x%04x \n", frameP, rx_lcid, module_idP, mac_len, crnti);
|
||||
UE->mac_stats.ul.total_sdu_bytes += mac_len;
|
||||
mac_rlc_data_ind(module_idP,
|
||||
crnti,
|
||||
module_idP,
|
||||
|
||||
@@ -614,6 +614,7 @@ typedef struct NR_mac_dir_stats {
|
||||
uint64_t errors;
|
||||
uint64_t total_bytes;
|
||||
uint32_t current_bytes;
|
||||
uint64_t total_sdu_bytes;
|
||||
uint32_t total_rbs;
|
||||
uint32_t total_rbs_retx;
|
||||
uint32_t num_mac_sdu;
|
||||
|
||||
@@ -647,7 +647,6 @@ pdcp_data_ind(
|
||||
exit(1);
|
||||
}
|
||||
|
||||
//uint8_t dc = pdcp_get_dc_filed((unsigned char*)sdu_buffer_pP->data);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -34,27 +34,6 @@
|
||||
|
||||
extern bool util_mark_nth_bit_of_octet(uint8_t* octet, uint8_t index);
|
||||
|
||||
/*
|
||||
* Parses data/control field out of buffer of User Plane PDCP Data PDU with
|
||||
* long PDCP SN (12-bit)
|
||||
*
|
||||
* @param pdu_buffer PDCP PDU buffer
|
||||
* @return 1 bit dc
|
||||
*/
|
||||
uint8_t pdcp_get_dc_filed(unsigned char* pdu_buffer)
|
||||
{
|
||||
uint8_t dc = 0x00;
|
||||
|
||||
if (pdu_buffer == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
dc = (uint8_t)pdu_buffer[0] & 0xF0; // Reset D/C field
|
||||
dc >>= 8; // FIXME this is broken!!! returns 0 all the time
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Parses sequence number out of buffer of User Plane PDCP Data PDU with
|
||||
* long PDCP SN (12-bit)
|
||||
|
||||
@@ -101,16 +101,6 @@ typedef struct {
|
||||
*/
|
||||
#define PDCP_CONTROL_PDU_STATUS_REPORT_HEADER_SIZE 2
|
||||
|
||||
/*
|
||||
* Parses data/control field out of buffer of User Plane PDCP Data PDU with
|
||||
* long PDCP SN (12-bit)
|
||||
*
|
||||
* @param pdu_buffer PDCP PDU buffer
|
||||
* @return 1 bit dc
|
||||
*/
|
||||
|
||||
uint8_t pdcp_get_dc_filed(unsigned char* pdu_buffer);
|
||||
|
||||
/*
|
||||
* Parses sequence number out of buffer of User Plane PDCP Data PDU with
|
||||
* long PDCP SN (12-bit)
|
||||
|
||||
@@ -1245,7 +1245,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
|
||||
}
|
||||
}
|
||||
pthread_mutex_unlock(&mac_IF_mutex);
|
||||
return 0;
|
||||
return ret_mask;
|
||||
}
|
||||
|
||||
nr_ue_if_module_t *nr_ue_if_module_init(uint32_t module_id){
|
||||
|
||||
@@ -1499,7 +1499,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
||||
//memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t));
|
||||
//(*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64;
|
||||
|
||||
if (configuration->pcch_config_v1310) {
|
||||
if (configuration->pcch_config_v1310[CC_id] == true) {
|
||||
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = CALLOC(1, sizeof(LTE_PCCH_Config_v1310_t));
|
||||
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->paging_narrowBands_r13 = configuration->paging_narrowbands_r13[CC_id];
|
||||
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->mpdcch_NumRepetition_Paging_r13 = configuration->mpdcch_numrepetition_paging_r13[CC_id];
|
||||
|
||||
@@ -946,7 +946,7 @@ static void set_SR_periodandoffset(NR_SchedulingRequestResourceConfig_t *schedul
|
||||
schedulingRequestResourceConfig->periodicityAndOffset->choice.sl160 = sr_slot;
|
||||
return;
|
||||
}
|
||||
else if(sr_slot < 320 || NR_SubcarrierSpacing_kHz60){
|
||||
else if(sr_slot < 320 || scs == NR_SubcarrierSpacing_kHz60){
|
||||
schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl320;
|
||||
schedulingRequestResourceConfig->periodicityAndOffset->choice.sl320 = sr_slot;
|
||||
return;
|
||||
|
||||
@@ -32,7 +32,6 @@ rrc_pdu_session_param_t *find_pduSession(gNB_RRC_UE_t *ue, int id, bool create)
|
||||
ue->nb_of_pdusessions++;
|
||||
else
|
||||
return NULL;
|
||||
AssertFatal(ue->nb_of_pdusessions < NGAP_MAX_PDU_SESSION, "");
|
||||
return ue->pduSession + j;
|
||||
}
|
||||
|
||||
|
||||
@@ -2734,9 +2734,9 @@ void process_lte_nsa_msg(nsa_msg_t *msg, int msg_len)
|
||||
LOG_D(NR_RRC, "Received NR band information: %ld.\n",
|
||||
nr_freq_band_list->list.array[i]->choice.bandInformationNR->bandNR);
|
||||
}
|
||||
MessageDef *dummy_msg = itti_alloc_new_message(TASK_RRC_NSA_UE, 0, UE_CAPABILITY_DUMMY);
|
||||
int dummy_msg = 0;// whatever piece of data, it will never be used by sendee
|
||||
LOG_D(NR_RRC, "We are calling nsa_sendmsg_to_lte_ue to send a UE_CAPABILITY_DUMMY\n");
|
||||
nsa_sendmsg_to_lte_ue(dummy_msg, sizeof(dummy_msg), UE_CAPABILITY_DUMMY);
|
||||
nsa_sendmsg_to_lte_ue(&dummy_msg, sizeof(dummy_msg), UE_CAPABILITY_DUMMY);
|
||||
LOG_A(NR_RRC, "Sent initial NRUE Capability response to LTE UE\n");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ int get_from_lte_ue_fd()
|
||||
return from_lte_ue_fd;
|
||||
}
|
||||
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, MessagesIds msg_type)
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, Rrc_Msg_Type_t msg_type)
|
||||
{
|
||||
LOG_I(NR_RRC, "Entered %s \n", __FUNCTION__);
|
||||
nsa_msg_t n_msg;
|
||||
|
||||
@@ -160,7 +160,7 @@ void *recv_msgs_from_lte_ue(void *args_p);
|
||||
|
||||
void init_connections_with_lte_ue(void);
|
||||
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, MessagesIds msg_type);
|
||||
void nsa_sendmsg_to_lte_ue(const void *message, size_t msg_len, Rrc_Msg_Type_t msg_type);
|
||||
|
||||
void start_oai_nrue_threads(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user