// Module included in the following assemblies:
//
// * scalability_and_performance/telco_ran_du_ref_design_specs/telco-ran-du-rds.adoc

:_mod-docs-content-type: REFERENCE
[id="telco-ran-sr-iov-operator_{context}"]
= SR-IOV Operator

[role="_abstract"]
The SR-IOV Operator provisions and configures the SR-IOV CNI and device plugins.

New in this release::
* No reference design updates in this release

Description::
The SR-IOV Operator provisions and configures the SR-IOV CNI and device plugins.
Both `netdevice` (kernel VFs) and `vfio` (DPDK) devices are supported and applicable to the RAN DU use models.

Limits and requirements::
* Use devices that are supported for {product-title}.
For more information, see "Supported devices".
* SR-IOV and IOMMU enablement in host firmware settings: The SR-IOV Network Operator automatically enables IOMMU on the kernel command line.
* SR-IOV VFs do not receive link state updates from the PF.
If link down detection is required you must configure this at the protocol level.

Engineering considerations::
* SR-IOV interfaces with the `vfio` driver type are typically used to enable additional secondary networks for applications that require high throughput or low latency.
* Customer variation on the configuration and number of `SriovNetwork` and `SriovNetworkNodePolicy` custom resources (CRs) is expected.
* IOMMU kernel command line settings are applied with a `MachineConfig` CR at install time.
This ensures that the `SriovOperator` CR does not cause a reboot of the node when adding them.
* SR-IOV support for draining nodes in parallel is not applicable in a {sno} cluster.
* You must include the `SriovOperatorConfig` CR in your deployment; the CR is not created automatically.
This CR is included in the reference configuration policies which are applied during initial deployment.
* In scenarios where you pin or restrict workloads to specific nodes, the SR-IOV parallel node drain feature will not result in the rescheduling of pods.
In these scenarios, the SR-IOV Operator disables the parallel node drain functionality.
* You must pre-configure NICs which do not support firmware updates under secure boot or kernel lockdown with sufficient virtual functions (VFs) to support the number of VFs needed by the application workload.
For Mellanox NICs, you must disable the Mellanox vendor plugin in the SR-IOV Network Operator.
For more information, see "Configuring the SR-IOV Network Operator on Mellanox cards when Secure Boot is enabled".
* To change the MTU value of a virtual function after the pod has started, do not configure the MTU field in the `SriovNetworkNodePolicy` CR.
Instead, configure the Network Manager or use a custom `systemd` script to set the MTU of the physical function to an appropriate value.
For example:
+
[source,terminal]
----
# ip link set dev <physical_function> mtu 9000
----
