Prioritized Handling of Incoming Packets by a Network Interface Controller
First Claim
1. A network interface controller, comprising:
- a host interface, which is configured to be coupled to a host processor having a host memory;
a network interface, which is configured to receive data packets from a network, each data packet comprising a header comprising header fields and a payload comprising data; and
packet processing circuitry, which is configured to process one or more of the header fields and at least a part of the data;
to select, responsively at least to the one or more of the header fields, a location in the host memory;
to write the data to the selected location; and
upon determining that the processed data satisfies a predefined criterion, to assert an interrupt on the host processor so as to cause the host processor to read the data from the selected location in the host memory.
3 Assignments
0 Petitions
Accused Products
Abstract
A network interface controller includes a host interface, which is configured to be coupled to a host processor having a host memory. A network interface is configured to receive data packets from a network, each data packet including a header, which includes header fields, and a payload including data. Packet processing circuitry is configured to process one or more of the header fields and at least a part of the data and to select, responsively at least to the one or more of the header fields, a location in the host memory. The circuitry writes the data to the selected location and upon determining that the processed data satisfies a predefined criterion, asserts an interrupt on the host processor so as to cause the host processor to read the data from the selected location in the host memory.
-
Citations
26 Claims
-
1. A network interface controller, comprising:
-
a host interface, which is configured to be coupled to a host processor having a host memory; a network interface, which is configured to receive data packets from a network, each data packet comprising a header comprising header fields and a payload comprising data; and packet processing circuitry, which is configured to process one or more of the header fields and at least a part of the data;
to select, responsively at least to the one or more of the header fields, a location in the host memory;
to write the data to the selected location; and
upon determining that the processed data satisfies a predefined criterion, to assert an interrupt on the host processor so as to cause the host processor to read the data from the selected location in the host memory. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A network interface controller, comprising:
-
a host interface, which is configured to be coupled to a host processor having a host memory, which stores multiple queues containing queue elements for controlling interactions between the host processor and the network interface controller; a network interface, which is configured to receive data packets from a network, each data packet comprising a header comprising header fields and a payload comprising data; and packet processing circuitry, which is configured to process one or more of the header fields and at least a part of the data;
to select, responsively at least to the one or more of the header fields, a location in the host memory;
to write the data to the selected location;
to select a queue in the host memory depending on whether the processed data satisfies a predefined criterion; and
to access an element in the selected queue so as to cause the host processor to read the data from the selected location in the host memory. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method for communication, comprising:
-
receiving data packets from a network in a network interface controller (NIC), which is coupled to a host processor having a host memory, each data packet comprising a header comprising header fields and a payload comprising data; processing one or more of the header fields and at least a part of the data in the NIC so as to select, responsively at least to the one or more of the header fields, a location in the host memory; writing the data from the NIC to the selected location; and upon determining in the NIC that the processed data satisfies a predefined criterion, asserting an interrupt on the host processor so as to cause the host processor to read the data from the selected location in the host memory. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method for communication, comprising:
-
receiving data packets from a network in a network interface controller (NIC), which is coupled to a host processor having a host memory, each data packet comprising a header comprising header fields and a payload comprising data; maintaining in the host memory multiple queues containing queue elements for controlling interactions between the host processor and the network interface controller; processing one or more of the header fields and at least a part of the data in the NIC so as to select, responsively at least to the one or more of the header fields, a location in the host memory; writing the data from the NIC to the selected location; selecting a queue in the host memory depending on whether the processed data satisfies a predefined criterion; and accessing an element in the selected queue so as to cause the host processor to read the data from the selected location in the host memory. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
Specification