Describes DPDK support on NFVIS for increased network throughput and high-performance user-space network I/O.
DPDK support on NFVIS is a network performance feature that
-
increases network throughput by allowing applications to pull data directly from the Network Interface Card (NIC) without involving the kernel
-
delivers high-performance user-space network I/O by allowing network traffic to bypass NFVIS kernel and directly reach deployed VNFs and service chains, and
-
reserves additional cores and memory to enhance system performance.
DPDK support features
DPDK support on NFVIS includes:
-
Upgrading existing bridges to enable DPDK
-
Upgrading virtual NICs attached to VNFs to enable DPDK
-
Upgrading physical NICs to enable DPDK
Once DPDK support is successfully enabled, you can disable DPDK only by resetting NFVIS to factory settings.
DPDK restrictions include:
-
You must enable DPDK using the system settings DPDK enable command before you commit any other configurations.
-
DPDK is not supported on wan-br or wan2-br on any NFVIS platform.
-
SR-IOV interfaces and DPDK support: To enable DPDK, every device driver must be supported by DPDK. NFVIS does not support SR-IOV interface upgrade to enable DPDK because SR-IOV device drivers are not supported by DPDK. If any SR-IOV network has been configured on an interface, that interface will not support DPDK. Also if an SR-IOV interface is attached to a bridge, the bridge does not support DPDK and if a bridge supports DPDK, no SR-IOV interface can be attached to it.
-
VNF downtime: When DPDK support is enabled on a system, NFVIS upgrades virtual NICs attached to the VNFs. The VNFs are powered down causing a downtime for the VNF service for a short duration of time. After the upgrade is complete, all VNFs are powered up again.
DPDK support system requirements include:
DPDK support optimizes the performance by utilizing additional resources such as CPU and memory. If NFVIS is not able to acquire additional processing or memory, DPDK support can not be enabled.
Enabling DPDK support requires an additional core from each socket available in the system. Depending upon the number of sockets present in the system, NFVIS acquires an additional core for DPDK support.
DPDK operational status values are:
| DPDK Status |
Description |
|---|---|
| disabled |
The system is not using DPDK. |
| enabled |
DPDK support is successfully enabled on the system. Additional CPU and memory resources are reserved for DPDK. |
| enabling |
The system is in the process of enabling DPDK. |
| error |
The system is unable to acquire the required resources to support DPDK. All of the resources that were acquired by DPDK are released again. |
Configuring DPDK support takes up to a minute and network changes can be observed during the process. NFVIS provides an operational status for DPDK support which indicates if DPDK support is enabled or not.
If DPDK status is in error state, DPDK support can be manually disabled. Before enabling DPDK again, reboot the system to defragment the system memory and increase the chance of resource allocation for a successful configuration.
After enabling DPDK, physical NICs configured with SR-IOV will not be able to interact with DPDK bridges. To add a physical NIC to a DPDK bridge, all SR-IOV networks created on the interface should be removed first. NFVIS will not allow adding an SR-IOV configured interface to a DPDK bridge. For more information, see dynamic-sr-iov.html#id_115037.
DPDK configuration examples
To enable DPDK support:
config terminal
system setting dpdk enable
commit
To display the operational status that indicates DPDK support, use show system native settings command.
nfvis# show system settings-native dpdk-status
system settings-native dpdk-status enabled
If NFVIS is unable to acquire sufficient resources, it shows an error state, and DPDK configuration can be removed. After removing the configuration, DPDK can be enabled again.
nfvis# show system settings-native dpdk-status
system settings-native dpdk-status error
config terminal
no system settings dpdk
commit
nfvis# show system setting-native dpdk-status
system settings-native dpdk-status disabled