io\_uring\_register\_ifq(3) liburing Manual io\_uring\_register\_ifq(3)

# [NAME](#NAME)

io\_uring\_register\_ifq - register a zero-copy receive interface queue

# [SYNOPSIS](#SYNOPSIS)

```
#include <liburing.h>
```

```
int io_uring_register_ifq(struct io_uring *ring,
                          struct io_uring_zcrx_ifq_reg *reg);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_register\_ifq**(3)](/man/os/liburing/io_uring_register_ifq.3) function registers a zero-copy receive interface queue with the io\_uring instance specified by *ring*. Zero-copy receive allows the kernel to place incoming network data directly into application-provided memory without copying.

The *reg* argument is a pointer to a *struct io\_uring\_zcrx\_ifq\_reg* that describes the interface queue to register. See [**io\_uring\_register**(2)](/man/os/liburing/io_uring_register.2) for a description of the **IORING\_REGISTER\_ZCRX\_IFQ** operation and the structure fields.

The io\_uring ring must have been created with **IORING\_SETUP\_DEFER\_TASKRUN** and either **IORING\_SETUP\_CQE32** or **IORING\_SETUP\_CQE\_MIXED** flags set. The caller must have the **CAP\_NET\_ADMIN** capability.

# [RETURN VALUE](#RETURN_VALUE)

Returns 0 on success. On error, a negative errno value is returned.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_register**(2)](/man/os/liburing/io_uring_register.2), [**io\_uring\_setup**(2)](/man/os/liburing/io_uring_setup.2)

January 18, 2025 liburing-2.10

---

Document: io_uring_register_ifq(3) from liburing 2.15-r4 (Chainguard OS)
Source: https://github.com/axboe/liburing.git
