IP Library Granted Patent US 9,083,539
Granted Patent B2
US 9,083,539 · App. 14/463,499 · Granted Jul 14, 2015

Method and apparatus for multicast packet reception

Inventors: David J. Riddoch (Fenstanton, GB); Martin Porter (Over, GB); Steven L. Pope (Costa Mesa, CA)
Assignee: SOLARFLARE COMMUNICATIONS, INC.
H04L12/18H04L49/90
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 9,083,539
App. No.
14/463,499
Granted
Jul 14, 2015
Kind
B2
Abstract

Roughly described, incoming data packets are delivered by the NIC directly to at least two user level endpoints. In an aspect, only filters that cannot be ambiguous are created in the NIC. In another aspect, the NIC maintains a filter table supporting direct delivery of incoming unicast and multicast data packets to one user level endpoint. Additional requests to join the same multicast group cause replacement of the NIC filter with one in the kernel. In another aspect, a NIC has limited capacity to maintain multicast group memberships. In response to a new multicast filter request, the kernel establishes it in the NIC only if the NIC still has sufficient capacity; otherwise it is established in the kernel.

Claims (25)

1. A method for establishing filtering for incoming data packets to be received from a network by a receiving device having a host system comprising an operating system and network protocol stack, and a network interface device, comprising the steps of the operating system:

programming the network interface device to deliver future incoming packets of a first multicast group to N>0 user level end-points, in a manner that at least part of a header of the future incoming packets, including an identification of at least one of the first multicast group and the respective user level end-point, bypasses the operating system network protocol stack;

receiving a request for at least one further user level endpoint to join the first multicast group; and

in response to the step of receiving, causing the operating system to forward future incoming packets of the first multicast group to the at least one further user level end-point.

2. The method of claim 1 wherein the step of programming comprises establishing a first filter in the network interface device with a filter criteria identifying the first multicast group.

3. The method of claim 2 wherein the first filter further comprises filter entries identifying the user level endpoints that form part of the first multicast group.

4. The method of claim 1 further comprising in response to the step of receiving establishing a second filter in the operating system with a filter criteria identifying the first multicast group.

5. The method of claim 3 further comprising in response to the step of receiving moving at least some of the filter entries to a second filter in the operating system.

6. The method of claim 5 further comprising placing an indication in the first filter that an incoming packet of the first multicast group is to be delivered to the operating system.

7. The method of claim 5 where all the filter entries of the first filter are moved to the second filter and the first filter is removed.

8. The method of claim 6 wherein the indication is a flag.

9. The method of claim 1 wherein N is the number of user level end-point identities that the network interface device has capacity to store associated with the first multi-cast group.

10. The method of claim 1 further comprising:

in response to the request, determining that the network interface device does not have capacity to deliver future incoming packets to the at least one further end-point in a manner that at least part of a header of the future incoming packets, including an identification of at least one of the first multicast group and the respective user level end-point, bypasses the operating system network protocol stack.

11. The method of claim 1 further comprising:

receiving a packet of the first multicast group;

delivering, by the network interface device, the packet of a first multicast group to at least some of the N user level end-points in a manner that at least part of a header of the future incoming packets, including an identification of at least one of the first multicast group and the respective user level end-point, bypasses the operating system network protocol stack; and

forwarding, by the operating system, the packet to the at least one further end-point from the network interface device.

12. The method according to claim 1 , wherein a packet of the first multicast group comprises packet header properties including a destination IP address matching the multicast group address.

13. A system for establishing filtering for incoming data packets to be received from a network by a receiving device having a host system comprising an operating system and network protocol stack, and a network interface device, the system comprising, in the receiving device:

a memory subsystem; and

a data processor coupled to the memory subsystem, the data processor configured to:

program the network interface device to deliver future incoming packets of a first multicast group to N user level end-points in a manner that at least part of a header of the future incoming packets, including an identification of at least one of the first multicast group and the respective user level end-point, bypasses the operating system network protocol stack;

receive a request for at least one further user level endpoint to join the first multicast group; and

in response to the step of receiving, cause the operating system to forward future incoming packets of the first multicast group to the at least one further user level end-point.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2014
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 034032/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2014
From: RIDDOCH, DAVID J.; PORTER, MARTIN W.; POPE, STEVEN L.
To: LEVEL 5 NETWORKS, INC.
Reel/Frame 033997/0529 →
Continuity (3)
Continuation 13347545 · Jan 10, 2012
Continuation 11351177 · Feb 8, 2006
Related Publication 20140355606A1 · Dec 4, 2014