From c83bd8745943842331fa4374808b49d313f6f0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Soares=20Silva?= Date: Fri, 1 Aug 2025 13:19:04 +0100 Subject: [PATCH] Fixup WLS documentation and Makefile patch --- cmake_targets/tools/install_wls_lib.patch | 61 ++++++++++++----------- doc/nfapi.md | 9 +++- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/cmake_targets/tools/install_wls_lib.patch b/cmake_targets/tools/install_wls_lib.patch index 5050b79a4e..c551f842b5 100644 --- a/cmake_targets/tools/install_wls_lib.patch +++ b/cmake_targets/tools/install_wls_lib.patch @@ -1,5 +1,5 @@ diff --git a/wls_lib/Makefile b/wls_lib/Makefile -index 2f8e4b2..e657488 100644 +index 2f8e4b2..7b99a26 100644 --- a/wls_lib/Makefile +++ b/wls_lib/Makefile @@ -1,20 +1,6 @@ @@ -23,7 +23,7 @@ index 2f8e4b2..e657488 100644 +################################################################ +# +################################################################ - + MYCUSTOMTAB=' ' MYCUSTOMSPACE='============================================================================================' @@ -24,11 +10,17 @@ MYCUSTOMSPACE1='------------------------------------------------------------' @@ -48,9 +48,12 @@ index 2f8e4b2..e657488 100644 else ifeq ($(WIRELESS_SDK_TOOLCHAIN),icx) CC := icx CPP := icx -@@ -44,9 +36,9 @@ ifeq ($(WIRELESS_SDK_TARGET_ISA),sse) +@@ -42,11 +34,11 @@ endif + ifeq ($(WIRELESS_SDK_TARGET_ISA),sse) + TARGET_PROCESSOR := -xSSE4.2 else ifeq ($(WIRELESS_SDK_TARGET_ISA),avx2) - TARGET_PROCESSOR := -xCORE-AVX2 +- TARGET_PROCESSOR := -xCORE-AVX2 ++ TARGET_PROCESSOR := -march=core-avx2 else ifeq ($(WIRELESS_SDK_TARGET_ISA),avx512) - TARGET_PROCESSOR := -xCORE-AVX512 + TARGET_PROCESSOR := -march=skylake-avx512 @@ -63,7 +66,7 @@ index 2f8e4b2..e657488 100644 @@ -66,15 +58,38 @@ PROJECT_DIR := ./ BUILDDIR := make PROJECT_BINARY := $(PROJECT_NAME).so - + +PKGCONF ?= pkg-config +LIBDPDK_VERSION=20.11.3 + @@ -79,7 +82,7 @@ index 2f8e4b2..e657488 100644 +$(error "Please define RTE_SDK environment variable OR install DPDK version $(LIBDPDK_VERSION)") +endif endif - + -RTE_INC := $(shell PKG_CONFIG_PATH=/usr/lib64/pkgconfig:$(RTE_SDK)/build/meson-uninstalled pkgconf --cflags-only-I libdpdk) +# At least one of the options is defined + @@ -88,10 +91,10 @@ index 2f8e4b2..e657488 100644 +else ifeq ($(DPDK_INSTALLED),1) + RTE_INC := $(shell PKG_CONFIG_PATH=/usr/lib64/pkgconfig $(PKGCONF) --cflags-only-I libdpdk) +endif - + CC_SRC = wls_lib_dpdk.c \ syslib.c - + +CC_HDR = syslib.h \ + ttypes.h \ + wls.h \ @@ -104,74 +107,74 @@ index 2f8e4b2..e657488 100644 @@ -84,18 +99,19 @@ CC_FLAGS += -std=gnu11 -Wall -Wno-deprecated-declarations \ -Wimplicit-function-declaration \ -g -O3 -mcmodel=large $(TARGET_PROCESSOR) - + -INC := -I$(RTE_INC) +INC := -I$(RTE_INC) -I../intel_fapi/ DEF := - + AS_FLAGS := AR_FLAGS := rc - + PROJECT_OBJ_DIR := $(BUILDDIR)/obj +PROJECT_DEP_DIR := $(PROJECT_OBJ_DIR)/$(PROJECT_NAME).dep.d - + CC_OBJS := $(patsubst %.c,%.o,$(CC_SRC)) AS_OBJS := $(patsubst %.s,%.o,$(AS_SRC)) OBJS := $(CC_OBJS) $(AS_OBJS) $(LIBS) -DIRLIST := $(addprefix $(PROJECT_OBJ_DIR)/,$(sort $(dir $(OBJS)))) +DIRLIST := $(addprefix $(PROJECT_OBJ_DIR)/,$(sort $(dir $(OBJS)))) $(PROJECT_DEP_DIR) - + CC_OBJTARGETS := $(addprefix $(PROJECT_OBJ_DIR)/,$(CC_OBJS)) - + @@ -104,9 +120,7 @@ CC_FLAGS_FULL := $(CC_FLAGS) $(INC) $(DEF) - + AS_FLAGS := $(AS_FLAGS) $(INC) - + -PROJECT_DEP_FILE := $(PROJECT_OBJ_DIR)/$(PROJECT_NAME).dep - -ifeq ($(wildcard $(PROJECT_DEP_FILE)),$(PROJECT_DEP_FILE)) +ifeq ($(wildcard $(PROJECT_DEP_DIR)),$(PROJECT_DEP_DIR)) GENERATE_DEPS := else - + @@ -119,11 +133,11 @@ all : welcome_line $(PROJECT_BINARY) - + .PHONY : clear_dep clear_dep: - @$(RM) $(PROJECT_DEP_FILE) - @echo [DEP] $(subst $(PROJECT_OBJ_DIR)/,,$(PROJECT_DEP_FILE)) + @echo [DEP] rm $(PROJECT_DEP_DIR)/$(@F).dep + @$(RM) $(PROJECT_DEP_DIR)/$(@F).dep - + -$(CC_DEPS) : - @$(CC) -MM $(subst __up__,../,$(subst __dep__,,$@)) -MT $(PROJECT_OBJ_DIR)/$(patsubst %.c,%.o,$(subst __up__,../,$(subst __dep__,,$@))) $(CC_FLAGS_FULL) >> $(PROJECT_DEP_FILE) +$(CC_DEPS) : $(PROJECT_DEP_DIR) + @$(CC) $(CC_FLAGS_FULL) -MM $(subst __up__,../,$(subst __dep__,,$@)) -MT $(PROJECT_OBJ_DIR)/$(patsubst %.c,%.o,$(subst __up__,../,$(subst __dep__,,$@))) >> $(PROJECT_DEP_DIR)/$(@F).dep - + .PHONY : generate_deps generate_deps : clear_dep $(CC_DEPS) @@ -136,17 +150,17 @@ echo_start_build : $(DIRLIST) : -@$(MD) $@ - + -$(CC_OBJTARGETS) : +$(CC_OBJTARGETS) : $(GENERATE_DEPS) @echo [CC] $(subst $(PROJECT_OBJ_DIR)/,,$@) @$(CC) -c $(CC_FLAGS_FULL) -o"$@" $(patsubst %.o,%.c,$(subst $(PROJECT_OBJ_DIR)/,,$@)) - + -$(AS_OBJTARGETS) : +$(AS_OBJTARGETS) : $(CC_OBJTARGETS) $(CPP_OBJTARGETS) @echo [AS] $(subst $(PROJECT_OBJ_DIR)/,,$@) @$(AS) $(AS_FLAGS) -o"$@" $(patsubst %.o,%.s,$(subst $(PROJECT_OBJ_DIR)/,,$@)) - + -ifeq ($(wildcard $(PROJECT_DEP_FILE)),$(PROJECT_DEP_FILE)) +ifeq ($(wildcard $(PROJECT_DEP_DIR)),$(PROJECT_DEP_DIR)) - + -include $(PROJECT_DEP_FILE) +include $(PROJECT_DEP_DIR)/* - + endif - + @@ -156,7 +170,7 @@ clean: @$(RM) $(CC_OBJTARGETS) $(AS_OBJTARGETS) ifneq ($(wildcard $(PROJECT_DIR)/$(PROJECT_MAKE)),) @@ -179,17 +182,17 @@ index 2f8e4b2..e657488 100644 - @$(RM) $(PROJECT_BINARY) $(PROJECT_BINARY_LIB) $(PROJECT_DEP_FILE) + @$(RM) -rf $(PROJECT_BINARY) $(PROJECT_BINARY_LIB) $(PROJECT_DEP_DIR) endif - + xclean: clean @@ -172,7 +186,24 @@ welcome_line : debug : all release : all - + -$(PROJECT_BINARY) : $(DIRLIST) echo_start_build $(GENERATE_DEPS) $(PRE_BUILD) $(CC_OBJTARGETS) $(AS_OBJTARGETS) +$(PROJECT_BINARY) : $(DIRLIST) echo_start_build $(GENERATE_DEPS) $(CC_OBJTARGETS) $(AS_OBJTARGETS) @echo [AR] $(subst $(BUILDDIR)/,,$@) @$(CC) $(CC_OBJTARGETS) $(AS_OBJTARGETS) -shared -fPIC -o $@ - + +############################################################## +# Install configuration +############################################################## diff --git a/doc/nfapi.md b/doc/nfapi.md index 214aa2799f..c372de6744 100644 --- a/doc/nfapi.md +++ b/doc/nfapi.md @@ -194,14 +194,19 @@ Clone the Radisys repository (We're currently using the `oai_integration` branch git clone https://gerrit.o-ran-sc.org/r/o-du/l2 -b oai-integration -Build the O-DU +Build the O-DU (More details can be found in O-RAN's documentation page [here](https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-l2/en/latest/user-guide.html#i-execution-on-locally-compiling-o-du-high-source-code)) cd ~/l2/build/odu make clean_all;make odu PHY=INTEL_L1 MACHINE=BIT64 MODE=TDD;make cu_stub NODE=TEST_STUB MACHINE=BIT64 MODE=TDD;make ric_stub NODE=TEST_STUB MACHINE=BIT64 MODE=TDD +The O-DU requires some virtual interfaces to be setup in order to enable communication between the O-DU, CU_stub and RIC_stub Setup local interfaces for the cu_stub, ric_stub and o_du +The IP addresses shown match the ones specified in OSC ODU configuration file, found in /build/config/tdd_odu_config.xml +The parameters referenced are , and - sudo ifconfig enp7s0:ODU "192.168.130.81" && sudo ifconfig enp7s0:CU_STUB "192.168.130.82" && sudo ifconfig enp7s0:RIC_STUB "192.168.130.80" + sudo ifconfig :ODU "192.168.130.81" + sudo ifconfig :CU_STUB "192.168.130.82" + sudo ifconfig :RIC_STUB "192.168.130.80" Run cu_stu and ric_stub in separate terminals