+ In case O1 is enabled and SMO is not available run section H to start the stack.
+
+G. How to test with Intel L1:
+-----------------------------
+
+I. Compilation
+ 1. Build ODU :
+ a. Create folder l2/src/wls_lib. Copy wls_lib.h from <intel_directory>/phy/wls_lib/ to l2/src/wls_lib.
+ b. Create folder l2/src/dpdk_lib. Copy following files from <intel_directory>/dpdk-19.11/x86_64-native-linuxapp-gcc/include/ to l2/sr c/dpdk_lib.
+ rte_branch_prediction.h
+ rte_common.h
+ rte_config.h
+ rte_dev.h
+ rte_log.h
+ rte_pci_dev_feature_defs.h
+ rte_bus.h
+ rte_compat.h
+ rte_debug.h
+ rte_eal.h
+ rte_os.h
+ rte_per_lcore.h
+ c. Build folder
+ cd l2/build/odu
+ d. Build ODU Binary:
+ make odu PHY=<refer section D.1.h> PHY_MODE=<refer section D.1.h> MACHINE=<refer section D.1.h> MODE=<refer section D.1.h>
+
+ 2. Build CU Stub and RIC Stub:
+ a. Execute steps in sections D.3 and D.4
+
+II. Execution
+ 1. Refer to below link for assumptions, dependencies, pre-requisites etc for ODU-Low execution
+ https://docs.o-ran-sc.org/projects/o-ran-sc-o-du-phy/en/latest/
+
+ 2. Execute L1:
+ a. Setup environment:
+ cd <intel_directory>/phy/
+ source ./setupenv.sh
+ b. Run L1 binary :
+ cd <intel_directory>/FlexRAN/l1/bin/nr5g/gnb/l1
+ To run
+ i. In timer mode : ./l1.sh -e
+ ii. In radio mode : ./l1.sh -xran
+ L1 is up when console prints follow:
+
+ Non BBU threads in application
+ ===========================================================================================================
+ nr5g_gnb_phy2mac_api_proc_stats_thread: [PID: 8659] binding on [CPU 0] [PRIO: 0] [POLICY: 1]
+ wls_rx_handler (non-rt): [PID: 8663] binding on [CPU 0]
+ ===========================================================================================================
+
+ PHY>welcome to application console
+
+ 3. Execute FAPI Translator:
+ a. Setup environment:
+ cd <intel_directory>/phy/
+ source ./setupenv.sh
+ b. Run FAPI translator binary:
+ cd <intel_directory>/phy/fapi_5g/bin/
+ ./oran_5g_fapi --cfg=oran_5g_fapi.cfg
+
+ 4. Execute CU Stub and RIC Stub:
+ a. Run steps in sections E.1-E.3
+
+ 5. Execute DU:
+ a. DU execution folder
+ cd l2/bin/odu
+ b. Export WLS library path
+ export LD_LIBRARY_PATH=<intel_directory>/phy/wls_lib/lib:$LD_LIBRARY_PATH
+ c. Run ODU binary
+ ./odu
+
+
+H. Push cell and slice configuration over O1 using netopeer-cli
+---------------------------------------------------------------
+ When O-DU High is run with O1 enabled it waits for initial cell configuration to be pushed by SMO before starting the stack. In case the SMO is not available then these configurations can be pushed via netopeer-cli as follows:
+
+ $cd l2/build/config
+ $netopeer2-cli
+ > connect --login netconf
+ Interactive SSH Authentication
+ Type your password:
+ Password: netconf!
+ > edit-config --target candidate --config=cellConfig.xml
+ > OK
+ > commit
+ > OK
+ > edit-config --target candidate --config=rrmPolicy.xml
+ > OK
+ > commit
+ > OK
+
+ For pushing these configurations in subsequent runs please edit cellConfig.xml and rrmPolicy.xml and increment number in the <id> tag to a new value e.g.
+
+ <id>rrm-2</id
+
+
+I. How to execute the Health Check using netopeer-cli : get alarm-list
+-----------------------------------------------------------------------
+
+ In case the SMO is not available the alarm list can be checked using netopeer-cli as follows:
+
+ $netopeer2-cli
+ > connect --login netconf
+ Interactive SSH Authentication
+ Type your password:
+ Password: netconf!
+ > get --filter-xpath /o-ran-sc-odu-alarm-v1:odu/alarms
+ DATA
+ <odu xmlns="urn:o-ran:odu:alarm:1.0">
+ <alarms>
+ <alarm>
+ <alarm-id>1009</alarm-id>
+ <alarm-text>cell id [1] is up</alarm-text>
+ <severity>2</severity>
+ <status>Active</status>
+ <additional-info>cell UP</additional-info>
+ </alarm>
+ </alarms>
+ </odu>
+
+ The XML output is a list of active alarms in the O-DU High system.
+
+
+J. Troubleshooting Netconf server issues
+----------------------------------------
+ In case the Netconf server and sysrepo breaks down, run the following steps:
+
+ $cd l2/build/scripts
+ $sudo ./troubleshoot_netconf.sh cleanup
+ execute section C.3 and C.4 again