From f50146962d1551a09f5cd5577028142e4af2539a Mon Sep 17 00:00:00 2001 From: Bartosz Podrygajlo Date: Tue, 17 Dec 2024 17:26:41 +0100 Subject: [PATCH 1/7] Fix instrumentation target for older CMake versions --- common/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 229c93b043..f58880b04a 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -3,7 +3,7 @@ add_subdirectory(config/yaml) configure_file(oai_version.h.in oai_version.h @ONLY) -add_library(instrumentation INTERFACE instrumentation.h) +add_library(instrumentation INTERFACE) target_include_directories(instrumentation INTERFACE .) if (TRACY_ENABLE) target_link_libraries(instrumentation INTERFACE Tracy::TracyClient) From acae0dc011a3e80e2563e69f1caf33d12a24df24 Mon Sep 17 00:00:00 2001 From: Bartosz Podrygajlo Date: Wed, 18 Dec 2024 09:18:48 +0100 Subject: [PATCH 2/7] Replace AssertFatal with static_assert for cmdline arguments check Replace AssertFatal with static_assert for command line arguments definition length check. The static assert will not allow the code to compile in case the size is incorrect. This could save some time in the future since its easy to forget to extend CMDLINE_PARAMS_CHECK_DESC. --- executables/softmodem-common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/executables/softmodem-common.c b/executables/softmodem-common.c index 9f39612733..390da3c93c 100644 --- a/executables/softmodem-common.c +++ b/executables/softmodem-common.c @@ -105,8 +105,9 @@ void get_common_options(configmodule_interface_t *cfg, uint32_t execmask) paramdef_t cmdline_params[] = CMDLINE_PARAMS_DESC; checkedparam_t cmdline_CheckParams[] = CMDLINE_PARAMS_CHECK_DESC; + static_assert(sizeofArray(cmdline_params) == sizeofArray(cmdline_CheckParams), + "cmdline_params and cmdline_CheckParams should have the same size"); int numparams = sizeofArray(cmdline_params); - AssertFatal(numparams == sizeofArray(cmdline_CheckParams), "Error in arrays size (%d!=%lu)\n", numparams, sizeofArray(cmdline_CheckParams)); config_set_checkfunctions(cmdline_params, cmdline_CheckParams, numparams); config_get(cfg, cmdline_params, numparams, NULL); nfapi_index = config_paramidx_fromname(cmdline_params, numparams, "nfapi"); From b4395406f0792e8ff4d3e3968a94a831f5dd3fd9 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 19 Dec 2024 03:12:35 +0100 Subject: [PATCH 3/7] softmodem-common: Replace AssertFatal with static_assert See also parent commit --- executables/softmodem-common.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/executables/softmodem-common.c b/executables/softmodem-common.c index 390da3c93c..2fed359d82 100644 --- a/executables/softmodem-common.c +++ b/executables/softmodem-common.c @@ -116,9 +116,10 @@ void get_common_options(configmodule_interface_t *cfg, uint32_t execmask) paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ; checkedparam_t cmdline_log_CheckParams[] = CMDLINE_LOGPARAMS_CHECK_DESC; - int numlogparams = sizeofArray(cmdline_logparams); - AssertFatal(numlogparams == sizeofArray(cmdline_log_CheckParams), "Error in arrays size (%d!=%lu)\n", numlogparams, sizeofArray(cmdline_log_CheckParams)); + static_assert(sizeofArray(cmdline_logparams) == sizeofArray(cmdline_log_CheckParams), + "cmdline_logparams and cmdline_log_CheckParams should have the same size"); + int numlogparams = sizeofArray(cmdline_logparams); config_set_checkfunctions(cmdline_logparams, cmdline_log_CheckParams, numlogparams); config_get(cfg, cmdline_logparams, numlogparams, NULL); From 5473ee904fbb976071261b72dbee3115e2eabc30 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 19 Dec 2024 03:22:27 +0100 Subject: [PATCH 4/7] E1AP: Replace AssertFatal with static_assert See parent commit --- openair2/E1AP/e1ap_setup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openair2/E1AP/e1ap_setup.c b/openair2/E1AP/e1ap_setup.c index 4ec94bc9b5..fc59a881fa 100644 --- a/openair2/E1AP/e1ap_setup.c +++ b/openair2/E1AP/e1ap_setup.c @@ -94,6 +94,8 @@ MessageDef *RCconfig_NR_CU_E1(const E1_t *entity) paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams[] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); From f02bd8b453480d9397e251b6c633edcc801ed1c3 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 19 Dec 2024 03:23:59 +0100 Subject: [PATCH 5/7] enb_config: Replace AssertFatal with static_assert, align length See parent commit --- openair2/ENB_APP/enb_config.c | 16 ++++++++++++ openair2/ENB_APP/enb_paramdef.h | 37 ---------------------------- openair2/ENB_APP/enb_paramdef_emtc.h | 1 + 3 files changed, 17 insertions(+), 37 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 9d0d81cfc8..6daae2907d 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -266,9 +266,13 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); + static_assert(sizeofArray(config_check_CCparams) == sizeofArray(CCsParams), + "config_check_CCparams and CCsParams should have the same size"); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; paramdef_t eMTCParams[] = EMTCPARAMS_DESC((&eMTCconfig)); checkedparam_t config_check_eMTCparams[] = EMTCPARAMS_CHECK; + static_assert(sizeofArray(config_check_eMTCparams) == sizeofArray(eMTCParams), + "config_check_eMTCparams and eMTCParamsCCsParams should have the same size"); srb1_params_t srb1_params; memset((void *)&srb1_params,0,sizeof(srb1_params_t)); paramdef_t SRB1Params[] = SRB1PARAMS_DESC(srb1_params); @@ -320,6 +324,8 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { paramlist_def_t PLMNParamList = {ENB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -1910,6 +1916,8 @@ int RCconfig_M2(MessageDef *msg_p, uint32_t i) { paramlist_def_t PLMNParamList = {ENB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2159,6 +2167,8 @@ int RCconfig_S1( paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; + static_assert(sizeofArray(config_check_CCparams) == sizeofArray(CCsParams), + "config_check_CCparams and CCsParams should have the same size"); for (int I = 0; I < sizeofArray(CCsParams); I++) { CCsParams[I].chkPptr = &(config_check_CCparams[I]); @@ -2166,6 +2176,8 @@ int RCconfig_S1( /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) { PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2413,6 +2425,8 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { config_get(config_get_if(), ENBSParams, sizeofArray(ENBSParams), NULL); checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); + static_assert(sizeofArray(config_check_CCparams) == sizeofArray(CCsParams), + "config_check_CCparams and CCsParams should have the same size"); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ @@ -2450,6 +2464,8 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { paramlist_def_t PLMNParamList = {ENB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index 5fd4cdce70..7bc8f677d8 100644 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -749,43 +749,6 @@ typedef struct ccparams_lte_s { { { NULL } } , \ { { NULL } } , \ { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } , \ - { { NULL } } \ } /*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h index 9d7bfb98e0..52f5b2a60f 100644 --- a/openair2/ENB_APP/enb_paramdef_emtc.h +++ b/openair2/ENB_APP/enb_paramdef_emtc.h @@ -351,6 +351,7 @@ typedef struct ccparams_eMTC_s { { {NULL}} , \ { {NULL}} , \ { {NULL}} , \ + { {NULL}} , \ } // clang-format on From 2f43b343b6bf44f4751a1d8368d5e4e73f70ccf0 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 19 Dec 2024 03:25:04 +0100 Subject: [PATCH 6/7] gnb_config: Replace AssertFatal with static_assert See parent commit --- openair2/GNB_APP/gnb_config.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c index 7555d1f5d0..3b8981353d 100644 --- a/openair2/GNB_APP/gnb_config.c +++ b/openair2/GNB_APP/gnb_config.c @@ -1118,6 +1118,8 @@ static int read_du_cell_info(configmodule_interface_t *cfg, paramdef_t PLMNParams[] = GNBPLMNPARAMS_DESC; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams[] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeof(PLMNParams) / sizeof(paramdef_t); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; @@ -1151,6 +1153,8 @@ static int read_du_cell_info(configmodule_interface_t *cfg, paramdef_t SNSSAIParams[] = GNBSNSSAIPARAMS_DESC; paramlist_def_t SNSSAIParamList = {GNB_CONFIG_STRING_SNSSAI_LIST, NULL, 0}; checkedparam_t config_check_SNSSAIParams[] = SNSSAIPARAMS_CHECK; + static_assert(sizeofArray(config_check_SNSSAIParams) == sizeofArray(SNSSAIParams), + "config_check_SNSSAIParams and SNSSAIParams should have the same size"); for (int J = 0; J < sizeofArray(SNSSAIParams); ++J) SNSSAIParams[J].chkPptr = &(config_check_SNSSAIParams[J]); char snssaistr[MAX_OPTNAME_SIZE * 2 + 8]; @@ -1288,6 +1292,8 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg) paramdef_t GNBParams[] = GNBPARAMS_DESC; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_GNBParams[] = GNBPARAMS_CHECK; + static_assert(sizeofArray(config_check_GNBParams) == sizeofArray(GNBParams), + "config_check_GNBParams and GNBParams should have the same size"); for (int i = 0; i < sizeofArray(GNBParams); ++i) GNBParams[i].chkPptr = &(config_check_GNBParams[i]); config_getlist(cfg, &GNBParamList, GNBParams, sizeofArray(GNBParams), NULL); @@ -1296,6 +1302,8 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg) paramlist_def_t MacRLC_ParamList = {CONFIG_STRING_MACRLC_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_MacRLCParams[] = MACRLCPARAMS_CHECK; + static_assert(sizeofArray(config_check_MacRLCParams) == sizeofArray(MacRLC_Params), + "config_check_MacRLCParams and MacRLC_Params should have the same size"); for (int i = 0; i < sizeofArray(MacRLC_Params); ++i) MacRLC_Params[i].chkPptr = &(config_check_MacRLCParams[i]); config_getlist(config_get_if(), &MacRLC_ParamList, MacRLC_Params, sizeofArray(MacRLC_Params), NULL); @@ -1906,6 +1914,8 @@ gNB_RRC_INST *RCconfig_NRRRC() paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2013,7 +2023,11 @@ int RCconfig_NR_NG(MessageDef *msg_p, uint32_t i) { paramlist_def_t SNSSAIParamList = {GNB_CONFIG_STRING_SNSSAI_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); checkedparam_t config_check_SNSSAIParams [] = SNSSAIPARAMS_CHECK; + static_assert(sizeofArray(config_check_SNSSAIParams) == sizeofArray(SNSSAIParams), + "config_check_SNSSAIParams and SNSSAIParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); @@ -2277,6 +2291,8 @@ int RCconfig_NR_X2(MessageDef *msg_p, uint32_t i) { paramlist_def_t PLMNParamList = {GNB_CONFIG_STRING_PLMN_LIST, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ checkedparam_t config_check_PLMNParams [] = PLMNPARAMS_CHECK; + static_assert(sizeofArray(config_check_PLMNParams) == sizeofArray(PLMNParams), + "config_check_PLMNParams and PLMNParams should have the same size"); for (int I = 0; I < sizeofArray(PLMNParams); ++I) PLMNParams[I].chkPptr = &(config_check_PLMNParams[I]); From d820c187fc043847eab47039009ae095f3d3bb0b Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Thu, 19 Dec 2024 03:26:27 +0100 Subject: [PATCH 7/7] OPT: Replace AssertFatal with static_assert See parent commit --- openair2/UTIL/OPT/probe.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index 25d1b6b1ec..06c02f1654 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -529,8 +529,9 @@ void trace_pdu_implementation(ws_trace_t *t) int init_opt(void) { paramdef_t opt_params[] = OPT_PARAMS_DESC ; checkedparam_t opt_checkParams[] = OPTPARAMS_CHECK_DESC; + static_assert(sizeofArray(opt_params) == sizeofArray(opt_checkParams), + "opt_params and opt_checkParams should have the same size"); int sz=sizeofArray(opt_params); - AssertFatal(sz == sizeofArray(opt_checkParams), "Error in arrays size (%d!=%lu)\n", sz, sizeofArray(opt_checkParams)); config_set_checkfunctions(opt_params, opt_checkParams, sz); config_get(config_get_if(), opt_params, sz, OPT_CONFIGPREFIX); subframesSinceCaptureStart = 0;