
Chapter VI. WD-UDP
Chelsio Unified Wire for Linux
112
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.
Содержание Terminator 6
Страница 1: ...Chelsio Unified Wire for Linux i...
Страница 15: ...Chapter I Chelsio Unified Wire Chelsio Unified Wire for Linux 15 I Chelsio Unified Wire...
Страница 51: ...Chapter II Network NIC TOE Chelsio Unified Wire for Linux 51 II Network NIC TOE...
Страница 70: ...Chapter III Virtual Function Network vNIC Chelsio Unified Wire for Linux 70 III Virtual Function Network vNIC...
Страница 82: ...Chapter IV iWARP RDMA Chelsio Unified Wire for Linux 82 IV iWARP RDMA...
Страница 99: ...Chapter V iSER Chelsio Unified Wire for Linux 99 V iSER...
Страница 107: ...Chapter VI WD UDP Chelsio Unified Wire for Linux 107 VI WD UDP...
Страница 119: ...Chapter VII WD TOE Chelsio Unified Wire for Linux 119 VII WD TOE...
Страница 125: ...Chapter VIII NVMe oF Chelsio Unified Wire for Linux 125 VIII NVMe oF...
Страница 135: ...Chapter IX LIO iSCSI Target Offload Chelsio Unified Wire for Linux 135 IX LIO iSCSI Target Offload...
Страница 148: ...Chapter X iSCSI PDU Offload Target Chelsio Unified Wire for Linux 148 X iSCSI PDU Offload Target...
Страница 187: ...Chapter XI iSCSI PDU Offload Initiator Chelsio Unified Wire for Linux 187 XI iSCSI PDU Offload Initiator...
Страница 198: ...Chapter XII Crypto Offload Chelsio Unified Wire for Linux 198 XII Crypto Offload...
Страница 211: ...Chapter XIII Data Center Bridging DCB Chelsio Unified Wire for Linux 211 XIII Data Center Bridging DCB...
Страница 223: ...Chapter XIV FCoE Full Offload Initiator Chelsio Unified Wire for Linux 223 XIV FCoE Full Offload Initiator...
Страница 230: ...Chapter XIV FCoE Full Offload Initiator Chelsio Unified Wire for Linux 230...
Страница 235: ...Chapter XV Offload Bonding Chelsio Unified Wire for Linux 235 XV Offload Bonding...
Страница 258: ...Chapter XVIII Offload IPv6 Chelsio Unified Wire for Linux 258 XVIII Offload IPv6...
Страница 265: ...Chapter XIX WD Sniffing and Tracing Chelsio Unified Wire for Linux 265 XIX WD Sniffing and Tracing...
Страница 272: ...Chapter XX Classification and Filtering Chelsio Unified Wire for Linux 272 XX Classification and Filtering...
Страница 297: ...Chapter XXI OVS Kernel Datapath Offload Chelsio Unified Wire for Linux 297 XXI OVS Kernel Datapath Offload...
Страница 311: ...Chapter XXII Ring Backbone Chelsio Unified Wire for Linux 311 XXII Ring Backbone...
Страница 317: ...Chapter XXIII Traffic Management Chelsio Unified Wire for Linux 317 XXIII Traffic Management...
Страница 329: ...Chapter XXIV DPDK Driver Chelsio Unified Wire for Linux 329 XXIV DPDK Driver...
Страница 347: ...Chapter XXV Unified Boot Chelsio Unified Wire for Linux 347 XXV Unified Boot...
Страница 357: ...Chapter XXV Unified Boot Chelsio Unified Wire for Linux 357 iv Boot to EFI Shell...
Страница 427: ...Chapter XXVI Appendix A Chelsio Unified Wire for Linux 427 XXVI Appendix A...