#include <infiniband/umad.h> int umad_get_issm_path(char *ca_name, int portnum,char*path,intmax);
umad_get_issm_path() resolves path to issm device (which used for setting/clearing PortInfo:CapMask IsSM bit) for portnum of the IB device ca_name , it stores resolved path in path array which cannot exceed max bytes in length (including NULL terminator). Opening issm device sets PortInfo:CapMask IsSM bit and closing clears it.
umad_open_port() returns 0 on success and a negative value on error as follows:
-ENODEV IB device can't be resolved
-EINVAL port is not valid (bad portnum or no umad device)
Sasha Khapyorsky <email@example.com>