SmartState/Fleecing - Access virtual disks directly on a storage device, LAN-free - vddk 1.1


Hi All,

It seems we are not using the vddk 1.1 features for disk access[1].

We don’t use VixDiskLib_ConnectEx() to specify transports other than LAN(direct SAN Access for performance).

I see connect_ex method in api[2], but they don’t seem to be used.

Can someone from dev team confirm this?





Hi, Rabi.

It is true that we do not use VixDiskLib_ConnectEx currently to connect to the virtual disk.
However while this means that we do not currently allow the caller to specify which transport to
use, it is not clear to me that this means that only LAN will be used. I would expect that VixDiskLib
would still select the best transport available. Can you provide more info about why you believe we
are only using SAN?




Based on the VMware API documentation[1], it seems that older api by default selects LAN or NBD transport and not the best transport or selected transport (ex. SAN for performance).

I may be wrong though. The expectation is, fleecing should select SAN transport when available.




Thanks, Rabi. We should certainly validate that assumption. The way I read that doc is that with 1.1, VixDiskLib will use SAN if available, and the extended connection call allows the user to specify the transport of their choice. Otherwise the library will choose.


Rabi, for more background, the vddk header file describing the api has the following comment under the ConnectEx call:

 # @param transportModes [in] An optional list of transport modes that
 #             can be used for this connection, separated by
 #             colons. If NULL is specified, VixDiskLib's default
 #             setting of "file:san:hotadd:nbd" is used. If a disk is
 #             opened through this connection, VixDiskLib will start
 #             with the first entry of the list and attempt to use
 #             this transport mode to gain access to the virtual
 #             disk. If this does not work, the next item in the list
 #             will be used until either the disk was successfully
 #             opened or the end of the list is reached.

My assumption is that the Connect call works the same way that ConnectEx works with a NULL transportModes parameter.