Method and apparatus for multicast packet reception
First Claim
1. A method for filtering incoming data packets received from a network, for use with an operating system and a network interface device, comprising the steps of:
- receiving a first request to deliver a future incoming data packet to a first user level endpoint, the first request indicating first packet header properties to look for;
determining from the first packet header properties whether they are of a character that permits a user level process to make a second request to deliver the future incoming data packet also to a second user level endpoint;
programming a network interface device to deliver a future incoming data packet having the first packet header properties to the first user level endpoint, only if the first packet header properties are not of such a character.
11 Assignments
0 Petitions
Accused Products
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.
166 Citations
55 Claims
-
1. A method for filtering incoming data packets received from a network, for use with an operating system and a network interface device, comprising the steps of:
-
receiving a first request to deliver a future incoming data packet to a first user level endpoint, the first request indicating first packet header properties to look for;
determining from the first packet header properties whether they are of a character that permits a user level process to make a second request to deliver the future incoming data packet also to a second user level endpoint;
programming a network interface device to deliver a future incoming data packet having the first packet header properties to the first user level endpoint, only if the first packet header properties are not of such a character. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for filtering incoming data packets received from a network, for use with a network interface device, comprising:
-
a memory subsystem; and
a data processor coupled to the memory subsystem, the data processor configured to;
receive a first request from a user level process to deliver a future incoming data packet to a first user level endpoint, the first request indicating first packet header properties to look for;
determine from the first packet header properties whether they are of a character that permits a user level process to make a second request to deliver the future incoming data packet also to a second user level endpoint; and
only if the first packet header properties are not of such a character, program the network interface device to deliver a future incoming data packet having the first packet header properties to the first user level endpoint.
-
-
9. A method for filtering incoming data packets received from a network, for use with a network interface device by a host system having an operating system having a network protocol stack, comprising the steps of:
-
receiving a first request for a first user level endpoint to join a first multicast group; and
programming the network interface device to deliver future incoming data packets of the first multicast group to the first user level endpoint in a manner that bypasses the operating system network protocol stack. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A host system for filtering incoming data packets received from a network, for use with a network interface device, the host system being configured to have an operating system having a network protocol stack, comprising:
-
a memory subsystem; and
a data processor coupled to the memory subsystem, the data processor configured to, in response to a first request for a first user level endpoint to join a first multicast group, program the network interface device to deliver future incoming data packets of the first multicast group to the first user level endpoint in a manner that bypasses the operating system network protocol stack. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
- 35. Network interface apparatus, for use with a network and with a host subsystem in communication with the network interface apparatus via a communications bus, the host subsystem being capable of running an operating system having a network protocol stack and at least one user level process collectively having a plurality of user level endpoints for receipt of data packets incoming from the network interface apparatus, the network interface apparatus comprising a table having capacity to identify at least two user level endpoints for receipt of incoming data packets matching a single set of filter criteria.
-
42. A method for filtering incoming data packets received from a network, for use by a network interface device with a host system having an operating system having a network protocol stack, comprising the steps of:
-
receiving a first instruction from the host system to deliver future incoming data packets of a first multicast group to a first user level endpoint in the host system; and
programming a table in the network interface device with a first correspondence of an identification of the first user level endpoint with an identification of the first multicast group. - View Dependent Claims (43, 44, 45, 46, 47)
-
-
48. Network interface apparatus, for use with a host system having an operating system having a network protocol stack, comprising:
means, operative in response to receipt from the host system of a first instruction to deliver future incoming data packets of a first multicast group to a first user level endpoint in the host system, for programming a table in the network interface device with a first correspondence of an identification of the first user level endpoint with an identification of the first multicast group. - View Dependent Claims (49, 50, 51)
-
52. A method for filtering incoming data packets received from a network, for use by a network interface device with a host system having an operating system having a network protocol stack, comprising the steps of:
-
receiving an incoming data packet of a first multicast group; and
delivering the data packet to a first user level process, bypassing the operating system.
-
-
53. Network interface apparatus, for use with a network and a host system having an operating system having a network protocol stack, comprising:
means, operative in response to receipt from the network of an incoming data packet of a first multicast group, for delivering the data packet to a first user level process, bypassing the operating system.
-
54. A method for filtering incoming data packets received from a network, for use by a network interface device with a host system having an operating system having a network protocol stack, comprising the steps of:
-
receiving a first data packet incoming from the network; and
delivering the first data packet to each of a plurality of user level processes, all bypassing the operating system.
-
-
55. Network interface apparatus, for use with a network and a host system having an operating system having a network protocol stack, comprising:
means, operative in response to receipt from the network of a first data packet incoming from the network, for delivering the first data packet to each of a plurality of user level processes, all bypassing the operating system.
Specification