Patent ID: 7219157

Claim:
An application programming interface (API) for network applications processing packets having source and destination nodes addresses different from a node where the application runs, said API stored in a computer readable medium, said API comprising: first and second data structures associated with a network interface in communication with a network, said first and second data structures being mapped to an operating system and a network application, said network interface, operating system, and network application stored at a node capable of processing packets having source and destination node addresses different from said node where the application runs, wherein: packets to be passed from the operating system to the network application are stored in a buffer and referenced via respective pointers within said first data structure, said respective pointers being exchanged between said operating system and said network application, said first data structure pointers being inserted into said first data structure by said operating system prior to network layer processing, said first data structure pointers being removed by said network application, insertion and removal of said first data structure pointers being asynchronous with respect to each other; and packets to be processed as received packets by said network layer of said operating system are stored in a buffer and referenced via respective pointers within said second data structure, said respective pointers being exchanged between said network application said operating system, said second data structure pointers being inserted into said second data structure by said network application, said second data structure pointers being removed by said operating system, insertion and removal of said second data structure pointers being asynchronous with respect to each other.