IP Library Granted Patent US 7,864,787
Granted Patent B2
US 7,864,787 · App. 11/727,222 · Granted Jan 4, 2011

Device, system and method of multicast 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,864,787
App. No.
11/727,222
Granted
Jan 4, 2011
Kind
B2
Abstract

Device, system and method of multicast communication. For example, an apparatus in accordance with an embodiment of the invention includes a non-kernel multicast protocol handler adapted to perform a multicast 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 (78)

1. An apparatus comprising:

a non-kernel multicast protocol handler to perform a multicast 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 multicast protocol handler is to replace operating system kernel operations handling multicast operations with one or more operations of a multicast offload library,

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

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

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

wherein the non-kernel multicast protocol handler is to intercept a socket operation of creation of an IP multicast membership registration of the user mode application, to map the intercepted socket operation to user-mode multicast protocol handling of said interconnect, and to map the socket of the user mode multicast 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 multicast 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 multicast 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 multicast protocol handler is implemented in user-space in the same context of the user-mode multicast application, in the same memory space of the user-mode multicast application, and in the same process of the user-mode multicast 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 multicast application to the kernel for handling the multicast operation.

2. The apparatus of claim 1 , wherein the non-kernel multicast protocol handler is to perform said multicast 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 multicast protocol handler is to perform said multicast operation in user space.

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

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

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

6. The apparatus of claim 1 , wherein the non-kernel multicast 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 multicast protocol handler is to intercept the multicast operation.

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

a multicast send operation,

a multicast receive operation,

an operation to add a multicast socket,

an operation to delete a multicast socket,

an operation to modify a multicast socket, and

an operation to control a multicast socket.

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

10. A method comprising:

intercepting a multicast operation of a user mode application; and

performing said multicast 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 multicast operations with one or more operations of a multicast offload library implemented in user-space and externally to the operating system kernel;

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

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

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

intercepting a socket operation of creation of an IP multicast membership registration of the user mode application, and mapping the intercepted socket operation to user-mode multicast protocol handling of said interconnect, and mapping the socket of the user mode multicast 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 multicast offload library operates externally to a kernel mode of said operating system and externally to a kernel of said operating system,

wherein the multicast 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 multicast offload library is implemented in user-space in the same context of the user-mode multicast application, in the same memory space of the user-mode multicast application, and in the same process of the user-mode multicast 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 multicast application to the kernel for handling the multicast operation.

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

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

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

performing said multicast operation using a native InfiniBand semantic.

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

performing said multicast operation in user space.

14. The method of claim 10 , wherein said multicast operation comprises (a) an Internet Protocol (IP) multicast operation, (b) an IP header, and (c) a UDP header,

wherein performing comprises:

performing said multicast operation externally to a TCP/IP stack of said operating system, kernel; and

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

15. The method of claim 10 , comprising:

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

16. The method of claim 15 , comprising:

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

17. The method of claim 16 , comprising:

intercepting a multicast operation selected from a group consisting of:

a multicast send operation,

a multicast receive operation,

an operation to add a multicast socket,

an operation to delete a multicast socket,

an operation to modify a multicast socket, and

an operation to control a multicast socket.

18. 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 multicast operation of a user mode application; and

performing said multicast 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 multicast operations with one or more operations of a multicast offload library implemented in user-space and externally to the operating system kernel;

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

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

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

intercepting a socket operation of creation of an IP multicast membership registration of the user mode application, mapping the intercepted socket operation to user-mode multicast protocol handling of said interconnect, and mapping the socket of the user mode multicast 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 multicast offload library operates externally to a kernel mode of said operating system and externally to a kernel of said operating system,

wherein the multicast 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 multicast offload library is implemented in user-space in the same context of the user-mode multicast application, in the same memory space of the user-mode multicast application, and in the same process of the user-mode multicast 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 multicast application to the kernel for handling the multicast operation.

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

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

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

performing said multicast operation using a native InfiniBand semantic.

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

performing said multicast operation in user space, and

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

Assignments (5)
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 May 1, 2013
From: VOLTAIRE LTD
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 030323/0916 →
CHANGE OF NAME Recorded Apr 18, 2013
From: VOLTAIRE LTD
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 030238/0920 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2007
From: OVED, TZAH
To: VOLTAIRE LTD.
Reel/Frame 019564/0177 →