Queries the attributes of an RDMA port.
Syntax
#include <rdma/verbs.h>
int ibv_query_port(struct ibv_context *context, uint8_t port_num, struct ibv_port_attr *port_attr)
Description
The ibv_query_port() routine
returns the attributes of port port_num for device context context through
the pointer port_attr. The parameter port_attr is an
ibv_port_attr struct, as defined in <rdma/verbs.h>.
struct
ibv_port_attr:
struct ibv_port_attr {
enum ibv_port_state state; /* Logical port state */
enum ibv_mtu max_mtu; /* Max MTU supported by port */
enum ibv_mtu active_mtu; /* Actual MTU */
int gid_tbl_len; /* Length of source GID table */
uint32_t port_cap_flags; /* Port capabilities */
uint32_t max_msg_sz; /* Maximum message size */
uint32_t bad_pkey_cntr; /* Bad P_Key counter */
uint32_t qkey_viol_cntr; /* Q_Key violation counter */
uint16_t pkey_tbl_len; /* Length of partition table */
uint16_t lid; /* Base port LID */
uint16_t sm_lid; /* SM LID */
uint8_t lmc; /* LMC of LID */
uint8_t max_vl_num; /* Maximum number of VLs */
uint8_t sm_sl; /* SM service level */
uint8_t subnet_timeout; /* Subnet propagation delay */
uint8_t init_type_reply; /* Type of initialization performed by SM */
uint8_t active_width; /* Currently active link width */
uint8_t active_speed; /* Currently active link speed */
uint8_t phys_state; /* Physical port state */
};
Input Parameters
context |
struct ibv_context from ibv_open_device. |
port_num |
physical port number (1 is the first port) |
Output Parameter
port_attr |
struct ibv_port_attr containing port attributes. |
Return Values
0 |
On success. |
errno |
On failure. |
EINVAL |
If context parameter or port_attr is
NULL |