blob: 63f17a49694b62bcba445b966c96a98d5202c3bb [file] [view]
---
date: 2020-04-24
footer: libibverbs
header: "Libibverbs Programmer's Manual"
layout: page
license: 'Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md'
section: 3
title: IBV_QUERY_GID_TABLE
---
# NAME
ibv_query_gid_table - query an InfiniBand device's GID table
# SYNOPSIS
```c
#include <infiniband/verbs.h>
ssize_t ibv_query_gid_table(struct ibv_context *context,
struct ibv_gid_entry *entries,
size_t max_entries,
uint32_t flags);
```
# DESCRIPTION
**ibv_query_gid_table()** returns the valid GID table entries of the RDMA
device context *context* at the pointer *entries*.
A caller must allocate *entries* array for the GID table entries it
desires to query. This API returns only valid GID table entries.
A caller must pass non zero number of entries at *max_entries* that corresponds
to the size of *entries* array.
*entries* array must be allocated such that it can contain all the valid
GID table entries of the device. If there are more valid GID entries than
the provided value of *max_entries* and *entries* array, the call will fail.
For example, if an RDMA device *context* has a total of 10 valid
GID entries, *entries* should be allocated for at least 10 entries, and
*max_entries* should be set appropriately.
# ARGUMENTS
*context*
: The context of the device to query.
*entries*
: Array of ibv_gid_entry structs where the GID entries are returned.
Please see **ibv_query_gid_ex**(3) man page for *ibv_gid_entry*.
*max_entries*
: Maximum number of entries that can be returned.
*flags*
: Extra fields to query post *entries->ndev_ifindex*, for now must be 0.
# RETURN VALUE
**ibv_query_gid_table()** returns the number of entries that were read on success or negative errno value on error.
Number of entries returned is <= max_entries.
# SEE ALSO
**ibv_open_device**(3),
**ibv_query_device**(3),
**ibv_query_port**(3),
**ibv_query_gid_ex**(3)
# AUTHOR
Parav Pandit <parav@nvidia.com>