Which operating system are you using?
About 2-3 years ago (around RHEL/CentOS 6.0 time), I was using Infinihost III cards. From memory, they used the mthca driver (on RHEL/CentOS) at the time.
These days I'm using ConnectX (version 1) cards, which seem to be using mlx4.
I sort of remember reading that the mthca/mlx4 software changed a while ago, with some of the functionality moved around between them. I don't remember the details in any depth though... and I think that might have just been on ESX drivers or something. (unsure, and it's been a long day. )
mlx4 is the low level driver for Mellanox ConnectX device family (4th generation adapters), first introduced in 2007:
While mthca, is the driver for the older generation: InfiniHost device family.
one more question
how these connectX cards majorly difffers from InfiniHost, is it XRC support OR VPI support OR something else
ConnectX device family has wider set of features compared to InfiniHost family.
XRC for example, is support in ConnectX devices only.
Note that the device support is a function of the OS, driver and firmware, so the proper way to check the device capabilities is to use the RDMA verb: ibv_query_device(3) and examine the output (specifically device_cap_flags), which can tell you what capabilities are supported on a given HCA, all the possible capabilities are listed in include/infiniband/verbs.h header file.
Alternatively, you can use the ibv_devinfo(1) utility (with the "-v" flag) to retrieve the information of each HCA port, including the port_cap_flags field.