### Start FlexRIC xApp Monitor Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Command to start the xapp_oran_moni xApp from the FlexRIC framework, using a specified configuration file. ```bash ./flexric/build/examples/xApp/c/monitor/xapp_oran_moni -c ./xapp_mon_e2sm_kpm.conf ``` -------------------------------- ### UE Console Output - Initial Startup Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md This is an example of the initial console output from AmarisoftUE upon startup. It includes version information, license details, and RF configuration. ZMQ messages indicate communication setup before the NTN Channel Emulator starts. ```text UE version 2023-12-15, Copyright (C) 2012-2023 Amarisoft This software is licensed to *** License server: x.x.x.x Support and software update available until 2024-10-28. RF0: sample_rate=5.760 MHz dl_freq=2185.000 MHz ul_freq=1995.000 MHz (band n256) dl_ant=1 ul_ant=1 2024-05-15T10:03:20.509325 [ALL ] [I] Task worker "async_thread" started... 2024-05-15T10:03:20.526217 [zmq:tx:0:0] [I] Binding to address tcp://*:2101. 2024-05-15T10:03:20.544409 [zmq:rx:0:0] [I] Connecting to address tcp://localhost:2100. 2024-05-15T10:03:21.544939 [zmq:rx:0:0] [I] Waiting for reading samples. Completed 0 of 768 samples. 2024-05-15T10:03:21.583579 [zmq:rx:0:0] [I] Waiting for data. 2024-05-15T10:03:21.583590 [zmq:tx:0:0] [I] Waiting for request. 2024-05-15T10:03:22.544942 [zmq:rx:0:0] [I] Waiting for reading samples. Completed 0 of 768 samples. ``` -------------------------------- ### Build and Install libzmq from Source Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Build and install the libzmq library from its source code. This includes running autogen, configure, make, and make install, followed by ldconfig. ```bash git clone https://github.com/zeromq/libzmq.git cd libzmq ./autogen.sh ./configure make sudo make install sudo ldconfig ``` -------------------------------- ### Start FlexRIC NearRT-RIC Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Execute the example NearRT-RIC provided within the FlexRIC framework from its build directory. ```bash ./flexric/build/examples/ric/nearRT-RIC ``` -------------------------------- ### Build and Install czmq from Source Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Build and install the czmq library from its source code. This includes running autogen, configure, make, and make install, followed by ldconfig. ```bash git clone https://github.com/zeromq/czmq.git cd czmq ./autogen.sh ./configure make sudo make install sudo ldconfig ``` -------------------------------- ### OCUDU Configuration Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/5g_cores/ella_core/index.md Example OCUDU configuration file. Ensure the 'addr' and 'plmn' values match your network setup. ```yaml cu_cp: amf: addr: 10.202.0.3 port: 38412 bind_addr: 10.202.0.5 supported_tracking_areas: - tac: 1 plmn_list: - plmn: "99901" tai_slice_support_list: - sst: 1 inactivity_timer: 300 security: nea_pref_list: nea2,nea1 nia_pref_list: nia2,nia1 cu_up: ngu: socket: - bind_addr: 10.202.0.5 ru_sdr: device_driver: uhd device_args: type=b200 clock: internal srate: 23.04 tx_gain: 80 rx_gain: 40 cell_cfg: dl_arfcn: 665000 band: 77 channel_bandwidth_MHz: 20 common_scs: 30 plmn: "99901" tac: 1 pdcch: dedicated: ss2_type: common dci_format_0_1_and_1_1: false prach: prach_config_index: 160 pdsch: mcs_table: qam64 pusch: mcs_table: qam64 log: filename: /tmp/gnb.log all_level: info pcap: mac_enable: enable mac_filename: /tmp/gnb_mac.pcap ngap_enable: enable ngap_filename: /tmp/gnb_ngap.pcap ``` -------------------------------- ### Start Docker Services Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/README.md Command to start the Docker services for the documentation environment. ```bash docker compose -f docker-compose.yml up ``` -------------------------------- ### Install PF-BBDEV Configuration Application Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/accx00/index.md Clone the repository, navigate into it, and run the build script to install the PF-BBDEV Configuration application. ```bash git clone https://github.com/intel/pf-bb-config.git cd pf-bb-config/ ./build.sh ``` -------------------------------- ### Install ZeroMQ Development Libraries (Ubuntu) Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Install the ZeroMQ development libraries on Ubuntu systems using apt-get. ```bash sudo apt-get install libzmq3-dev ``` -------------------------------- ### Run ORAN SC RIC xApp Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Execute the kpm_mon_xapp.py script to subscribe to DRB.UEThpUl and DRB.UEThpUl measurements. This command starts the xApp and configures it to display RIC_INDICATION messages. ```bash docker compose exec python_xapp_runner ./kpm_mon_xapp.py --metrics=DRB.UEThpDl,DRB.UEThpUl --kpm_report_style=5 ``` -------------------------------- ### Start OAM Manager Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/radio_units/picocom.md Navigate to the 'ru_oam' directory and start the 'oam_manager' process with sudo. ```bash cd PC-003001-LS/npu/ru_oam/ sudo ./oam_manager ``` -------------------------------- ### Start RF Component Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/radio_units/picocom.md Navigate to the RF directory and execute the run script with sudo privileges to start the RF part of the board. ```bash cd PC-003001-LS/npu/RFICDriver/ sudo ./run.sh ``` -------------------------------- ### OCUDU gNB Console Output Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/amari_ue/index.md This output shows the gNB connecting to the AMF, initializing the UHD device (B200), and starting the cell with specified parameters. ```text Available radio types: uhd and zmq. --== OCUDU gNB (commit 87c3fe355) ==-- Connecting to AMF on 172.22.0.10:38412 [INFO] [UHD] linux; GNU C++ version 11.3.0; Boost_107400; UHD_4.4.0.0-0ubuntu1~jammy1 [INFO] [LOGGING] Fastpath logging disabled at runtime. Making USRP object with args 'type=b200' [INFO] [B200] Detected Device: B210 [INFO] [B200] Operating over USB 3. [INFO] [B200] Initialize CODEC control... [INFO] [B200] Initialize Radio control... [INFO] [B200] Performing register loopback test... [INFO] [B200] Register loopback test passed [INFO] [B200] Performing register loopback test... [INFO] [B200] Register loopback test passed [INFO] [B200] Setting master clock rate selection to 'automatic'. [INFO] [B200] Asking for clock rate 16.000000 MHz... [INFO] [B200] Actually got clock rate 16.000000 MHz. [INFO] [MULTI_USRP] Setting master clock rate selection to 'manual'. [INFO] [B200] Asking for clock rate 11.520000 MHz... [INFO] [B200] Actually got clock rate 11.520000 MHz. Cell pci=1, bw=10 MHz, dl_arfcn=632628 (n78), dl_freq=3489.42 MHz, dl_ssb_arfcn=632640, ul_freq=3489.42 MHz ==== gNodeB started === Type to view trace ``` -------------------------------- ### Example Host Routing Table Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md An example of the expected output from the 'route -n' command on the host machine, showing network routes. ```bash Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eno1 10.45.0.0 10.53.1.2 255.255.0.0 UG 0 0 0 br-dfa5521eb807 10.53.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br-dfa5521eb807 ... ``` -------------------------------- ### Start Ella Core Service Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/5g_cores/ella_core/index.md Starts the Ella Core snap service and enables it to run on system startup. ```shell sudo snap start ella-core --enable ``` -------------------------------- ### Install libfftw on Ubuntu Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Installs the libfftw library, required for FFT calculations, on Ubuntu 22.04 or later. ```bash sudo apt-get install libfftw3-dev ``` -------------------------------- ### Install K3s on a Server Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/k8s/index.md Installs the K3s lightweight Kubernetes distribution on a server. This command is suitable for setting up a single-node cluster. ```bash curl -sfL https://get.k3s.io | sh - ``` -------------------------------- ### Install GNU-Radio Companion Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md Installs GNU-Radio Companion on Ubuntu systems. This is the primary tool used for building the signal flow graph in this tutorial. ```default sudo apt-get install gnuradio ``` -------------------------------- ### Example UE Routing Table Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md An example of the expected output from checking the 'ue1' routing table, showing its default gateway and network interface. ```bash Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.45.1.2 0.0.0.0 UG 0 0 0 pdn0 10.45.1.0 0.0.0.0 255.255.255.0 U 0 0 0 pdn0 ``` -------------------------------- ### Start Local Preview Server with Docker Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/dev_guide/contributing_guide/contributing_docs.md Build and start the local preview server for the documentation using Docker Compose. Use the --build flag to ensure a fresh image is built, especially after dependency changes. ```bash docker compose -f docker-compose.yml up --build ``` -------------------------------- ### OAM Manager Output Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/radio_units/picocom.md Example output from the 'oam_manager' process, indicating the start of interactive operation. ```text GIT_BRANCH=master; GIT_BRANCH=f8233eb84a73f4dea67ec2a118ada4935507603d; [Initial oam messages sequence sending]: [#################################################################################################### ][100%][-] [oam@operation]# ``` -------------------------------- ### Start srsUE Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Run the srsUE application from its build folder using the specified configuration file. ```bash sudo ./srsue ue_zmq.conf ``` -------------------------------- ### RF Component Output Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/radio_units/picocom.md Example output observed after successfully starting the RF component, indicating board type and status. ```text Value is 2, currently Board Type is scb_x3 Run the reset_rfic Export GPIO 3-2 (418) to userspace. ... ... adi_board_adrv9025_JesdBringup 1079, adrv9025LinkStatus = 0 ADRV9025 TX deframer status = 18 adi_board_adrv9025_Program_Phase2 1678, adrv9025 RX LinkStatus 4 = 6 main 102 Reg 6a89 read back: 25 RX gain index: 0 RSSI level: 0 ``` -------------------------------- ### Download, Build, and Install DPDK Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/dpdk/index.md Downloads a specific DPDK version, builds it using Meson and Ninja, installs it, and updates the dynamic linker cache. ```bash wget https://fast.dpdk.org/rel/dpdk-25.11.tar.xz tar xvf dpdk-25.11.tar.xz dpdk-25.11/ cd dpdk-25.11/ meson setup build cd build ninja sudo meson install sudo ldconfig ``` -------------------------------- ### DPDK EAL Arguments Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/testmode/index.md Example of EAL arguments for DPDK configuration. Adjust these to match your specific DPDK setup and network interface BDF. ```yaml eal_args: "--lcores (0-1)@(0-15)" ``` -------------------------------- ### Install ORAN SC RIC using Docker Compose Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Clones the ORAN SC RIC repository and starts the RIC using Docker Compose. This is a simplified installation method. ```bash git clone https://github.com/srsran/oran-sc-ric cd ./oran-sc-ric docker compose up ``` -------------------------------- ### Initialize Pegatron RU Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/radio_units/pegatron.md Run this command to initialize the Pegatron RU with the specified configuration file. Ensure the RU is powered on and PTP synchronization is locked before execution. ```bash sudo ./gnb -c gnb_ru_pegatron_tdd_n78_100mhz_4x4.yml ``` -------------------------------- ### Install TuneD and Configure GRUB Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/tuning/index.md Installs the TuneD service and creates a symbolic link for the GRUB configuration file. Ensure this is done before proceeding with profile customization. ```bash sudo apt install tuned sudo ln -s /boot/grub/grub.cfg /etc/grub2.cfg ``` -------------------------------- ### gNB Console Output Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md Example console output when starting the gNB, indicating connection status to the AMF and cell configuration details. Successful connection to the core network is crucial for operation. ```default The PRACH detector will not meet the performance requirements with the configuration {Format 1, ZCZ 0, SCS 1.25kHz, Rx ports 1}. Lower PHY in executor blocking mode. --== OCUDU gNB (commit 2c67c80) ==-- Connecting to AMF on 10.53.1.2:38412 Available radio types: zmq. Cell pci=1, bw=5 MHz, 1T1R, dl_arfcn=437000 (n256), dl_freq=2185.0 MHz, dl_ssb_arfcn=437090, ul_freq=1995.0 MHz ==== gNodeB started === Type to view trace ``` -------------------------------- ### LLS-C1 PTP Configuration Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/k8s/index.md Example configuration for the LLS-C1 PTP synchronization setup using the G.8275.1 multicast profile. This configuration is suitable for scenarios where the DU server drives PTP synchronization and the RU acts as a client. ```yaml config: dataset_comparison: "G.8275.x" G.8275.defaultDS.localPriority: "128" maxStepsRemoved: "255" logAnnounceInterval: "-3" logSyncInterval: "-4" logMinDelayReqInterval: "-4" serverOnly: "1" clientOnly: "0" G.8275.portDS.localPriority: "128" ptp_dst_mac: "01:80:C2:00:00:0E" network_transport: "L2" domainNumber: "24" ``` -------------------------------- ### Start AmarisoftUE Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md Execute this command to launch the AmarisoftUE simulator. Ensure the configuration file is correctly specified and the `up-ifup` script is in the same directory. ```bash sudo ./lteue ./ue-nr-ntn-geo.cfg ``` -------------------------------- ### LLS-C3 PTP Configuration Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/k8s/index.md Example configuration for the LLS-C3 PTP synchronization setup using the G.8275.1 multicast profile. This configuration is suitable for scenarios where both DU and RU act as clients receiving PTP messages from a common grandmaster. ```yaml config: dataset_comparison: "G.8275.x" G.8275.defaultDS.localPriority: "128" maxStepsRemoved: "255" logAnnounceInterval: "-3" logSyncInterval: "-4" logMinDelayReqInterval: "-4" serverOnly: "0" clientOnly: "1" G.8275.portDS.localPriority: "128" ptp_dst_mac: "01:80:C2:00:00:0E" network_transport: "L2" domainNumber: "24" ``` -------------------------------- ### Initialize RU Configuration Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/integrations/radio_units/foxconn.md Run this script on the RU console after updating the configuration file to initialize the firmware. Observe the output to verify correct value reading and PTP sync lock. ```bash ./init_rrh_config_enable_cuplane ``` -------------------------------- ### FlexRIC NearRT-RIC Console Output Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Example console output when starting the NearRT-RIC in the FlexRIC framework, showing configuration loading and initialization details. ```bash Setting the config -c file to /usr/local/etc/flexric/ric.conf [LibConf]: loading service models from SM_DIR: /usr/local/lib/flexric/ [LibConf]: reading configuration for NearRT_RIC [LibConf]: NearRT_RIC IP: 127.0.0.1 [LibConf]: E2_Port Port: 36421 [LibConf]: E42_Port Port: 36422 [NEAR-RIC]: nearRT-RIC IP Address = 127.0.0.1, PORT = 36421 [NEAR-RIC]: Initializing [NEAR-RIC]: Loading SM ID = 3 with def = ORAN-E2SM-RC [NEAR-RIC]: Loading SM ID = 142 with def = MAC_STATS_V0 [NEAR-RIC]: Loading SM ID = 148 with def = GTP_STATS_V0 [NEAR-RIC]: Loading SM ID = 146 with def = TC_STATS_V0 [NEAR-RIC]: Loading SM ID = 145 with def = SLICE_STATS_V0 [NEAR-RIC]: Loading SM ID = 143 with def = RLC_STATS_V0 [NEAR-RIC]: Loading SM ID = 2 with def = ORAN-E2SM-KPM [NEAR-RIC]: Loading SM ID = 144 with def = PDCP_STATS_V0 [iApp]: Initializing ... [iApp]: nearRT-RIC IP Address = 127.0.0.1, PORT = 36422 fd created with 6 [NEAR-RIC]: Initializing Task Manager with 2 threads ``` -------------------------------- ### OCUDU gNB Console Output Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/amari_ue/index.md Example console output when the OCUDU gNB starts successfully, showing connection status and cell configuration. ```bash Available radio types: uhd and zmq. --== OCUDU gNB (commit 2c67c80) ==-- Connecting to AMF on 172.22.0.10:38412 Cell pci=1, bw=10 MHz, dl_arfcn=536020 (n7), dl_freq=2680.1 MHz, dl_ssb_arfcn=535930, ul_freq=2560.1 MHz ==== gNodeB started === Type to view trace ``` -------------------------------- ### NearRT-RIC Console Output for FlexRIC xApp Connection Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/near-rt-ric/index.md Example log output on the NearRT-RIC console showing the reception and response to the FlexRIC xApp's setup request. ```bash [iApp]: E42 SETUP-REQUEST received [iApp]: E42 SETUP-RESPONSE sent ``` -------------------------------- ### Running the gNB Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/matlab/index.md Start the gNB application with the specified configuration file. Ensure you have the necessary permissions to run the executable. ```bash sudo ./gnb -c config.yml ``` -------------------------------- ### Run gNB with Configuration Files Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md Launch the gNB directly from the build folder, specifying the main configuration file (`gnb_zmq.yml`) and the NTN-specific configuration (`geo_ntn.yml`). ```default sudo ./gnb -c ./gnb_zmq.yml -c geo_ntn.yml ``` -------------------------------- ### Launch Grafana Docker Container Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/grafana/grafana.md Use this command to start the Grafana UI using Docker Compose. Ensure you have Docker and docker compose installed and the docker-compose.yml file is in the correct location. ```bash sudo docker compose -f docker/docker-compose.yml up grafana ``` -------------------------------- ### Entry Point: Wiring the Decorator Chain Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/dev_guide/architecture_guide/3_realization/8_plugins/3_decorator_chaining.md Demonstrates how to build a processing chain by conditionally wrapping a base processor factory with a ZMQ decorator based on command-line arguments. This approach allows additive composition. ```cpp std::shared_ptr create_phy_tap_factory(unsigned nof_rb, unsigned nof_ports, const std::string& args) { // Start with the base processing stage. std::shared_ptr factory = std::make_shared(nof_rb, nof_ports); // If tap_ul_epre=
appears in args, wrap with the ZMQ decorator. std::smatch m; if (std::regex_search(args, m, std::regex(R"(tap_ul_epre=([^,]*))" ))) { factory = std::make_shared(std::move(factory), m[1].str()); } return std::make_shared(std::move(factory)); } ``` -------------------------------- ### Launch Amarisoft UE Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/amari_ue/index.md Start the Amarisoft UE with root permissions to create the TUN device. Use the provided configuration file. ```bash /root/ue/lteue /root/ue/config/ue-nr-sa-fdd-n7-zmq-single-ue.cfg ``` -------------------------------- ### Install oneMKL on Ubuntu Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Installs the oneMKL library, required for FFT calculations, on Ubuntu 22.04 or later. This involves adding the Intel oneAPI repository and installing the necessary packages. ```bash sudo apt update sudo apt install -y gpg-agent wget wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list sudo apt update sudo apt install intel-oneapi-mkl-devel libomp-dev ``` -------------------------------- ### Open5GS Console Output Example Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/ntn/index.md Example console output on the Open5GS side, showing that the AMF has accepted the N2 connection from the gNB. This confirms successful network registration. ```default open5gs_5gc | 05/15 10:02:24.193: [amf] INFO: gNB-N2 accepted[10.53.1.1]:60555 in ng-path module (../src/amf/ngap-sctp.c:113) open5gs_5gc | 05/15 10:02:24.193: [amf] INFO: gNB-N2 accepted[10.53.1.1] in master_sm module (../src/amf/amf-sm.c:741) open5gs_5gc | 05/15 10:02:24.197: [amf] INFO: [Added] Number of gNBs is now 1 (../src/amf/context.c:1231) open5gs_5gc | 05/15 10:02:24.197: [amf] INFO: gNB-N2[10.53.1.1] max_num_of_ostreams : 30 (../src/amf/amf-sm.c:780) ``` -------------------------------- ### Install libfftw on Fedora Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Installs the libfftw library, required for FFT calculations, on Fedora. ```bash sudo yum install fftw-devel ``` -------------------------------- ### Build and Install UHD with DPDK Support Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/dpdk_uhd/index.md Clones the UHD repository, checks out a specific version, configures the build with DPDK enabled, and installs UHD. Includes updating the dynamic linker cache. ```bash git clone https://github.com/EttusResearch/uhd.git cd uhd/host git checkout v4.9.0.0 mkdir build cd build cmake -DENABLE_DPDK=ON -DENABLE_EXAMPLES=ON -DENABLE_UTILS=ON ../ make -j$(nproc) sudo make install sudo ldconfig ``` -------------------------------- ### Configure RU Emulator Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/testmode/index.md Create an `emu.yaml` configuration file for the RU Emulator. This example includes settings for logging and RU emulation parameters. ```yaml log: filename: /tmp/ru_emu.log level: warning ru_emu: cells: - bandwidth: 100 # Bandwidth of the cell network_interface: ens2f1 # Use BDF instead of interface name for DPDK ru_mac_addr: 00:33:22:33:00:11 # MAC address of the RU du_mac_addr: 00:33:22:33:00:66 # MAC address of the DU enable_promiscuous: false # Promiscuous mode flag vlan_tag: 33 # VLAN tag dl_port_id: [0, 1, 2, 3] # Port IDs for downlink ul_port_id: [0, 1, 2, 3] # Port IDs for uplink prach_port_id: [4, 5] # Port IDs for PRACH compr_method_ul: "bfp" # Compression method for uplink compr_bitwidth_ul: 9 # Compression bitwidth for uplink t2a_max_cp_dl: 470 # T2a maximum value for downlink Control-Plane t2a_min_cp_dl: 350 # T2a minimum value for downlink Control-Plane t2a_max_cp_ul: 200 # T2a maximum value for uplink Control-Plane t2a_min_cp_ul: 90 # T2a minimum value for uplink Control-Plane t2a_max_up: 345 # T2a maximum value for User-Plane t2a_min_up: 70 # T2a minimum value for User-Plane # dpdk: ``` -------------------------------- ### Install DPDK Dependencies Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/dpdk_uhd/index.md Installs essential build tools and libraries required for compiling DPDK. ```bash sudo apt install build-essential tar wget python3-pip libnuma-dev meson ninja-build python3-pip python3-pyelftools ``` -------------------------------- ### Install libfftw on Arch Linux Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/user_manual/installation/installation.md Installs the libfftw library, required for FFT calculations, on Arch Linux. ```bash sudo pacman -S fftw ``` -------------------------------- ### Install Open5GS using Helm Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/k8s/index.md Install the Open5GS core network using the OCUDU Helm chart. This command assumes a values.yaml file (e.g., 5gSA-values.yaml) has been prepared and references the necessary PVC. ```bash helm install open5gs oci://registry-1.docker.io/gradiant/open5gs --version 2.2.5 -f 5gSA-values.yaml -n open5gs --create-namespace ``` -------------------------------- ### Install DPDK Build Dependencies Source: https://gitlab.com/ocudu/ocudu_docs/-/blob/main/docs/tutorials/dpdk/index.md Installs essential packages required for building DPDK on Debian-based systems. ```bash sudo apt install build-essential tar wget python3-pip libnuma-dev meson ninja-build python3-pyelftools ```