Algorithm: 1. During INI file scan MPI finds and load our HCA definition and tunings. In additional to defined in the INI file HCA tuning we load HCA "Family". HCA Family is defined as VENDOR_ID + PART_ID where: VENDOR_ID is FIRST value in vendor_id field in the *.ini file PART_ID is FIRST value in vendor__part_id field in the *.ini file 2. To the modex data exchange we add 2 new fields: VENDOR_ID,PART_ID (HCA Family). Each filed is 32bit, so we add 64bit to modex. 3. During mca_btl_openib_add_procs() call we run trough all procs and call to mca_btl_openib_proc_create(). On each create we will read the family information. On BTL<->PROC matching MPI will check BTL and PROC family compatibility: If BTL and PROC have the same family - apply all tunings and go to #4. If BTL and PROC have different families - Check the family compatibility: If 2 different families have exactly the same tuning we will apply all of them and go to #4 If 2 different families have different tunings: * switch BTL (with ALL endpoints connected to this BTL) to compatibility_mode - no BSRQ, no rdma eager some configuration that all HCAs may to support. * Print warning message * go to #4. 4. MPI works and all vendors are happy :-)