Hal> Is there a way to determine whether a device is a HCA, Hal> switch, or router ? Does there need to be another field in Hal> ib_device_attr for this ? I would use the flags member of struct ib_device... add something like enum { IB_DEV_FLAG_IS_SWITCH = 1, /* etc */ }; - R.