Receive filtering for communication interface
DCFirst Claim
1. An interface in which packets are received having a plurality of variant formats, and transferred to a host system, comprising:
- a first port on which incoming data is received at a data transfer rate;
a buffer, coupled to the first port, storing received packets;
a second port, coupled with the buffer, through which transfer of packets to the host is executed;
a packet filter, coupled to the first port, which identifies packets being stored in the buffer having one of the plurality of variant formats;
first logic coupled with the buffer and the second port, to transfer packets from the buffer to the second port; and
second logic coupled with the buffer, and responsive to the packet filter to read and process data in the identified packets from the buffer, and to produce a data value dependent on contents of the packet prior to transfer of the identified packets to the second port by the first logic.
6 Assignments
Litigations
0 Petitions
Accused Products
Abstract
An interface card for a network or other communication channel, with limited intelligence, is implemented using a relatively slower, and lower cost embedded processor, supported by dedicated hardware logic for the purposes of intercepting certain packets being received via the network or communication channel. The interface comprises the first port on which incoming data is received at the data transfer rate of the network, a buffer coupled to the port that stores received packets, and a second port coupled with the buffer through which transfer of packets to the host is executed. Packet filters are coupled to the first port which identifies packets being stored in the buffer that have one of the plurality of variant formats. A processor is coupled with the buffer as well, and is responsive to the packet filter to process identified packets in the buffer. The pattern match logic includes mask logic circuits, circuits to generate a hash in response to bytes selected by the mask, and a comparator which compares the output of the hash logic with an expected hash. If a match is detected, then the processor is signaled that the packet being received is, or may be, suitable for processing on the network interface card. The mask logic uses the mask modifier in response to the packet format, so that variations of a particular format can be handled with a single set of pattern match logic circuits.
-
Citations
46 Claims
-
1. An interface in which packets are received having a plurality of variant formats, and transferred to a host system, comprising:
-
a first port on which incoming data is received at a data transfer rate;
a buffer, coupled to the first port, storing received packets;
a second port, coupled with the buffer, through which transfer of packets to the host is executed;
a packet filter, coupled to the first port, which identifies packets being stored in the buffer having one of the plurality of variant formats;
first logic coupled with the buffer and the second port, to transfer packets from the buffer to the second port; and
second logic coupled with the buffer, and responsive to the packet filter to read and process data in the identified packets from the buffer, and to produce a data value dependent on contents of the packet prior to transfer of the identified packets to the second port by the first logic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
mask logic circuits;
hash logic to generate a hash in response to the packet and the mask logic circuits; and
compare logic to compare the hash generated with an expected hash for one of the plurality of variant formats.
-
-
9. The interface of claim 1, wherein the packet filter comprises:
-
mask logic circuits, having a mask and a mask modifier logic to modify the mask using the mask modifier in response to the packet;
hash logic to generate a hash in response to the packet and the mask; and
compare logic to compare the hash generated with an expected hash for one of the plurality of variant formats.
-
-
10. The interface of claim 1, wherein the packet filter comprises a plurality of match logic circuits, each match logic circuit in the plurality comprising:
-
mask logic circuits storing a mask identifying selected bytes within a packet of a particular format in the plurality of variant formats;
hash logic to generate a hash in response to the selected bytes; and
compare logic to compare the hash generated with an expected hash for the particular format.
-
-
11. The interface of claim 1, wherein the second logic to process the packet comprises a routine to discover an internet protocol IP address of the host system.
-
12. The interface of claim 1, wherein the second logic to process the packet comprises a routine to issue a reboot command to the host system.
-
13. The interface of claim 1, including third logic which signals the second logic to process the data after at least part of the identified packet is stored in the buffer.
-
14. The interface of claim 1, including third logic which signals the second logic to process the data after the identified packet is stored in the buffer.
-
15. The interface of claim 1, including third logic which, after at least part of the identified packet is stored in the buffer, stops the transferring of packets to the host by the first logic, signals the second logic to process the data, and re-starts the transferring of packets to the host by the first logic in response to a signal from the second logic.
-
16. An interface in which packets are received having a plurality of variant formats, and transferred to a host system, comprising:
-
a first port on which incoming data is received at a data transfer rate;
a buffer, coupled to the first port, storing received packets;
a second port, coupled with the buffer, through which transfer of packets to the host is executed;
a packet filter, coupled to the first port, which identifies packets being stored in the buffer having one of the plurality of variant formats; and
first logic coupled with the buffer, and responsive to the packet filter to process data in the identified packets; and
second logic to manage the buffer which associates a control field with packets being stored in the buffer, and wherein the packet filter sets a variable in the control field to indicate whether the packet has one of the plurality of variant formats. - View Dependent Claims (17, 18, 19, 20)
-
-
21. An interface to a network in which packets are received having a plurality of variant formats, and transferred to a host system, comprising:
-
a medium access control (MAC) unit on which incoming data is received at a data transfer rate;
a buffer, coupled to the MAC unit, storing received packets;
a port, coupled with the buffer, through which transfer of packets to the host is executed;
a packet filter, coupled to the MAC unit, which identifies packets being stored in the buffer having one of the plurality of variant formats; and
a processor coupled with the buffer, and responsive to the packet filter that executes instructions to read data in the identified packets from the buffer and process the read data to produce a data value, prior to transfer of the identified packets from the buffer to the host. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
mask logic circuits;
hash logic to generate a hash in response to the packet and the mask logic; and
compare logic to compare the hash generated with an expected hash for one of the plurality of variant formats.
-
-
32. The interface of claim 21, wherein the packet filter comprises:
-
mask logic circuits, having a mask and a mask modifier logic to modify the mask using the mask modifier in response to the packet;
hash logic to generate a hash in response to the packet and the mask; and
compare logic to compare the hash generated with an expected hash for one of the plurality of variant formats.
-
-
33. The interface of claim 21, wherein the packet filter comprises a plurality of match logic circuits, each match logic circuit in the plurality comprising:
-
mask logic circuits storing a mask identifying selected bytes within a packet of a particular format in the plurality of variant formats;
hash logic to generate a hash in response to the selected bytes; and
compare logic to compare the hash generated with an expected hash for the particular format.
-
-
34. The interface of claim 21, wherein at least a particular format in the plurality of variant formats supports packets having an optional field, the packet filter comprises:
-
mask logic circuits, having a mask for the particular format, and a mask modifier logic to modify the mask depending on detection, or not, of the optional field in the packet;
hash logic to generate a hash in response to the packet and the mask; and
compare logic to compare the hash generated with an expected hash for the particular format.
-
-
35. The interface of claim 34, wherein the optional field comprises a virtual local area network (VLAN) tag.
-
36. The interface of claim 34, wherein the optional field comprises a subnetwork attachment point (SNAP) header.
-
37. The interface of claim 21, including logic which signals the processor to process the data after at least part of the identified packet is stored in the buffer.
-
38. The interface of claim 21, including logic which signals the processor to process the data after the identified packet is stored in the buffer.
-
39. The interface of claim 21, including logic which, after at least part of the identified packet is stored in the buffer, stops the transferring of packets to the host, signals the processor to process the data, and re-starts the transferring of packets to the host in response to a result of said processing.
-
40. An integrated circuit for an interface to a network in which packets are received having a plurality of variant formats, and transferred to an active host system, the integrated circuit comprising:
-
an ethernet medium access control (MAC) unit on which incoming data is received at a data transfer rate of 100 Mbits per second or higher;
a First-In-First-Out (FIFO) buffer, coupled to the MAC unit, storing received packets;
a port, coupled with the FIFO buffer, through which transfer of packets to the host is executed;
a packet filter, coupled to the MAC unit, comprising a plurality of pattern match circuits, each pattern match circuit in the plurality including mask logic circuits storing a mask identifying selected bytes within a packet of a particular format in the plurality of variant formats;
hash logic to generate a hash in response to the selected bytes;
compare logic to compare the hash generated with an expected hash for the particular format; and
logic to identify packets in response to the packet filter and generate an interrupt signal before the identified packets are transferred from the buffer to the host; and
a processor coupled with the buffer, and responsive to the interrupt signal from the packet filter that executes instructions to read and process data in the identified packets. - View Dependent Claims (41, 42, 43, 44, 45, 46)
-
Specification