# SR-IOV

> Learn how to activate SR-IOV on a Wandelbots NOVA OS instance. Follow steps to update the NOVA installer and activate SR-IOV on a supported network interface.

SR-IOV reduces latency, jitter, and network stack overhead for a cell running on NOVA.
It's an advanced option that requires networking expertise: activate it for a port only when an application on that port needs it, since it uses virtual functions on a single physical network card instead of relying on a separate card per connection.

> **Warning:** Activating SR-IOV on a port that a controller, PLC or other device uses interrupts that connection.
> Export your cell configurations before you start, and expect to remove and re-add the affected robot in Setup afterward.

## Update the NOVA backend

SR-IOV support depends on the Wandelbots NOVA OS image that you installed NOVA OS with.

### Step 1: Create a backup

Export your cell configurations and create a complete backup of the NOVA instance.

### Step 2: Connect NOVA instance to the internet

To successfully pull the backend update, the instance requires an internet connection.

> **Warning:** The internet connection must be maintained until the installation of NOVA is successfully completed and the message `### INFO: Installation successful!` is displayed.

### Step 3: Open the Cockpit

1. Open `http://<instance's IP address>:9090` in a browser.
   → The Cockpit web interface opens.
2. Log in with the admin user credentials created during setup or provided by Wandelbots GmbH.
3. Go to `Terminal`.

### Step 4: Re-install NOVA

4. Run `curl -sL https://get.wandelbots.io/ | bash -`.\
   The installation can take up to 10 minutes.
   → The terminal shows `### INFO: Installation successful!` upon completion. Internet connection is no longer required.

## Activate SR-IOV

### Step 1: Open the SR-IOV configuration

1. In the instance's terminal, run `sudo nano /etc/sriov/numvfs.conf`.
   → The file lists one commented-out line per SR-IOV-capable network interface, each preceded by a comment naming the interface.

> **Info:** If the file can't be found or the desired port is not listed, SR-IOV is not supported by the hardware.

2. Find the line of the desired port, e.g., `#enp1s0f0=7`:
   ```
   # This is the port enp1s0f0=7 used for device a.
   # enp1s0f0=7
   ```
3. Remove the `#` at the start of that line:
   ```
   # This is the port enp1s0f0=7 used for device a.
   enp1s0f0=7
   ```
4. Save the file.
5. Reboot the instance by running `sudo reboot`.
   → The instance restarts. This takes a few minutes, and the instance keeps its IP address.

### Step 2: Verify SR-IOV is active

6. Use [GET Network Interfaces](https://portal.wandelbots.io/docs/api/v2/ui/#/operations/getNetworkInterfaces) to verify that SR-IOV is listed as a network.\
   If its `backend` value is `sriov`, SR-IOV is active.\
   If it's still `macvlan`, repeat the previous steps and confirm you removed the `#` from the correct line.

### Add robots that now have trouble connecting anew

Enabling SR-IOV on a port changes the network interface a connected robot uses.

1. Open Setup and navigate to the `Robots` page.
2. Delete the affected robot.
3. Add the robot again.

> **Info:** In case previously added robots do not display a motion group and are not displayed as connected, use the [`Guide me` function to re-add the robot](/nova/26.8/setup/overview#connect-seven-robot-manufacturers).
> Importing previous configurations will only import the previously used network configuration without SR-IOV.

## Troubleshooting

### Installing Wandelbots NOVA OS image fails

1. Open `http://<instance's IP address>:9090` in a browser.
   → The Cockpit web interface opens.
2. Log in with the admin user credentials created during setup or provided by Wandelbots GmbH.
3. Go to `Terminal`.
4. Run `scp nova.admin@<instance's IP address>:/var/log/nova-install.log ~/Downloads/nova-install.log`.
5. Copy the log file and send it to Wandelbots Customer Success.
