High Performance Send is a new feature of TCP/IP 4.21 that allows an application to send data over sockets without incurring a memory copy. To use it, special memory is first allocated to the application from the TCP/IP stack with the sysctl() call. Then the application calls send(), sendto(), or sendmsg() with the MSG_MAPIO flag. The application must wait for notification from the stack that the stack has finished using the memory passed on the previous send-type call. Only then should the application reuse the memory to send more data.
There are two ways to determine if the stack has finished using the memory: event semaphores and polling. These are described in Determining if HPS Memory is Available for Reuse.
A complete example of using HPS appears in the samples directory of the toolkit.
Topics
Allocating HPS Memory
Using HPS Memory with Send Calls
Determining if HPS Memory is
Available for Reuse
Freeing HPS Memory