Introduction
GigE Vision 3.0 introduces the GigE Vision RDMA Streaming Protocol (GVRSP). RDMA allows the camera to stream data directly to the computer’s memory, bypassing the CPU and operating system. This eliminates the CPU overhead required to manage data transmission and frees up resources for other processing tasks. The GigE Vision 3.0 RDMA implementation utilizes the RoCEv2 standard.
GVRSP must be enabled to utilize RDMA data transfer. When both the camera and host system support GVRSP, it is automatically enabled, no user action is required. LUCID also provides a manual option to activate GVRSP.
This knowledge base article explains how to enable and verify GVRSP operation.
Using GVRSP
Prerequisites
GVRSP is available on LUCID’s 10G or higher cameras.
- Arena SDK:
- Windows 10 64-bit or 11 64-bit: v1.065.5 or higher
- Linux x64: v0.1.116 or higher
- Supported Network Interface Cards (Host Channel Adapters):
- NIC Driver:
- v234
- NIC Firmware:
- v234
- NIC Network Direct Service Provider Interface (for Windows):
- v234
- LUCID Cameras:
- Atlas10 firmware v1.48.0.0 or higher
- Triton10 firmware v1.16.0.0 or higher
- Atlas25 supported out of box
You can check if your LUCID camera is using GigE Vision 3.0 by looking at the Device TL Version Major node. If this node reports 3, you have a GigE Vision 3.0 device.

Enabling GVRSP
Arena SDK uses the TLDevice node DeviceStreamProtocol to determine the transmission protocol used. The following options are available for DeviceStreamProtocol:
- Automatic – This is the default selection. Arena SDK will look for GVRSP support on the camera and on the host and will use GVRSP if supported. If GVRSP support is not found on the camera or the host, Arena SDK will use GVSP (UDP).
- GVRSP – Arena SDK will use GVRSP (RDMA). If GVRSP is not supported, an error message will be presented.
- GVSP – Arena SDK will use GVSP (UDP).
- Legacy – Arena SDK will use legacy RDMA or legacy TCP.
Setting the Device Stream Protocol node
The following shows how to use GVRSP only.
C++:
Arena::SetNodeValue<GenICam::gcstring>(pDevice->GetTLDeviceNodeMap(), "DeviceStreamProtocol", "GVRSP");
C#:
var deviceStreamProtocolNode = (ArenaNET.IEnumeration)device.TLDeviceNodeMap.GetNode("DeviceStreamProtocol");deviceStreamProtocolNode.Value = "GVRSP";
C:
err = acDeviceGetTLStreamNodeMap(hDevice, &hTLStreamNodeMap);err = acNodeMapSetStringValue(hTLStreamNodeMap, "DeviceStreamProtocol", "GVRSP");
Python:
device.tl_device_nodemap['DeviceStreamProtocol'].value = 'GVRSP'
Legacy Transmission Protocols
Some cameras will still be able to use LUCID’s Legacy RDMA or Legacy TCP transmission protocols. See the table below for supported transmission protocols on GVRSP-enabled firmware:
| Camera Family | GVRSP (RDMA) | GVSP (UDP) | Legacy RDMA | Legacy TCP |
|---|---|---|---|---|
| Atlas10 | ✅ | ✅ | ✅ | ✅ |
| Triton10 | ✅ | ✅ | ||
| Atlas25 | ✅ | ✅ |
The following shows how to use Legacy RDMA on a GVRSP-enabled Atlas10.
C++:
Arena::SetNodeValue<GenICam::gcstring>(pDevice->GetTLDeviceNodeMap(), "DeviceStreamProtocol", "Legacy");Arena::SetNodeValue<GenICam::gcstring>(pDevice->GetNodeMap(), "TransportStreamProtocol", "RDMA");
C#:
var deviceStreamProtocolNode = (ArenaNET.IEnumeration)device.TLDeviceNodeMap.GetNode("DeviceStreamProtocol");deviceStreamProtocolNode.Value = "Legacy";var transportStreamProtocolNode = (ArenaNET.IEnumeration)device.NodeMap.GetNode("TransportStreamProtocol");transportStreamProtocolNode.Value = "RDMA";
C:
err = acDeviceGetTLStreamNodeMap(hDevice, &hTLStreamNodeMap);err = acNodeMapSetStringValue(hTLStreamNodeMap, "DeviceStreamProtocol", "Legacy");err = acDeviceGetNodeMap(hDevice, &hNodeMap);err = acNodeMapSetStringValue(hNodeMap, "TransportStreamProtocol", "RDMA");
Python:
device.tl_device_nodemap['DeviceStreamProtocol'].value = 'Legacy'device.nodemap['TransportStreamProtocol'].value = 'RDMA'