diff --git a/docker/Dockerfile.build.fhi72.native_arm.ubuntu b/docker/Dockerfile.build.fhi72.native_arm.ubuntu index 30c1df5962..b0f735a57f 100644 --- a/docker/Dockerfile.build.fhi72.native_arm.ubuntu +++ b/docker/Dockerfile.build.fhi72.native_arm.ubuntu @@ -49,7 +49,7 @@ COPY . . RUN wget http://fast.dpdk.org/rel/dpdk-20.11.9.tar.xz && \ tar -xvf dpdk-20.11.9.tar.xz && \ cd dpdk-stable-20.11.9 && \ - meson build && \ + meson setup -Dmachine=default build && \ ninja -C build && \ ninja install -C build diff --git a/radio/fhi_72/oran-config.c b/radio/fhi_72/oran-config.c index 4478154e6c..512a7841c6 100644 --- a/radio/fhi_72/oran-config.c +++ b/radio/fhi_72/oran-config.c @@ -441,17 +441,16 @@ void print_fh_config(const struct xran_fh_config *fh_config) #endif } -static uint64_t get_u64_mask(const paramdef_t *pd) +static void get_u128_mask(const paramdef_t *pd, uint64_t *u0t63, uint64_t *u64t127) { DevAssert(pd != NULL); AssertFatal(pd->numelt > 0, "no entries for creation of mask\n"); - uint64_t mask = 0; for (int i = 0; i < pd->numelt; ++i) { int num = pd->iptr[i]; - AssertFatal(num >= 0 && num < 64, "cannot put element of %d in 64-bit mask\n", num); - mask |= 1LL << num; + AssertFatal(num >= 0 && num < 128, "cannot put element of %d in 128-bit mask\n", num); + uint64_t *mask = num < 64 ? u0t63 : u64t127; + *mask |= 1LL << (num % 64); } - return mask; } #if defined F_RELEASE @@ -520,8 +519,7 @@ static bool set_fh_io_cfg(struct xran_io_cfg *io_cfg, const paramdef_t *fhip, in these parameters are machine specific */ io_cfg->core = *gpd(fhip, nump, ORAN_CONFIG_IO_CORE)->iptr; // core used for IO; absolute CPU core ID for xran library, it should be an isolated core io_cfg->system_core = *gpd(fhip, nump, ORAN_CONFIG_SYSTEM_CORE)->iptr; // absolute CPU core ID for DPDK control threads, it should be an isolated core - io_cfg->pkt_proc_core = get_u64_mask(gpd(fhip, nump, ORAN_CONFIG_WORKER_CORES)); // worker mask 0-63 - io_cfg->pkt_proc_core_64_127 = 0x0; // worker mask 64-127; to be used if machine supports more than 64 cores + get_u128_mask(gpd(fhip, nump, ORAN_CONFIG_WORKER_CORES), &io_cfg->pkt_proc_core, &io_cfg->pkt_proc_core_64_127); // worker masks 0-63 and 64-127 io_cfg->pkt_aux_core = 0; // sample app says 0 = "do not start" io_cfg->timing_core = *gpd(fhip, nump, ORAN_CONFIG_IO_CORE)->iptr; // core used by xran