---
# System prepended metadata

title: NFVI Fowarding Platform
tags: [NFVI, ' Forwarding Platform', ' Intel']

---

---
tags: NFVI, Intel, Forwarding Platform
---
# NFVI Fowarding Platform
###### tags: NFVI 

## HW equipment

Model: 	SCB-1932
OS: 	Red Hat Enterprise Linux 8.4 (Ootpa)
Kernel: Linux 4.18.0-305.el8.x86_64
CPU: 	Intel(R) Xeon(R) Gold 5318S CPU @ 2.10GHz * 2
RAM: 	32G (DDR4) * 16 = 512G
SSD:    Intel SSD 480 * 2
BIOS: 	C1932A001T07

## 1. Hardware Requirements:
![](https://i.imgur.com/74b5i6K.png)

## 2. Software Requirements:
![](https://i.imgur.com/cbW716e.png)
![](https://i.imgur.com/OMFZj7A.png)

## 3. Platform BIOS Settings:

![](https://i.imgur.com/Zy2eVIG.png)
![](https://i.imgur.com/JutaXo7.png)
![](https://i.imgur.com/U7WL6xe.png)


## 4. Intel Select Solution Platform Technology Requirements:

![](https://i.imgur.com/FZGSCe1.png)
![](https://i.imgur.com/Hk64xA2.png)

## 5: Redhat installtion:
## 6: Subscribe the system with user name and password to use redhat.
```javascript=
# subscription-manager register --username <username> --password <password> --auto-attach
```

## 7: Linux Kernel verification
```javascript=
# uname -r
4.18.0-193.28.1.el8_2.x86_64
```
## 7: Test Menu
![](https://i.imgur.com/21It79X.png)

## Commands:
```javascript=
# sudo yum groupinstall "Development Tools"
```
## Install Python3.7 
https://tecadmin.net/install-python-3-7-on-centos/

## Install the latest version of make (4.3)
https://blog.csdn.net/qq_41054313/article/details/119455667?spm=1001.2014.3001.5502

## Install the glibc we use to install 2.34 version

https://stackoverflow.com/questions/32316707/rhel-6-how-to-install-glibc-2-14-or-glibc-2-15

# Test list
## 1: vBNG Test
### Install vBNG Dependencies
Package Downloading:
https://www.intel.com/content/www/us/en/download/19306/intel-ethernet-controller-x710-xxv710-xl710-adapters-dynamic-device-personalization-pppoe-package.html
packages Installtion
 
```javascript=
# subscription-manager release --set=8.2
# subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhel-8-for-x86_64-baseos-rpms
# yum groupinstall “Development Tools”
# yum install -y kernel-tools numactl numactl-devel libvirt-devel socat python38 kernel-devel-$(uname -r)
# pip3 install fabric -U --force-reinstall
# pip3 install paramiko -U --force-reinstall
# pip3 install cryptography -U --force-reinstall
# yum install elfutils-libelf-devel
```
### Download the ICE driver from intel website and Install
```javascript=
# tar -xvf ice-1.3.2.tar.gz
# cd ice-1.3.2/src/
# make
# make install
# modprobe -r ice; modprobe ice
```
### Download the Comms DDP package that enables the NIC to parse extra header fields such as PPPoE and GTPu.

```javascript=
# unzip 634414-ice_comms-1.3.24.0.zip -d ice-ddp-comms
# cd ice-ddp-comms/
# cp ice_comms-1.3.24.0.pkg /lib/firmware/updates/intel/ice/ddp/
# cp ice.pkg /lib/firmware/updates/intel/ice/ddp/
# modprobe -r ice
# modprobe ice
```
To confirm that the DDP package is successfully loaded:
```javascript=
# dmesg | grep -ir ddp
```
Configure the Linux Kernel settings.
The following should be configured in Linux Kernel Grub settings:
a. Set huge-page memory size and number of pages for DPDK app,Enable SR-IOV, Disable hardware control of P-states, Isolate vBNG dataplane cores from the Linux kernel task scheduler:
```javascript=
(default_hugepagesz=2M hugepagesz=2M hugepages=30024)
b. Enable SR-IOV (intel_iommu=on iommu=pt).
c. Disable hardware control of P-states (intel_pstate=disable)
d. Isolate vBNG dataplane cores from the Linux kernel task scheduler (for example: isolcpus=1-19,21-39,41-59,61-79).
```
### kernel Configuration (Grub Settings)
```javascript=
# sudo nano /etc/default/grub
```
update this line with:
```javascript=

"GRUB_CMDLINE_LINUX="nofb splash=quiet console=tty0 ... default_hugepagesz=2M 
hugepagesz=2M hugepages=30024 intel_pstate=disable intel_iommu=on iommu=pt isolcpus=1
-19,21-39,41-59,61-79"
```
update grub
```javascript=
grub2-mkconfig -o /boot/grub2/grub.cfg
```
![](https://i.imgur.com/nJOQ52v.png)

### vBNG Dataplane Application Environment Set-up
```javascript=
Waiting from Intel
```
## 2. HWSW Test
![](https://i.imgur.com/LBkNIXy.png)

## 3. “Spectre” or “Meltdown” Test to check system vulnerabilities.
```javascript=
# git clone https://github.com/speed47/spectre-meltdown-checker
# cd spectre-meltdown-checker
# ./spectre-meltdown-checker.sh
```
![](https://i.imgur.com/CZZJnWt.png)
![](https://i.imgur.com/vKGVYxP.png)
![](https://i.imgur.com/thUFqTf.png)

## 4. Cyclictest
https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start
https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests#compile-and-install
### Installtion
```javascript=
# sudo yum groupinstall 'Development Tools'
# sudo yum install numactl-devel
# git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
# cd rt-tests
# git checkout stable/v1.0
# make all
# make install
# make cyclictest
```
![](https://i.imgur.com/FRdnKwI.png)
![](https://i.imgur.com/dPGoNez.png)
![](https://i.imgur.com/9b8dofL.png)
![](https://i.imgur.com/Rc5svAo.png)
![](https://i.imgur.com/qcWV58b.png)
![](https://i.imgur.com/zrhLIXa.png)

### Testing cyclictest (The testing need to validate with intel)
```java=
# ./cyclictest --mlockall --smp --priority=80 --interval=200 --distance=0
```
![](https://i.imgur.com/rlnMmVP.png)

## 5: Memory Latency Checker (MLC)
Download MLC tool from
https://www.intel.com/content/www/us/en/developer/articles/tool/intelr-memory-latency-checker.html

-> Download -> Right click -> exract 
```javascript=
# cd mlc
# ./mlc
```
![](https://i.imgur.com/DDdpv5K.png)


## 6: Jitter

**Review Inst_Jitter column. This should range from 5k-100K.**

### Installtion
```javascript=
# git clone https://gerrit.fd.io/r/pma_tools
# cd pma_tools/jitter
# make
# ./jitter –c 2 –i 200

```
![](https://i.imgur.com/OCTTgI3.png)
### Jitter Test results
![](https://i.imgur.com/DuztL6d.png)

![](https://i.imgur.com/nE9qSKO.png)

![](https://i.imgur.com/2d7gt7V.png)

## 7: PMC Memory Test
![](https://i.imgur.com/kC7Egyk.png)


## 8: PMC Power Test

![](https://i.imgur.com/PCUWjl4.png)

## 9: Redhat.sh Test

## 10: rfc2544