# ibv_query_port

## NAME



           ibv_query_port - query an RDMA port's attributes
    


## SYNOPSIS



           **#include <infiniband/verbs.h>**
    
           **int ibv_query_port(struct ibv_context** _*context_**, uint8_t** _port_num_**,**
                              **struct ibv_port_attr** _*port_attr_**);**
    


## DESCRIPTION



           **ibv_query_port()** returns the attributes of port _port_num_ for
           device context _context_ through the pointer _port_attr_.  The
           argument _port_attr_ is an ibv_port_attr struct, as defined in
           <infiniband/verbs.h>.
    
           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 if speed<XDR,NDR otherwise */
                   uint8_t                 phys_state;     /* Physical port state */
                   uint8_t                 link_layer;     /* link layer protocol of the port */
                   uint8_t                 flags;          /* Port flags */
                   uint16_t                port_cap_flags2;/* Port capabilities */
                   uint32_t                active_speed_ex;/* Currently active link speed, if it is 0 refer to active_speed instead */
           };
    
           possible values for the link layer field are IBV_LINK_LAYER_INFINIBAND,
           IBV_LINK_LAYER_ETHERNET, or IBV_LINK_LAYER_UNSPECIFIED.
    
           supported port flags:
           IBV_QPF_GRH_REQUIRED - When this flag is set, the applications must create all AH with GRH configured.
    


## RETURN VALUE



           **ibv_query_port()** returns 0 on success, or the value of errno on
           failure (which indicates the failure reason).
    


* * *