X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=fapi_5g%2Fsource%2Futils%2Fnr5g_fapi_config_loader.c;fp=fapi_5g%2Fsource%2Futils%2Fnr5g_fapi_config_loader.c;h=e79b6020a2c5fbc7644ab1e69dfc77fad4b2599e;hp=a6fa6bd6003d666aaed52f3748234f8c89f4cc8c;hb=2de97529a4c5a1922214ba0e6f0fb84cacbd0bc7;hpb=81a09690b36b3a4e89b4dae34f30933de13f7f90 diff --git a/fapi_5g/source/utils/nr5g_fapi_config_loader.c b/fapi_5g/source/utils/nr5g_fapi_config_loader.c index a6fa6bd..e79b602 100644 --- a/fapi_5g/source/utils/nr5g_fapi_config_loader.c +++ b/fapi_5g/source/utils/nr5g_fapi_config_loader.c @@ -32,7 +32,7 @@ p_nr5g_fapi_cfg_t nr5g_fapi_config_loader( struct rte_cfgfile *cfg_file; p_nr5g_fapi_cfg_t cfg; const char *entry; - size_t dev_name_len; + size_t dev_name_len, mem_zone_name_len; unsigned int num_cpus = 0; char check_core_count[255], *max_core; FILE *fp = NULL; @@ -86,8 +86,8 @@ p_nr5g_fapi_cfg_t nr5g_fapi_config_loader( cfg->mac2phy_worker.thread_sched_policy = (uint8_t) atoi(entry); if (cfg->mac2phy_worker.thread_sched_policy != SCHED_FIFO && cfg->mac2phy_worker.thread_sched_policy != SCHED_RR) { - printf("Thread Poicy valid range is Schedule Policy [0: SCHED_FIFO" - " 1: SCHED_RR]: configured: %d\n", + printf("Thread Policy valid range is Schedule Policy [1: SCHED_FIFO" + " 2: SCHED_RR]: configured: %d\n", cfg->mac2phy_worker.thread_sched_policy); exit(-1); } @@ -126,8 +126,8 @@ p_nr5g_fapi_cfg_t nr5g_fapi_config_loader( cfg->phy2mac_worker.thread_sched_policy = (uint8_t) atoi(entry); if (cfg->phy2mac_worker.thread_sched_policy != SCHED_FIFO && cfg->phy2mac_worker.thread_sched_policy != SCHED_RR) { - printf("Thread Poicy valid range is Schedule Policy [0: SCHED_FIFO" - " 1: SCHED_RR] configured: %d\n", + printf("Thread Policy valid range is Schedule Policy [1: SCHED_FIFO" + " 2: SCHED_RR] configured: %d\n", cfg->phy2mac_worker.thread_sched_policy); exit(-1); } @@ -145,6 +145,41 @@ p_nr5g_fapi_cfg_t nr5g_fapi_config_loader( } } + entry = rte_cfgfile_get_entry(cfg_file, "URLLC_WORKER", "core_id"); + if (entry) { + cfg->urllc_worker.core_id = (uint8_t) atoi(entry); + if (cfg->urllc_worker.core_id >= (uint8_t) num_cpus) { + printf("Core Id is not in the range 0 to %d configured: %d\n", + num_cpus, cfg->urllc_worker.core_id); + exit(-1); + } + } + + entry = + rte_cfgfile_get_entry(cfg_file, "URLLC_WORKER", "thread_sched_policy"); + if (entry) { + cfg->urllc_worker.thread_sched_policy = (uint8_t) atoi(entry); + if (cfg->urllc_worker.thread_sched_policy != SCHED_FIFO && + cfg->urllc_worker.thread_sched_policy != SCHED_RR) { + printf("Thread Policy valid range is Schedule Policy [1: SCHED_FIFO" + " 2: SCHED_RR] configured: %d\n", + cfg->urllc_worker.thread_sched_policy); + exit(-1); + } + } + + entry = + rte_cfgfile_get_entry(cfg_file, "URLLC_WORKER", "thread_priority"); + if (entry) { + cfg->urllc_worker.thread_priority = (uint8_t) atoi(entry); + if (cfg->urllc_worker.thread_priority < min_prio && + cfg->urllc_worker.thread_priority > max_prio) { + printf("Thread priority valid range is %d to %d configured: %d\n", + min_prio, max_prio, cfg->urllc_worker.thread_priority); + exit(-1); + } + } + entry = rte_cfgfile_get_entry(cfg_file, "WLS_CFG", "device_name"); if (entry) { dev_name_len = (strlen(entry) > (NR5G_FAPI_DEVICE_NAME_LEN)) ? @@ -184,6 +219,13 @@ p_nr5g_fapi_cfg_t nr5g_fapi_config_loader( } } + entry = rte_cfgfile_get_entry(cfg_file, "DPDK", "dpdk_memory_zone"); + if (entry) { + mem_zone_name_len = (strlen(entry) > (NR5G_FAPI_MEMORY_ZONE_NAME_LEN)) ? + (NR5G_FAPI_MEMORY_ZONE_NAME_LEN) : strlen(entry); + rte_strlcpy(cfg->dpdk.memory_zone, entry, mem_zone_name_len + 1); + } + return cfg; }