ibv_query_port

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
[ Feedback ]