X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=fhi_lib%2Freadme.txt;fp=fhi_lib%2Freadme.txt;h=53943714c7a9bc19e784f1417fd1aebca8645fb7;hp=0000000000000000000000000000000000000000;hb=4745e5c88ba931c6d71cb6d8c681f76cf364eac5;hpb=59f84608ec15c016958a6e0e0ddd813f376c0925 diff --git a/fhi_lib/readme.txt b/fhi_lib/readme.txt new file mode 100644 index 0000000..5394371 --- /dev/null +++ b/fhi_lib/readme.txt @@ -0,0 +1,163 @@ +#/****************************************************************************** +#* +#* Copyright (c) 2019 Intel. +#* +#* Licensed under the Apache License, Version 2.0 (the "License"); +#* you may not use this file except in compliance with the License. +#* You may obtain a copy of the License at +#* +#* http://www.apache.org/licenses/LICENSE-2.0 +#* +#* Unless required by applicable law or agreed to in writing, software +#* distributed under the License is distributed on an "AS IS" BASIS, +#* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#* See the License for the specific language governing permissions and +#* limitations under the License. +#* +#*******************************************************************************/ +1. Introduction +xRAN Lib performs communication between the low-layer split central unit (lls-CU) and RU, it is highly-optimized software implementation based on Intel Architecture to provide the standard interface implementation based on O-RAN front haul interface specification. + +2. Supported features +please refer PRD in the table <>, only ICC compiler was supported for this version. + +3. Fixed Issues +It's first version of seed code for feature development, future fixed issues will be tracked here. + +4. Known Issues +From current unit testing coverage, no Know issues was founded yet. + +5. Prerequisites for install + +5.1 Intel Compiler version +icc -v +icc version 18.0.1 (gcc version 4.8.5 compatibility) + +5.2 DPDK version +dpdk_18.08 + +5.3 compile DPDK with command +[dpdk]# ./usertools/dpdk-setup.sh + +select [16] x86_64-native-linuxapp-icc +select [18] Insert IGB UIO module +exit [35] Exit Script + +5.4 Find PCIe device of Fortville port + +lspci |grep Eth +19:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) +19:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) +41:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04) +41:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04) +d8:00.0 << Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) <<<< this one +d8:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) + +5.5 Corresponding Eth device via + +ifconfig -a + +find port Eth with correct PCIe Bus address as per list above + +ethtool -i enp216s0f0 +driver: i40e +version: 2.4.10 << i40e driver +firmware-version: 6.01 0x800034a4 1.1747.0 +expansion-rom-version: +bus-info: 0000:d8:00.0 <<< this one +supports-statistics: yes +supports-test: yes +supports-eeprom-access: yes +supports-register-dump: yes +supports-priv-flags: yes + +5.6 install correct 2.4.10 i40e version if different (https://downloadcenter.intel.com/download/28306/Intel-Network-Adapter-Driver-for-PCIe-40-Gigabit-Ethernet-Network-Connections-Under-Linux-) + +make sure firmare version is + +firmware-version: 6.01 + +5.7 make sure that linux boot arguments are correct + +cat /proc/cmdline +BOOT_IMAGE=/vmlinuz-3.10.0-rt56 root=/dev/mapper/centos_5gnr--skx--sp-root ro crashkernel=auto rd.lvm.lv=centos_5gnr-skx-sp/root rd.lvm.lv=centos_5gnr-skx-sp/swap intel_iommu=off usbcore.autosuspend=-1 selinux=0 enforcing=0 nmi_watchdog=0 softlockup_panic=0 audit=0 intel_pstate=disable cgroup_disable=memory mce=off idle=poll hugepagesz=1G hugepages=20 hugepagesz=2M hugepages=0 default_hugepagesz=1G isolcpus=1-35 rcu_nocbs=1-35 kthread_cpus=0 irqaffinity=0 nohz_full=1-35 + +5.8 enable SRIOV VF port for XRAN + +echo 2 > /sys/class/net/enp216s0f0/device/sriov_numvfs + +see https://doc.dpdk.org/guides/nics/intel_vf.html + +5.9 Check Virtual Function was created + +lspci |grep Eth +19:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) +19:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) +41:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04) +41:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04) +d8:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) +d8:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) +d8:02.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) <<<< this is XRAN port (u-plane) +d8:02.1 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) <<<< this is XRAN port (c-plane) + +5.10 Configure VFs +- set mac to 00:11:22:33:44:66 +- set Vlan tag to 2 (U-plane) for VF0 +- set Vlan tag to 1 (C-plane) for VF1 + +[root@5gnr-sc12-xran app]# ip link set enp216s0f0 vf 0 mac 00:11:22:33:44:66 vlan 2 +[root@5gnr-sc12-xran app]# ip link set enp216s0f0 vf 1 mac 00:11:22:33:44:66 vlan 1 +[root@5gnr-sc12-xran app]# ip link show +1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 +2: enp65s0f0: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether a4:bf:01:3e:6b:79 brd ff:ff:ff:ff:ff:ff +3: eno2: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether a4:bf:01:3e:6b:7a brd ff:ff:ff:ff:ff:ff +4: enp25s0f0: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether 90:e2:ba:d3:b2:ec brd ff:ff:ff:ff:ff:ff +5: enp129s0f0: mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000 + link/ether 3c:fd:fe:a8:e0:70 brd ff:ff:ff:ff:ff:ff +6: enp129s0f1: mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000 + link/ether 3c:fd:fe:a8:e0:71 brd ff:ff:ff:ff:ff:ff +7: enp216s0f0: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether 3c:fd:fe:9e:93:68 brd ff:ff:ff:ff:ff:ff + vf 0 MAC 00:11:22:33:44:66, vlan 2, spoof checking on, link-state auto, trust off + vf 1 MAC 00:11:22:33:44:66, vlan 1, spoof checking on, link-state auto, trust off +8: enp25s0f1: mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000 + link/ether 90:e2:ba:d3:b2:ed brd ff:ff:ff:ff:ff:ff +9: enp216s0f1: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether 3c:fd:fe:9e:93:69 brd ff:ff:ff:ff:ff:ff +12: enp216s2: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether 96:fa:4d:04:4d:87 brd ff:ff:ff:ff:ff:ff +13: enp216s2f1: mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000 + link/ether a6:67:49:bb:bd:5e brd ff:ff:ff:ff:ff:ff + +6. Install xRAN Lib + +6.1 start matlab and run gen_test.m +copy ant_*.bin to /xran/app + +6.2 build xran sample application +export XRAN_DIR=xRAN folder +export RTE_SDK=dpdk folder +[xRAN root folder]$ ./build.sh + +6.3 update Eth port used for XRAN +in ./app/run_lls-cu.sh +ports have to match VF function from step 1.11 (0000:d8:02.0 - U-plane 0000:d8:02.1 C-plane) + +6.4 Run dpdk.sh to assign port to PMD + +[xran root folder]# ./app/dpdk.sh + +Network devices using DPDK-compatible driver +============================================ +0000:d8:02.0 'XL710/X710 Virtual Function 154c' drv=igb_uio unused=i40evf +0000:d8:02.1 'XL710/X710 Virtual Function 154c' drv=igb_uio unused=i40evf + + +6.5 Run XRAN lls-CU sample app +setup RU mac address in config_file_lls_cu.dat +[xran root folder]# ./app/run_lls-cu.sh +