#include <infiniband/umad.h> int umad_get_port(char *ca_name, int portnum, umad_port_t *port); int umad_release_port(umad_port_t *port);
typedef struct umad_port {
char ca_name[UMAD_CA_NAME_LEN]; /* Name of the device */
int portnum; /* Physical port number */
uint base_lid; /* Base port LID */
uint lmc; /* LMC of LID */
uint sm_lid; /* SM LID */
uint sm_sl; /* SM service level */
uint state; /* Logical port state */
uint phys_state; /* Physical port state */
uint rate; /* Port link bit rate */
uint64_t capmask; /* Port capabilities */
uint64_t gid_prefix; /* Gid prefix of this port */
uint64_t port_guid; /* GUID of this port */
} umad_port_t;
umad_release_port() releases the resources that were allocated by the umad_get_port() function for the specified IB port.