IP Library Granted Patent US 7,848,322
Granted Patent B2
US 7,848,322 · App. 11/727,221 · Granted Dec 7, 2010

Device, system and method of UDP communication

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,848,322
App. No.
11/727,221
Granted
Dec 7, 2010
Kind
B2
Abstract

Device, system and method of UDP communication. For example, an apparatus in accordance with an embodiment of the invention includes a non-kernel UDP protocol handler adapted to perform a UDP operation of a user mode application by bypassing the operating system kernel and directly accessing a communication adapter having an operating system bypass capability.

Claims (79)

1. An apparatus comprising:

a non-kernel UDP protocol handler to perform a UDP operation of a user mode application by bypassing an operating system kernel and directly accessing a communication adapter having an operating system bypass capability,

wherein the non-kernel UDP protocol handler is to replace operating system kernel operations handling UDP operations with one or more operations of a UDP offload library,

wherein the non-kernel UDP protocol handler is to replace operating system operations and kernel operations handling of UDP unicast-related calls to a TCP-UDP/IP stack with one or more operations of the UDP offload library,

wherein the non-kernel UDP protocol handler to map the UDP operation to a socket interface of the UDP offload library implemented in user-space and externally to the operating system kernel,

wherein the non-kernel UDP protocol handler is to select a context corresponding to a communication channel of an interconnect attached to said communication adapter,

wherein the non-kernel UDP protocol handler is to intercept a datagram socket creation operation of the user mode application, to map the intercepted datagram socket creation operation to user-mode UDP protocol handling of said interconnect, and to map the socket of the user mode UDP protocol handler directly to said interconnect to result in a user-mode socket like interface which is mapped directly to said communication channel of said interconnect;

wherein the non-kernel UDP protocol handler operates externally to a kernel mode of said operating system and externally to a kernel of said operating system,

wherein the non-kernel UDP protocol handler operates independently of kernel TCP/IP stack, independently of Operating System socket Application Programming Interface (API) , and independently of kernel Application Programming Interface (API),

wherein the non-kernel UDP protocol handler is implemented in user-space in the same context of the user-mode application, in the same memory space of the user-mode application, and in the same process of the user-mode application, to avoid context switch, to reduce processor interrupts, to avoid kernel interrupts, to avoid utilization of an intermediate kernel buffer, to avoid kernel buffer copies, to avoid user-mode to kernel-mode context switch, and to avoid a system call by the user-mode application to the kernel for handling the UDP operation.

2. The apparatus of claim 1 , wherein the non-kernel UDP protocol handler is to perform said UDP operation using a native semantic of said communication adapter.

3. The apparatus of claim 1 , wherein said communication adapter comprises an InfiniBand adapter.

4. The apparatus of claim 1 , wherein the non-kernel UDP protocol handler is to perform said UDP operation in user space.

5. The apparatus of claim 1 , wherein said UDP operation comprises (a) an Internet Protocol (IP) UDP operation, (b) an IP header, and (c) a UDP header,

wherein the non-kernel UDP protocol handler is to perform said UDP operation externally to a TCP-UDP/IP stack of said operating system kernel,

wherein the user-mode application is to utilize the user-mode UDP protocol handler to directly interact with a remote application which is located on a remote device and utilizes a kernel-mode TCP/IP UDP protocol handler implemented using native Operating System stack of said remote device.

6. The apparatus of claim 1 , wherein the non-kernel UDP protocol handler is to monitor operations sent by said user mode application for execution by said operating system kernel.

7. The apparatus of claim 6 , wherein the non-kernel UDP protocol handler is to intercept the UDP operation.

8. The apparatus of claim 6 , wherein the non-kernel UDP protocol handler is to intercept the UDP operation selected from a group consisting of:

a UDP send operation,

a UDP receive operation,

an operation to add a UDP socket,

an operation to delete a UDP socket,

an operation to modify a UDP socket, and

an operation to control a UDP socket.

9. The apparatus of claim 1 , further comprising a processor to execute instructions of a UDP application.

10. The apparatus of claim 1 , wherein said communication adapter comprises an Ethernet network interface card.

11. A method comprising:

intercepting a UDP operation of a user mode application; and

performing said UDP operation by bypassing an operating system kernel and directly accessing a communication adapter having an operating system bypass capability,

wherein the performing comprises:

replacing operating system kernel operations handling UDP operations with one or more operations of a UDP offload library implemented in user-space and externally to the operating system kernel;

replacing operating system operations and kernel operations handling of UDP unicast-related calls to a TCP-UDP/IP stack with one or more operations of the UDP offload library;

mapping the UDP operation to a socket interface of the UDP offload library;

selecting a context corresponding to a communication channel of an interconnect attached to said communication adapter;

intercepting a datagram socket creation operation of the user mode application, mapping the intercepted datagram socket creation operation to user-mode UDP protocol handling of said interconnect, and mapping the socket of the user mode protocol handler directly to said interconnect to result in a user-mode socket like interface which is mapped directly to said communication channel of said interconnect;

wherein the UDP offload library operates externally to a kernel mode of said operating system and externally to a kernel of said operating system,

wherein the UDP offload library operates independently of kernel TCP/IP stack, independently of Operating System socket Application Programming Interface (API), and independently of kernel Application Programming Interface (API),

wherein the UDP offload library is implemented in user-space in the same context of the user-mode application, in the same memory space of the user-mode application, and in the same process of the user-mode application, to avoid context switch, to reduce processor interrupts, to avoid kernel interrupts, to avoid utilization of an intermediate kernel buffer, to avoid kernel buffer copies, to avoid user-mode to kernel-mode context switch, and to avoid a system call by the user-mode application to the kernel for handling the UDP operation.

12. The method of claim 11 , wherein performing comprises:

performing said UDP operation using a native semantic of said communication adapter.

13. The method of claim 11 , wherein performing comprises:

performing said UDP operation using a native InfiniBand semantic.

14. The method of claim 11 , wherein performing comprises:

performing said UDP operation in user space.

15. The method of claim 11 , wherein said UDP operation comprises

(a) an Internet Protocol (IP) UDP operation, (b) an IP header, and (c) a UDP header,

wherein the non-kernel UDP protocol handler is to perform said UDP operation externally to a TCP-UDP/IP stack of said operating system kernel,

wherein the user-mode application is to utilize the user-mode UDP protocol handler to directly interact with a remote application which is located on a remote device and utilizes a kernel-mode TCP/IP UDP protocol handler implemented using native Operating System stack of said remote device.

16. The method of claim 11 , comprising:

monitoring operations sent by said user mode application for execution by the operating system kernel.

17. The method of claim 16 , comprising:

selectively intercepting said UDP operation in accordance with a pre-defined criterion.

18. The method of claim 17 , comprising:

intercepting a UDP operation selected from a group consisting of:

a UDP send operation,

a UDP receive operation,

an operation to add a UDP socket,

an operation to delete a UDP socket,

an operation to modify a UDP socket, and

an operation to control a UDP socket.

19. A machine-readable storage article having stored thereon instructions that, when executed by a machine, cause the machine to perform a method comprising:

intercepting a UDP operation of a user mode application; and

performing said UDP operation by bypassing an operating system kernel and directly accessing a communication adapter having an operating system bypass capability,

wherein the performing comprises:

replacing operating system kernel operations handling UDP operations with one or more operations of a UDP offload library implemented in user-space and externally to the operating system kernel;

replacing operating system operations and kernel operations handling of UDP unicast-related calls to a TCP-UDP/IP stack with one or more operations of the UDP offload library;

mapping the UDP operation to a socket interface of the UDP offload library;

selecting a context corresponding to a communication channel of an interconnect attached to said communication adapter;

intercepting a datagram socket creation operation of the user mode application, mapping the intercepted datagram socket creation operation to user-mode UDP protocol handling of said interconnect, and mapping the socket of the user mode protocol handler directly to said interconnect to result in a user-mode socket like interface which is mapped directly to said communication channel of said interconnect;

wherein the UDP offload library operates externally to a kernel mode of said operating system and externally to a kernel of said operating system,

wherein the UDP offload library operates independently of kernel TCP/IP stack, independently of Operating System socket Application Programming Interface (API), and independently of kernel Application Programming Interface (API),

wherein the UDP offload library is implemented in user-space in the same context of the user-mode application, in the same memory space of the user-mode application, and in the same process of the user-mode application, to avoid context switch, to reduce processor interrupts, to avoid kernel interrupts, to avoid utilization of an intermediate kernel buffer, to avoid kernel buffer copies, to avoid user-mode to kernel-mode context switch, and to avoid a system call by the user-mode application to the kernel for handling the UDP operation.

20. The machine-readable storage article of claim 19 , wherein performing comprises:

performing said UDP operation using a native semantic of said communication adapter.

21. The machine-readable storage article of claim 19 , wherein performing comprises:

performing said UDP operation using a native InfiniBand semantic.

22. The machine-readable storage article of claim 19 , wherein said UDP operation comprises (a) an Internet Protocol (IP) operation, (b) an IP header, and (c) a UDP header, and wherein performing comprises:

performing said UDP operation in user space, and enabling the user-mode application to utilize the user-mode UDP offload library to directly interact with a remote application which is located on a remote device and utilizes a kernel-mode TCP/IP UDP protocol handler implemented using native Operating System stack of said remote device.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37898/0959 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 046542/0699 →
PATENT SECURITY AGREEMENT Recorded Feb 23, 2016
From: MELLANOX TECHNOLOGIES TLV LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037898/0959 →
CHANGE OF NAME Recorded Apr 24, 2013
From: VOLTAIRE LTD
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 030271/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2007
From: OVED, TZAH
To: VOLTAIRE LTD.
Reel/Frame 019564/0218 →