:_mod-docs-content-type: ASSEMBLY
[id="using-dpdk-and-rdma"]
= Using DPDK and RDMA
include::_attributes/common-attributes.adoc[]
:context: using-dpdk-and-rdma

toc::[]

[role="_abstract"]
The containerized Data Plane Development Kit (DPDK) application is supported on {product-title}. You can use Single Root I/O Virtualization (SR-IOV) network hardware with the Data Plane Development Kit (DPDK) and with remote direct memory access (RDMA).

Before you perform any tasks in the following documentation, ensure that you xref:../../networking/networking_operators/sr-iov-operator/installing-sriov-operator.adoc#installing-sriov-operator[installed the SR-IOV Network Operator].

// Example use of a virtual function in a pod
include::modules/nw-sriov-example-vf-function-in-pod.adoc[leveloffset=+1]

// Using a virtual function in DPDK mode with an Intel NIC
include::modules/nw-sriov-dpdk-example-intel.adoc[leveloffset=+1]

// Using a virtual function in DPDK mode with a Mellanox NIC
include::modules/nw-sriov-dpdk-example-mellanox.adoc[leveloffset=+1]

// Using the TAP CNI to run a rootless DPDK workload with kernel access
include::modules/nw-running-dpdk-rootless-tap.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources

* xref:../../scalability_and_performance/cnf-tuning-low-latency-nodes-with-perf-profile.adoc#cnf-create-performance-profiles_cnf-tuning-low-latency-nodes-with-perf-profile[Creating a performance profile]

* xref:../../networking/hardware_networks/configuring-sriov-device.adoc#configuring-sriov-device[Configuring an SR-IOV network device]

include::modules/nw-sriov-concept-dpdk-line-rate.adoc[leveloffset=+1]

include::modules/nw-sriov-example-dpdk-line-rate.adoc[leveloffset=+1]

// DPDK library for use with container applications
include::modules/nw-sriov-app-netutil.adoc[leveloffset=+2]

include::modules/nw-sriov-network-operator.adoc[leveloffset=+2]

include::modules/nw-sriov-create-object.adoc[leveloffset=+2]

include::modules/nw-sriov-dpdk-base-workload.adoc[leveloffset=+2]

include::modules/nw-sriov-dpdk-running-testpmd.adoc[leveloffset=+2]

include::modules/nw-sriov-rdma-example-mellanox.adoc[leveloffset=+1]

// A test pod template for clusters that use OVS-DPDK on OpenStack
include::modules/nw-openstack-ovs-dpdk-testpmd-pod.adoc[leveloffset=+1]

[role="_additional-resources"]
[id="additional-resources_using-dpdk-and-rdma"]
== Additional resources

* link:https://catalog.redhat.com/en/hardware[Red Hat certified hardware (Red Hat Ecosystem Catalog)]

* link:https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/latest/html/managing_openshift_ai/managing-distributed-workloads_managing-rhoai#configuring-a-cluster-for-rdma_managing-rhoai[Configuring a cluster for RDMA in {rhoai-full}]

* xref:../../scalability_and_performance/cnf-tuning-low-latency-nodes-with-perf-profile.adoc#cnf-create-performance-profiles_cnf-tuning-low-latency-nodes-with-perf-profile[Creating a performance profile]

* xref:../../scalability_and_performance/cnf-tuning-low-latency-nodes-with-perf-profile.adoc#adjusting-nic-queues-with-the-performance-profile_cnf-tuning-low-latency-nodes-with-perf-profile[Adjusting the NIC queues with the performance profile]

* xref:../../scalability_and_performance/cnf-provisioning-low-latency-workloads.adoc#cnf-provisioning-low-latency-workloads[Provisioning real-time and low latency workloads]

* xref:../../networking/networking_operators/sr-iov-operator/installing-sriov-operator.adoc#installing-sriov-operator[Installing the SR-IOV Network Operator]

* xref:../../networking/hardware_networks/configuring-sriov-device.adoc#nw-sriov-networknodepolicy-object_configuring-sriov-device[Configuring an SR-IOV network device]
* xref:../../networking/multiple_networks/secondary_networks/configuring-ip-secondary-nwt.adoc#nw-multus-whereabouts_configuring-additional-network[Dynamic IP address assignment configuration with Whereabouts]
* xref:../../scalability_and_performance/cnf-provisioning-low-latency-workloads.adoc#disabling-interrupt-processing-for-individual-pods_cnf-provisioning-low-latency[Disabling interrupt processing for individual pods]

* xref:../../networking/hardware_networks/configuring-sriov-net-attach.adoc#configuring-sriov-net-attach[Configuring an SR-IOV Ethernet network attachment]
