Software/Driver Configuration And Fine-Tuning; Accelerating Udp Socket Communications - Chelsio Communications Terminator Series Installation And User Manual

Unified wire for linux
Hide thumbs Also See for Terminator Series:
Table of Contents

Advertisement

Chapter VI. WD-UDP

Software/Driver Configuration and Fine-tuning

4.1.

Accelerating UDP Socket Communications

The libcxgb4_sock library is a LD_PRELOAD-able library that accelerates UDP Socket
communications transparently and without recompilation of the user application. This section
describes how to use libcxgb4_sock.
By preloading libcxgb4_sock, all sockets created by the application are intercepted and possibly
accelerated based on the user's configuration. Once accelerated, data for the UDP endpoint are
transmitted or received via HW queues allocated specifically for the accelerated endpoint,
bypassing the kernel, the host networking stack and sockets framework, and enabling ultra-low
latency and high bandwidth utilization.
Due to HW resource limitations, only a small number of queues can be allocated for UDP
acceleration. Therefore, only performance critical UDP applications should use libcxgb4_sock.
Only 64 IPv4 UDP / 28 IPv6 UDP sockets can be accelerated per Chelsio device, with Unified
Wire Configuration tuning option. If you want more sockets to be accelerated, please use
Low Latency or High Capacity WD tuning option.
Application Requirements
Certain application behavior is not supported by libcxb4_sock in this release. If your application
does any of the following, it will not work with libcxgb4_sock:
Calling fork() after creating UDP sockets and using the UDP socket in the child process.
Using multiple threads on a single UDP socket without serialization. For instance, having one
thread sending concurrently with another thread receiving. If your application does this, you
need to serialize these paths with a spin or mutex lock.
Only 1 UDP endpoint is allowed to bind to a given port per host. So, if you have multiple
processes on the same host binding to the same UDP port number, you cannot use
libcxgb4_sock.
Applications must have root privileges to use libcxgb4_sock.
Applications requiring bonded adapter interfaces are not currently supported.
The performance benefit observed with libcxgb4_sock will vary based on your application's
behavior. While all UDP I/O is handled properly, only certain datagrams are accelerated. Non-
accelerated I/O is handled by libcxgb4_sock via the host networking stack seamlessly. Both
Unicast and Multicast datagrams can be accelerated, but the datagrams must meet the following
criteria:
Non-fragmented. In other words, they fit in a single IP datagram that is <= the adapter device
MTU.
Chelsio Unified Wire for Linux
112

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Terminator Series and is the answer not in the manual?

Questions and answers

This manual is also suitable for:

Terminator 6

Table of Contents