Front Haul Interface Library update to first seed code contribution
[o-du/phy.git] / fhi_lib / docs / installation-guide.rst
1 ..    Copyright (c) 2019 Intel
2 ..
3 ..  Licensed under the Apache License, Version 2.0 (the "License");
4 ..  you may not use this file except in compliance with the License.
5 ..  You may obtain a copy of the License at
6 ..
7 ..      http://www.apache.org/licenses/LICENSE-2.0
8 ..
9 ..  Unless required by applicable law or agreed to in writing, software
10 ..  distributed under the License is distributed on an "AS IS" BASIS,
11 ..  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 ..  See the License for the specific language governing permissions and
13 ..  limitations under the License.
14
15
16
17 Installation Guide
18 ==================
19
20 .. contents::
21    :depth: 3
22    :local:
23
24 Abstract
25 --------
26
27 This document describes how to install the Front Haul Interface Library, it's dependencies and required system resources.
28
29
30 Version history
31
32 +--------------------+--------------------+--------------------+--------------------+
33 | **Date**           | **Ver.**           | **Author**         | **Comment**        |
34 |                    |                    |                    |                    |
35 +--------------------+--------------------+--------------------+--------------------+
36 | 2019-11-01         | 1.1                |     Intel          | Rel A Seed Cont    |
37 |                    |                    |                    |                    |
38 +--------------------+--------------------+--------------------+--------------------+
39
40
41
42 Introduction
43 ------------
44
45 This document describes the Prerequirements and Installation Information for the Front Haul Interface Library.
46 The audience of this document is assumed to have good knowledge in RAN network and Linux system.
47
48 Preface
49 -------
50
51
52 Before starting the installation of the Front Haul Interface Library, please ensure that the following pre-requisites are met
53
54 System configuration
55 ~~~~~~~~~~~~~~~~~~~~
56
57 VFIO requires:
58  *  linux:
59                 IOMMU=ON
60  *  BIOS:
61                 Intel(R) Virtualization Technology Enabled
62                 Intel(R) VT for Directed I/O - Enabled
63                 ACS Control - Enabled
64                 Coherency Support - Disabled
65  *  Compiler
66
67     icc -v
68     icc version 19.0.3.206 (gcc version 4.8.5 compatibility)
69
70     Link to ICC (community free version):
71     https://software.intel.com/en-us/system-studio/choose-download#technical
72
73   * DPDK 18.08
74
75 Compile DPDK with
76 [root@5gnr-sc12-xran dpdk]# ./usertools/dpdk-setup.sh    // Where the root@5gnr-sc12-xran dpdk corresponds to the location in the server for the dpdk installation folder
77
78 select [16] x86_64-native-linuxapp-icc
79 select [19] Insert VFIO module
80 exit   [35] Exit Script
81
82  * Find PCIe device of Fortville port
83
84 lspci |grep Eth
85 19:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
86 19:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
87 41:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
88 41:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
89 d8:00.0 << Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) <<<< this one
90 d8:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
91
92  * Corresponding Eth device via
93
94 ifconfig -a
95
96 find port Eth with correct PCIe Bus address as per list above
97
98 ethtool -i enp218s0f0
99 driver: i40e
100 version: 2.4.10 << driver
101 firmware-version: 6.80 0x80003cfd 1.2007.0
102 expansion-rom-version:
103 bus-info: 0000:da:00.0 << this one
104 supports-statistics: yes
105 supports-test: yes
106 supports-eeprom-access: yes
107 supports-register-dump: yes
108 supports-priv-flags: yes
109
110 * 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-)
111
112 make sure firmare version is at least this version or higher
113
114 firmware-version: 6.01
115
116 * make sure that linux boot arguments are correct
117
118 cat /proc/cmdline
119 BOOT_IMAGE=/vmlinuz-3.10.0-rt56 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap intel_iommu=on iommu=pt 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-39 rcu_nocbs=1-39 kthread_cpus=0 irqaffinity=0 nohz_full=1-39
120 * enable SRIOV VF port for XRAN
121
122 echo 2 > /sys/class/net/enp216s0f0/device/sriov_numvfs
123
124 see https://doc.dpdk.org/guides/nics/intel_vf.html
125
126 * Check that Virtual Function was created
127
128 lspci |grep Eth
129 19:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
130 19:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
131 41:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
132 41:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 10GBASE-T (rev 04)
133 d8:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
134 d8:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02)
135 d8:02.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) <<<< this is XRAN port (u-plane)
136 d8:02.1 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) <<<< this is XRAN port (c-plane)
137
138 * Configure VFs
139 - set mac to 00:11:22:33:44:66
140 - set Vlan tag to 2 (U-plane) for VF0
141 - set Vlan tag to 1 (C-plane) for VF1
142
143 [root@5gnr-sc12-xran app]# ip link set enp216s0f0 vf 0 mac 00:11:22:33:44:66 vlan 2
144 [root@5gnr-sc12-xran app]# ip link set enp216s0f0 vf 1 mac 00:11:22:33:44:66 vlan 1
145 [root@5gnr-sc12-xran app]# ip link show
146 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
147     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
148 2: enp65s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
149     link/ether a4:bf:01:3e:6b:79 brd ff:ff:ff:ff:ff:ff
150 3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
151     link/ether a4:bf:01:3e:6b:7a brd ff:ff:ff:ff:ff:ff
152 4: enp25s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
153     link/ether 90:e2:ba:d3:b2:ec brd ff:ff:ff:ff:ff:ff
154 5: enp129s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
155     link/ether 3c:fd:fe:a8:e0:70 brd ff:ff:ff:ff:ff:ff
156 6: enp129s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
157     link/ether 3c:fd:fe:a8:e0:71 brd ff:ff:ff:ff:ff:ff
158 7: enp216s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
159     link/ether 3c:fd:fe:9e:93:68 brd ff:ff:ff:ff:ff:ff
160     vf 0 MAC 00:11:22:33:44:66, vlan 2, spoof checking on, link-state auto, trust off
161     vf 1 MAC 00:11:22:33:44:66, vlan 1, spoof checking on, link-state auto, trust off
162 8: enp25s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
163     link/ether 90:e2:ba:d3:b2:ed brd ff:ff:ff:ff:ff:ff
164 9: enp216s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
165     link/ether 3c:fd:fe:9e:93:69 brd ff:ff:ff:ff:ff:ff
166 12: enp216s2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
167     link/ether 96:fa:4d:04:4d:87 brd ff:ff:ff:ff:ff:ff
168 13: enp216s2f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
169     link/ether a6:67:49:bb:bd:5e brd ff:ff:ff:ff:ff:ff
170
171
172 Hardware Requirements
173 ---------------------
174
175 The following minimum hardware requirements must be met for installation of the FHI Library:
176 *       Wolfpass server according to recommended BOM for FlexRAN such as Intel® Xeon® Skylake Gold 6148 FC-LGA3647 2.4GHz 27.5MB 150W 20 cores (2 sockets) 
177 *       BIOS settings: 
178         Intel(R) Virtualization Technology Enabled
179         Intel(R) VT for Directed I/O - Enabled
180         ACS Control - Enabled
181         Coherency Support - Disabled
182 *   Front Haul networking cards:
183         Intel® Ethernet Converged Network Adapter XL710-QDA2
184         Intel® Ethernet Converged Network Adapter XXV710-DA2
185         Intel® FPGA Programmable Acceleration Card (Intel® FPGA PAC) N3000
186 *       Back (Mid) Haul networking card can be either 
187         Intel® Ethernet Connection X722 for 10GBASE-T  
188         Intel® 82599ES 10-Gigabit SFI/SFP+ Network Connection
189 *   Other networking cards capable of HW timestamping for PTP synchronization.
190 Note:   Both Back (mid) Haul and Front Haul NIC require support for PTP HW timestamping.
191
192 The recommended configuration for NICs is: 
193     ethtool -i enp216s0f0
194     driver: i40e
195     version: 2.8.43
196     firmware-version: 6.80 0x80003cfb 1.2007.0
197     expansion-rom-version:
198     bus-info: 0000:d8:00.0
199     supports-statistics: yes
200     supports-test: yes
201     supports-eeprom-access: yes
202     supports-register-dump: yes
203     supports-priv-flags: yes
204     [root@5gnr-sc12-xran testmac]# ethtool -T enp216s0f0
205     Time stamping parameters for enp216s0f0:
206     Capabilities:
207         hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)
208         software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)
209         hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)
210         software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)
211         software-system-clock (SOF_TIMESTAMPING_SOFTWARE)
212         hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)
213     PTP Hardware Clock: 2
214     Hardware Transmit Timestamp Modes:
215         off                   (HWTSTAMP_TX_OFF)
216         on                    (HWTSTAMP_TX_ON)
217     Hardware Receive Filter Modes:
218         none                  (HWTSTAMP_FILTER_NONE)
219         ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
220         ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
221         ptpv2-l4-event        (HWTSTAMP_FILTER_PTP_V2_L4_EVENT)
222         ptpv2-l4-sync         (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
223         ptpv2-l4-delay-req    (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
224         ptpv2-l2-event        (HWTSTAMP_FILTER_PTP_V2_L2_EVENT)
225         ptpv2-l2-sync         (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)
226         ptpv2-l2-delay-req    (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)
227         ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)
228         ptpv2-sync            (HWTSTAMP_FILTER_PTP_V2_SYNC)
229         ptpv2-delay-req       (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)
230 PTP Grand Master is required to be available in the network to provide synchronization of both O-DU and RU to GPS time.
231
232 Software Installation and Deployment
233 ------------------------------------
234
235 This section describes the installation of the Front Haul Interface Library on the reference hardware and the validation.
236
237 * start matlab and run gen_test.m with correct Numerology, Bandwidth and number of slots
238   copy ant_*.bin  to /xran/app/usecase/mu{X}_{Y}MHz
239         where X is numerology: 0,1,3
240               Y is 5,10,20,100 MHz bandwidth
241
242 * compile xran sample application (Please make sure that the export match your install directories for SDK, ORAN_FH_lib (i.e. XRAN_DIR), google test
243     export RTE_SDK=/opt/dpdk-18.08
244     export RTE_TARGET=x86_64-native-linuxapp-icc
245     export XRAN_DIR= /home/npg_wireless-flexran_xran/
246     export export GTEST_ROOT=/opt/gtest/gtest-1.7.0 
247
248 * ./build.sh
249     Number of commandline arguments: 0
250     Building xRAN Library
251   LIBXRANSO=0
252   CC ../lib/ethernet/ethdi.o
253   CC ../lib/ethernet/ethernet.o
254   CC ../lib/src/xran_up_api.o
255   CC ../lib/src/xran_sync_api.o
256   CC ../lib/src/xran_timer.o
257   CC ../lib/src/xran_cp_api.o
258   CC ../lib/src/xran_transport.o
259   CC ../lib/src/xran_common.o
260   CC ../lib/src/xran_ul_tables.o
261   CC ../lib/src/xran_frame_struct.o
262   CC ../lib/src/xran_compression.o
263   CC ../lib/src/xran_app_frag.o
264   CC ../lib/src/xran_main.o
265   AR libxran.a
266   INSTALL-LIB libxran.a
267   Building xRAN Test Application
268   CC ../app/src/common.o
269   CC ../app/src/sample-app.o
270 remark #11074: Inlining inhibited by limit max-size
271 remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
272   CC ../app/src/config.o
273   LD sample-app
274   INSTALL-APP sample-app
275   INSTALL-MAP sample-app.map
276
277
278 * update Eth port used for XRAN
279
280
281 cat ./run_o_du.sh
282 #! /bin/bash
283
284 ulimit -c unlimited
285 echo 1 > /proc/sys/kernel/core_uses_pid
286
287 grep Huge /proc/meminfo
288 huge_folder="/mnt/huge_bbu"
289 [ -d "$huge_folder" ] || mkdir -p $huge_folder
290 if ! mount | grep $huge_folder; then
291  mount none $huge_folder -t hugetlbfs -o rw,mode=0777
292 fi
293
294 #40G
295 ./build/sample-app ./usecase/mu3_100mhz/config_file_o_du.dat  0000:da:02.0 0000:da:02.1
296                                                               ^^^^^ ports have to match VF function from step 1.11 (0000:da:02.0 - U-plane  0000:da:02.1 C-plane)
297
298 umount $huge_folder
299 rmdir $huge_folder
300
301
302 cat ./dpdk.sh
303 ...
304 $RTE_SDK/usertools/dpdk-devbind.py --status
305 if [ ${VM_DETECT} == 'HOST' ]; then
306     #HOST
307
308     $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio-pci 0000:da:02.0 <<< port has to match VF function from step 1.11
309     $RTE_SDK/usertools/dpdk-devbind.py --bind=vfio-pci 0000:da:02.1 <<< port has to match VF function from step 1.11
310
311         1.
312 Run
313
314 * Run dpdk.sh to assign port to PMD
315
316 [root@5gnr-sc12-xran app]# ./dpdk.sh
317
318 Network devices using DPDK-compatible driver
319 ============================================
320 0000:da:02.0 'XL710/X710 Virtual Function 154c' drv=vfio-pci unused=i40evf,igb_uio
321 0000:da:02.1 'XL710/X710 Virtual Function 154c' drv=vfio-pci unused=i40evf,igb_uio
322
323
324 * Run XRAN sample app
325 setup RU mac address in config_file_o_du.dat for corespondig usecase
326
327 e.g.
328 ./build/sample-app ./usecase/mu3_100mhz/config_file_o_du.dat  0000:da:02.0 0000:da:02.1
329
330 ruMac=00:11:22:33:44:55  #RU VF for RU
331
332 execute O-DU sample app
333
334 [root@sc12-xran-ru-1 app]# ./run_o_du.sh
335 HugePages_Total:      20
336 HugePages_Free:       11
337 HugePages_Rsvd:        0
338 HugePages_Surp:        0
339 Hugepagesize:    1048576 kB
340 Machine is synchronized using PTP!
341 mu_number: 3
342 nDLAbsFrePointA: 27968160
343 nULAbsFrePointA: 27968160
344 nDLBandwidth: 100
345 nULBandwidth: 100
346 nULFftSize: 1024
347 nULFftSize: 1024
348 nFrameDuplexType: 1
349 nTddPeriod: 4
350 sSlotConfig0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0
351 sSlotConfig1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0
352 sSlotConfig2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0
353 sSlotConfig3: 0 2 2 1 1 1 1 1 1 1 1 1 1 1
354 mtu 9600
355 lls-CU MAC address: 00:11:22:33:44:66
356 RU MAC address: 00:11:22:33:44:55
357 numSlots: 40
358 antC0: ./usecase/mu3_100mhz/ant_0.bin
359 antC1: ./usecase/mu3_100mhz/ant_1.bin
360 antC2: ./usecase/mu3_100mhz/ant_2.bin
361 antC3: ./usecase/mu3_100mhz/ant_3.bin
362 antC4: ./usecase/mu3_100mhz/ant_4.bin
363 antC5: ./usecase/mu3_100mhz/ant_5.bin
364 antC6: ./usecase/mu3_100mhz/ant_6.bin
365 antC7: ./usecase/mu3_100mhz/ant_7.bin
366 antC8: ./usecase/mu3_100mhz/ant_8.bin
367 antC9: ./usecase/mu3_100mhz/ant_9.bin
368 antC10: ./usecase/mu3_100mhz/ant_10.bin
369 antC11: ./usecase/mu3_100mhz/ant_11.bin
370 antC12: ./usecase/mu3_100mhz/ant_12.bin
371 antC13: ./usecase/mu3_100mhz/ant_13.bin
372 antC14: ./usecase/mu3_100mhz/ant_14.bin
373 antC15: ./usecase/mu3_100mhz/ant_15.bin
374 Prach enable: 0
375 Prach config index: 81
376 debugStop: 1
377 CPenable: 1
378 cp_vlan_tag: 1
379 up_vlan_tag: 2
380 Tadv_cp_dl: 25
381 T2a_min_cp_dl: 50
382 T2a_max_cp_dl: 140
383 T2a_min_cp_ul: 50
384 T2a_max_cp_ul: 140
385 T2a_min_up: 25
386 T2a_max_up: 140
387 Ta3_min: 20
388 Ta3_max: 32
389 T1a_min_cp_dl: 70
390 T1a_max_cp_dl: 100
391 T1a_min_cp_ul: 60
392 T1a_max_cp_ul: 70
393 T1a_min_up: 35
394 T1a_max_up: 50
395 Ta4_min: 0
396 Ta4_max: 45
397 115 lines of config file has been read.
398 numCCPorts 1 num_eAxc4
399 set O-DU
400 IQ files size is 40 slots
401 app_xran_get_num_rbs: nNumerology[3] nBandwidth[100] nAbsFrePointA[27968160] numRBs[66]
402 app_xran_get_num_rbs: nNumerology[3] nBandwidth[100] nAbsFrePointA[27968160] numRBs[66]
403 Loading file ./usecase/mu3_100mhz/ant_0.bin to  DL IFFT IN IQ Samples in binary format: Reading IQ samples from file: File Size: 1774080 [Buffer Size: 1774080]
404 from addr (0x7f62ad088010) size (1774080) bytes num (1774080)
405 Loading file ./usecase/mu3_100mhz/ant_1.bin to  DL IFFT IN IQ Samples in binary format: Reading IQ samples from file: File Size: 1774080 [Buffer Size: 1774080]
406 from addr (0x7f62aced6010) size (1774080) bytes num (1774080)
407 Loading file ./usecase/mu3_100mhz/ant_2.bin to  DL IFFT IN IQ Samples in binary format: Reading IQ samples from file: File Size: 1774080 [Buffer Size: 1774080]
408 from addr (0x7f62acd24010) size (1774080) bytes num (1774080)
409 Loading file ./usecase/mu3_100mhz/ant_3.bin to  DL IFFT IN IQ Samples in binary format: Reading IQ samples from file: File Size: 1774080 [Buffer Size: 1774080]
410 from addr (0x7f62acb72010) size (1774080) bytes num (1774080)
411 Storing DL IFFT IN IQ Samples in human readable format to file ./logs/o-du-play_ant0.txt: from addr (0x7f62ad088010) size (1774080) IQ num (443520)
412 Storing DL IFFT IN IQ Samples in binary format to file ./logs/o-du-play_ant0.bin: from addr (0x7f62ad088010) size (887040) bytes num (887040)
413 Storing DL IFFT IN IQ Samples in human readable format to file ./logs/o-du-play_ant1.txt: from addr (0x7f62aced6010) size (1774080) IQ num (443520)
414 Storing DL IFFT IN IQ Samples in binary format to file ./logs/o-du-play_ant1.bin: from addr (0x7f62aced6010) size (887040) bytes num (887040)
415 Storing DL IFFT IN IQ Samples in human readable format to file ./logs/o-du-play_ant2.txt: from addr (0x7f62acd24010) size (1774080) IQ num (443520)
416 Storing DL IFFT IN IQ Samples in binary format to file ./logs/o-du-play_ant2.bin: from addr (0x7f62acd24010) size (887040) bytes num (887040)
417 Storing DL IFFT IN IQ Samples in human readable format to file ./logs/o-du-play_ant3.txt: from addr (0x7f62acb72010) size (1774080) IQ num (443520)
418 Storing DL IFFT IN IQ Samples in binary format to file ./logs/o-du-play_ant3.bin: from addr (0x7f62acb72010) size (887040) bytes num (887040)
419 TX: Convert S16 I and S16 Q to network byte order for XRAN Ant: [0]
420 TX: Convert S16 I and S16 Q to network byte order for XRAN Ant: [1]
421 TX: Convert S16 I and S16 Q to network byte order for XRAN Ant: [2]
422 TX: Convert S16 I and S16 Q to network byte order for XRAN Ant: [3]
423 System clock (rdtsc) resolution 1596250371 [Hz]
424 Ticks per us 1596
425  xran_init: MTU 9600
426 xran_ethdi_init_dpdk_io: Calling rte_eal_init:wls -c ffffffff -m5120 --proc-type=auto --file-prefix wls -w 0000:00:00.0
427 EAL: Detected 40 lcore(s)
428 EAL: Detected 2 NUMA nodes
429 EAL: Auto-detected process type: PRIMARY
430 EAL: Multi-process socket /var/run/dpdk/wls/mp_socket
431 EAL: No free hugepages reported in hugepages-2048kB
432 EAL: Probing VFIO support...
433 EAL: VFIO support initialized
434 EAL: PCI device 0000:da:02.0 on NUMA socket 1
435 EAL:   probe driver: 8086:154c net_i40e_vf
436 EAL:   using IOMMU type 1 (Type 1)
437 initializing port 0 for TX, drv=net_i40e_vf
438 Port 0 MAC: 00 11 22 33 44 66
439
440 Checking link status ... done
441 Port 0 Link Up - speed 40000 Mbps - full-duplex
442 EAL: PCI device 0000:da:02.1 on NUMA socket 1
443 EAL:   probe driver: 8086:154c net_i40e_vf
444 initializing port 1 for TX, drv=net_i40e_vf
445 Port 1 MAC: 00 11 22 33 44 66
446
447 Checking link status ... done
448 Port 1 Link Up - speed 40000 Mbps - full-duplex
449 Set debug stop 1
450 FFT Order 10
451 app_xran_get_num_rbs: nNumerology[3] nBandwidth[100] nAbsFrePointA[27968160] numRBs[66]
452 app_xran_get_num_rbs: nNumerology[3] nBandwidth[100] nAbsFrePointA[27968160] numRBs[66]
453 app_xran_cal_nrarfcn: nCenterFreq[28015680] nDeltaFglobal[60] nFoffs[24250080] nNoffs[2016667] nNRARFCN[2079427]
454 DL center freq 28015680 DL NR-ARFCN  2079427
455 app_xran_cal_nrarfcn: nCenterFreq[28015680] nDeltaFglobal[60] nFoffs[24250080] nNoffs[2016667] nNRARFCN[2079427]
456 UL center freq 28015680 UL NR-ARFCN  2079427
457 XRAN front haul xran_mm_init
458 xran_sector_get_instances [0]: CC 0 handle 0xd013380
459 Handle: 0x5a07cb8 Instance: 0xd013380
460 init_xran [0]: CC 0 handle 0xd013380
461 Sucess xran_mm_init
462 nSectorNum 1
463 nSectorIndex[0] = 0
464 [ handle 0xd013380 0 0 ] [nPoolIndex 0] nNumberOfBuffers 4480 nBufferSize 3328
465 CC:[ handle 0xd013380 ru 0 cc_idx 0 ] [nPoolIndex 0] mb pool 0x24a7ad440
466 nSectorIndex[0] = 0
467 [ handle 0xd013380 0 0 ] [nPoolIndex 1] nNumberOfBuffers 4480 nBufferSize 2216
468 CC:[ handle 0xd013380 ru 0 cc_idx 0 ] [nPoolIndex 1] mb pool 0x24956d100
469 [ handle 0xd013380 0 0 ] [nPoolIndex 2] nNumberOfBuffers 4480 nBufferSize 3328
470 CC:[ handle 0xd013380 ru 0 oolIndex 2] mb pool 0x248818dc0
471 [ handle 0xd013380 0 0 ] [nPoolIndex 3] nNumberOfBuffers 4480 nBufferSize 2216
472 CC:[ handle 0xd013380 ru 0 cc_idx 0 ] [nPoolIndex 3] mb pool 0x2475d8a80
473 [ handle 0xd013380 0 0 ] [nPoolIndex 4] nNumberOfBuffers 4480 nBufferSize 8192
474 CC:[ handle 0xd013380 ru 0 cc_idx 0 ] [nPoolIndex 4] mb pool 0x246884740
475 @@@ NB cell 0 DL NR-ARFCN  0,DL phase comp flag 0 UL NR-ARFCN  0,UL phase comp flag 0
476 init_xran_iq_content
477 xRAN open PRACH config: Numerology 3 ConfIdx 81, preambleFmrt 6 startsymb 7, numSymbol 6, occassionsInPrachSlot 1
478 PRACH: x 1 y[0] 0, y[1] 0 prach slot: 3.. 5 .... 7 .... 9 .... 11 .... 13 ..
479
480 PRACH start symbol 7 lastsymbol 12
481 xran_cp_init_sectiondb:Allocation Size for Section DB : 128 (1x8x16)
482 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
483 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
484 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
485 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
486 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
487 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
488 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
489 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
490 xran_cp_init_sectiondb:Allocation Size for Section DB : 128 (1x8x16)
491 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
492 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
493 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
494 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
495 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
496 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
497 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
498 xran_cp_init_sectiondb:Allocation Size for list : 1848 (28x66)
499 xran_open: interval_us=125
500 nSlotNum[0] : numDlSym[14] numGuardSym[0] numUlSym[0] XRAN_SLOT_TYPE_DL
501             numDlSlots[1] numUlSlots[0] numSpSlots[0] numSpDlSlots[0] numSpUlSlots[0]
502 nSlotNum[1] : numDlSym[14] numGuardSym[0] numUlSym[0] XRAN_SLOT_TYPE_DL
503             numDlSlots[2] numUlSlots[0] numSpSlots[0] numSpDlSlots[0] numSpUlSlots[0]
504 nSlotNum[2] : numDlSym[14] numGuardSym[0] numUlSym[0] XRAN_SLOT_TYPE_DL
505             numDlSlots[3] numUlSlots[0] numSpSlots[0] numSpDlSlots[0] numSpUlSlots[0]
506 nSlotNum[3] : numDlSym[1] numGuardSym[2] numUlSym[11] XRAN_SLOT_TYPE_SP
507             numDlSlots[3] numUlSlots[0] numSpSlots[1] numSpDlSlots[1] numSpUlSlots[1]
508 xran_fs_set_slot_type: nPhyInstanceId[0] nFrameDuplexType[1], nTddPeriod[4]
509 DLRate[1.000000] ULRate[0.250000]
510 SlotPattern:
511 Slot:   0    1    2    3
512     0   DL   DL   DL   SP
513
514 xran_timing_source_thread [CPU  7] [PID: 292331]
515 MLogOpen: filename(mlog-o-du.bin) mlogSubframes (0), mlogCores(32), mlogSize(0) mlog_mask (-1)
516     mlogSubframes (256), mlogCores(32), mlogSize(7168)
517     localMLogTimerInit
518 lls-CU: thread_run start time: 06/10/19 21:09:37.000000028 UTC [125]
519 Start C-plane DL 25 us after TTI  [trigger on sym 3]
520 Start C-plane UL 55 us after TTI  [trigger on sym 7]
521 Start U-plane DL 50 us before OTA [offset  in sym -6]
522 Start U-plane UL 45 us OTA        [offset  in sym 6]
523 C-plane to U-plane delay 25 us after TTI
524 Start Sym timer 8928 ns
525 interval_us 125
526         System clock (CLOCK_REALTIME)  resolution 1000037471 [Hz]
527         Ticks per us 1000
528     MLog Storage: 0x7f6298487100 -> 0x7f629bc88d20 [ 58727456 bytes ]
529     localMLogFreqReg: 1000. Storing: 1000
530     Mlog Open successful
531
532 ----------------------------------------
533 MLog Info: virt=0x00007f6298487100 size=58727456
534 ----------------------------------------
535 Start XRAN traffic
536 +---------------------------------------+
537 | Press 1 to start 5G NR XRAN traffic   |
538 | Press 2 reserved for future use       |
539 | Press 3 to quit                       |
540 +---------------------------------------+
541 rx_counter 0 tx_counter 1376072
542 rx_counter 0 tx_counter 1720112
543 rx_counter 0 tx_counter 2064161
544 rx_counter 0 tx_counter 2408212
545 rx_counter 0 tx_counter 2752232
546
547 type 3 to stop
548 3
549 rx_counter 0 tx_counter 3096264
550 Stop XRAN traffic
551 get_xran_iq_content
552 Closing timing source thread...
553 Closing l1 app... Ending all threads...
554 MLogPrint: ext_filename((null).bin)
555     Opening MLog File: mlog-o-du-c0.bin
556     MLog file mlog-o-du-c0.bin closed
557     Mlog Print successful
558
559 Failed at  xran_mm_destroy, status -2
560 Dump IQs...
561 RX: Convert S16 I and S16 Q to cpu byte order from XRAN Ant: [0]
562 RX: Convert S16 I and S16 Q to cpu byte order from XRAN Ant: [1]
563 RX: Convert S16 I and S16 Q to cpu byte order from XRAN Ant: [2]
564 RX: Convert S16 I and S16 Q to cpu byte order from XRAN Ant: [3]
565 Storing UL FFT OUT IQ Samples in human readable format to file ./logs/o-du-rx_log_ant0.txt: from addr (0x7f62ac9c0010) size (1774080) IQ num (443520)
566 Storing UL FFT OUT IQ Samples in binary format to file ./logs/o-du-rx_log_ant0.bin: from addr (0x7f62ac9c0010) size (887040) bytes num (887040)
567 Storing UL FFT OUT IQ Samples in human readable format to file ./logs/o-du-rx_log_ant1.txt: from addr (0x7f62ac80e010) size (1774080) IQ num (443520)
568 Storing UL FFT OUT IQ Samples in binary format to file ./logs/o-du-rx_log_ant1.bin: from addr (0x7f62ac80e010) size (887040) bytes num (887040)
569 Storing UL FFT OUT IQ Samples in human readable format to file ./logs/o-du-rx_log_ant2.txt: from addr (0x7f62ac65c010) size (1774080) IQ num (443520)
570 Storing UL FFT OUT IQ Samples in binary format to file ./logs/o-du-rx_log_ant2.bin: from addr (0x7f62ac65c010) size (887040) bytes num (887040)
571 Storing UL FFT OUT IQ Samples in human readable format to file ./logs/o-du-rx_log_ant3.txt: from addr (0x7f62ac4aa010) size (1774080) IQ num (443520)
572 Storing UL FFT OUT IQ Samples in binary format to file ./logs/o-du-rx_log_ant3.bin: from addr (0x7f62ac4aa010) size (887040) bytes num (887040)
573
574
575 References
576 ----------
577 * Front Haul Library Readme file
578
579
580
581