5. SuperSockets

Please consult the software release note for details.

Heterogeneous Cluster Operation (Endianness)

SuperSockets supports clusters where Cluster Nodes use different endian representation (mixing little endian or big endian). Managing the data in a bi-endian configuration is the responsibility of the application.

Sending and Receiving Vectors

The vector length for the writev() and sendmsg() functions is limited to 16. For readv() and recvmsg(), the vector length is not limited.

Socket Options

The following socket options are supported by SuperSockets for communication over PCI Express:

  • SO_DONTROUTE (implicit, as SuperSockets don't use IP packets for data transport and thus are never routable)

  • TCP_NODELAY

  • SO_REUSEADDR

  • SO_TYPE

The following socket options are passed to the native (fall-back) socket:

  • SO_SENDBUF and SO_RECVBUF (the buffer size for the SuperSockets is fixed).

All other socket options are not supported (ignored).

Resource Limitations

SuperSockets allocate resources for the communication via PCI Express by means of the IRM. Therefore, the resource limitations listed for the IRM indirectly apply to SuperSockets as well. To resolve such limitations if they occur (i.e. when using very large number of sockets per Cluster Node), please refer to the relevant IRM section above. SuperSockets logs messages to the kernel message log for two typical out-of-resources situations:

  • No more VCs available. The maximum number of virtual channels needs to be increased (see Section 3, “IRM”).

  • No more segment memory available. The amount of pre-allocated memory needs to be increased (see Section 3, “IRM”).