With the introduction of a proxy to our popular LIBFSOCK middleware library, we add support for multiple vendor NICS/devices per application. The architectural design has the concept of a proxy which will allow for registration of different providers (which are vendor specific).
The traditional approach was that the API would interface to a library which was targeting a specific vendor. While this concept allowed for an ABI compatible, transparent use of different vendors, this concept falls short when there are two or more vendors installed which have the same namespace.
A vendor specific provider is working right on top of the underlying hardware, but has the common interface to the upper layers.
The upper instance, the LIBFSOCK-PROXY provides the API hooks in which the providers can interface. The following picture depicts the original solution and how the proxy allows for multiple vendors to co-exist.
The benefits are as follows:
The usage is quite simple. An application will link to the proxy dll (“libfsock.dll”) which will search for available providers.
With the concept of endpoints based on IP addresses, the proxy will search through the chain of installed providers and use the vendor specific provider transparently.
For ISV binding to libfsock proxy, this has the advantage that end customers can choose the vendor transparently. There is no SW/hardware configuration which needs to be done.