1 #/******************************************************************************
3 #* Copyright (c) 2019 Intel.
5 #* Licensed under the Apache License, Version 2.0 (the "License");
6 #* you may not use this file except in compliance with the License.
7 #* You may obtain a copy of the License at
9 #* http://www.apache.org/licenses/LICENSE-2.0
11 #* Unless required by applicable law or agreed to in writing, software
12 #* distributed under the License is distributed on an "AS IS" BASIS,
13 #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 #* See the License for the specific language governing permissions and
15 #* limitations under the License.
17 #*******************************************************************************/
19 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.
22 please refer PRD in the table <<xRAN release track table.xlsx>>, only ICC compiler was supported for this version.
25 It's first version of seed code for feature development, future fixed issues will be tracked here.
28 From current unit testing coverage, no Know issues was founded yet.
30 5. Prerequisites for install
32 5.1 Intel Compiler version
34 icc version 18.0.1 (gcc version 4.8.5 compatibility)
36 Link to ICC (community free version):
37 https://software.intel.com/en-us/system-studio/choose-download#technical
43 5.3 compile DPDK with command
44 [dpdk]# ./usertools/dpdk-setup.sh
46 select [16] x86_64-native-linuxapp-icc
47 select [18] Insert IGB UIO module
50 5.4 Find PCIe device of Fortville port
53 19:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
54 19:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
55 41:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
56 41:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
57 d8:00.0 << Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) <<<< this one
58 d8:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
60 5.5 Corresponding Eth device via
64 find port Eth with correct PCIe Bus address as per list above
68 version: 2.4.10 << i40e driver
69 firmware-version: 6.01 0x800034a4 1.1747.0
70 expansion-rom-version:
71 bus-info: 0000:d8:00.0 <<< this one
72 supports-statistics: yes
74 supports-eeprom-access: yes
75 supports-register-dump: yes
76 supports-priv-flags: yes
78 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-)
80 make sure firmare version is
82 firmware-version: 6.01
84 5.7 make sure that linux boot arguments are correct
87 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
89 5.8 enable SRIOV VF port for XRAN
91 echo 2 > /sys/class/net/enp216s0f0/device/sriov_numvfs
93 see https://doc.dpdk.org/guides/nics/intel_vf.html
95 5.9 Check Virtual Function was created
98 19:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
99 19:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
100 41:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
101 41:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
102 d8:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
103 d8:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
104 d8:02.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) <<<< this is XRAN port (u-plane)
105 d8:02.1 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) <<<< this is XRAN port (c-plane)
108 - set mac to 00:11:22:33:44:66
109 - set Vlan tag to 2 (U-plane) for VF0
110 - set Vlan tag to 1 (C-plane) for VF1
112 [root@5gnr-sc12-xran app]# ip link set enp216s0f0 vf 0 mac 00:11:22:33:44:66 vlan 2
113 [root@5gnr-sc12-xran app]# ip link set enp216s0f0 vf 1 mac 00:11:22:33:44:66 vlan 1
114 [root@5gnr-sc12-xran app]# ip link show
115 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
116 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
117 2: enp65s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
118 link/ether a4:bf:01:3e:6b:79 brd ff:ff:ff:ff:ff:ff
119 3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
120 link/ether a4:bf:01:3e:6b:7a brd ff:ff:ff:ff:ff:ff
121 4: enp25s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
122 link/ether 90:e2:ba:d3:b2:ec brd ff:ff:ff:ff:ff:ff
123 5: enp129s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
124 link/ether 3c:fd:fe:a8:e0:70 brd ff:ff:ff:ff:ff:ff
125 6: enp129s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
126 link/ether 3c:fd:fe:a8:e0:71 brd ff:ff:ff:ff:ff:ff
127 7: enp216s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
128 link/ether 3c:fd:fe:9e:93:68 brd ff:ff:ff:ff:ff:ff
129 vf 0 MAC 00:11:22:33:44:66, vlan 2, spoof checking on, link-state auto, trust off
130 vf 1 MAC 00:11:22:33:44:66, vlan 1, spoof checking on, link-state auto, trust off
131 8: enp25s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
132 link/ether 90:e2:ba:d3:b2:ed brd ff:ff:ff:ff:ff:ff
133 9: enp216s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
134 link/ether 3c:fd:fe:9e:93:69 brd ff:ff:ff:ff:ff:ff
135 12: enp216s2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
136 link/ether 96:fa:4d:04:4d:87 brd ff:ff:ff:ff:ff:ff
137 13: enp216s2f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
138 link/ether a6:67:49:bb:bd:5e brd ff:ff:ff:ff:ff:ff
142 6.1 start matlab and run gen_test.m
143 copy ant_*.bin to /xran/app
145 6.2 build xran sample application
146 export XRAN_DIR=xRAN folder
147 export RTE_SDK=dpdk folder
148 [xRAN root folder]$ ./build.sh
150 6.3 update Eth port used for XRAN
151 in ./app/run_lls-cu.sh
152 ports have to match VF function from step 1.11 (0000:d8:02.0 - U-plane 0000:d8:02.1 C-plane)
154 6.4 Run dpdk.sh to assign port to PMD
156 [xran root folder]# ./app/dpdk.sh
158 Network devices using DPDK-compatible driver
159 ============================================
160 0000:d8:02.0 'XL710/X710 Virtual Function 154c' drv=igb_uio unused=i40evf
161 0000:d8:02.1 'XL710/X710 Virtual Function 154c' drv=igb_uio unused=i40evf
164 6.5 Run XRAN lls-CU sample app
165 setup RU mac address in config_file_lls_cu.dat
166 [xran root folder]# ./app/run_lls-cu.sh