---
name: openshift-satellite-sriov
title: Setting up Single Root I/O Virtualization (SR-IOV) in IBM Cloud Satellite clusters
description: Single Root I/O Virtualization (SR-IOV) allows you to share a single, supported network device with multiple pods in your Satellite cluster. You can enable SR-IOV in your cluster by installing and configuring the SR-IOV network operator. For more information about SR-IOV, see About Single Root I/O Virtualization (SR-IOV) hardware networks.
last-updated: 2026-04-10
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/openshift?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Setting up Single Root I/O Virtualization (SR-IOV) in IBM Cloud Satellite clusters
{: #satellite-sriov}

[Satellite]{: tag-satellite}

Single Root I/O Virtualization (SR-IOV) allows you to share a single, supported network device with multiple pods in your Satellite cluster. You can enable SR-IOV in your cluster by installing and configuring the SR-IOV network operator. For more information about SR-IOV, see [About Single Root I/O Virtualization (SR-IOV) hardware networks](https://docs.redhat.com/en/documentation/openshift_container_platform/4.6/html/networking/hardware-networks#about-sriov){: external}.
{: shortdesc}

Supported network interface controllers
:   The SR-IOV Network Operator can be used with supported network interface controllers (NICs) only. For more information, see [Supported NICs](https://docs.redhat.com/en/documentation/openshift_container_platform/4.6/html/networking/hardware-networks#installing-sriov-operator).

## Prerequisites for using SR-IOV
{: #sriov-prereqs}

1. [Create a Satellite location](https://cloud.ibm.com/docs/satellite?topic=satellite-locations&format=markdown).
1. [Set up your location control plane](https://cloud.ibm.com/docs/satellite?topic=satellite-setup-control-plane&format=markdown).
1. [Attach more hosts to your location](https://cloud.ibm.com/docs/satellite?topic=satellite-attach-hosts&format=markdown) to use as worker nodes in your cluster. The hosts that you want to use as worker nodes must have a [supported NIC](https://docs.redhat.com/en/documentation/openshift_container_platform/4.6/html/networking/hardware-networks#installing-sriov-operator){: external}.

## Installing the SR-IOV network operator
{: #sriov-install-operator}

[Access your Red Hat OpenShift cluster](https://cloud.ibm.com/docs/openshift?topic=openshift-access_cluster&format=markdown).

1. Follow the steps to [install the operator in your cluster](https://docs.redhat.com/en/documentation/openshift_container_platform/4.9/html/networking/hardware-networks#installing-sr-iov-operator_installing-sriov-operator){: external}. Make sure to set the **Update Approval** policy to **Manual**.

1. Get the details of the `ClusterServiceVersion` in the `openshift-sriov-network-operator` namespace.
    ```sh
    oc get ClusterServiceVersion -n openshift-sriov-network-operator 
    ```
    {: pre}

1. Run the following command to edit the `ClusterServiceVersion` in the `openshift-sriov-network-operator` namespace.

   ```sh
   oc edit ClusterServiceVersion -n openshift-sriov-network-operator NAME
   ```
   {: pre}
   
1. In the container specification section, add an environment variable with the name `CLUSTER_TYPE` and value `kubernetes`. 

   ```yaml
    - name: RESOURCE_PREFIX
      value: openshift.io
    - name: ENABLE_ADMISSION_CONTROLLER
      value: "true"
    - name: CLUSTER_TYPE
      value: kubernetes
   ```
   {: codeblock}
   
1. Save and close the deployment.

1. Run the following command to edit the `sriov-network-config-daemon` DaemonSet in the `openshift-sriov-network-operator` namespace.

   ```sh
   oc edit daemonsets.apps -n openshift-sriov-network-operator sriov-network-config-daemon
   ```
   {: pre}

1. Change the value of `CLUSTER_TYPE` from `openshift` to `kubernetes`.

   ```yaml
     - name: NAMESPACE
       valueFrom:
         fieldRef:
           apiVersion: v1
           fieldPath: metadata.namespace
     - name: CLUSTER_TYPE
       value: kubernetes
   ```
   {: codeblock}
   
1. Save and close the DaemonSet.

1. You can now begin [configuring your SRIOV-enabled network device](https://docs.redhat.com/en/documentation/openshift_container_platform/4.6/html/networking/hardware-networks#configuring-sriov-device){: external}.

The default Calico network interface for pod-to-pod network is always present in all pod networking stacks, including pods that have an SR-IOV network attachment. This means, that in such pods, the Calico network interface is also present next to SR-IOV virtual interfaces. Also, the Calico interface provides the default gateway for IP routing.
{: note}