Real-time, time aware, dynamic, context aware and reconfigurable ethernet packet classification
An ultra-high speed electronic communications device includes: a network communications interface; a memory; and one or more processing units, communicatively coupled to the memory and the network communications interface, wherein the memory stores instructions configured to cause the one or more processing units to: receive a data packet using the network communications interface; determine a classification of the data packet based, at least in part, on a plurality of factors, wherein the plurality of factors comprises a rate at which the data packet was received and a time at which the data packet was received; select, based at least in part, on the classification, an operation from a plurality of operations, wherein the plurality of operations comprises a cut-through operation and a store-and-forward operation; and perform the selected operation.
1 . A device comprising:
a network interface circuit configured to receive a packet that has a set of attributes that includes a time at which the packet was received;
a packet classifier circuit coupled to the network interface circuit; and
a set of processing units coupled to the packet classifier circuit, wherein the packet classifier circuit is configured to determine, based on the set of attributes:
whether to, during a communication cycle divided into a plurality of intervals including a first interval and a second interval that occurs after the first interval, cause the network interface circuit to begin to provide the packet to the set of processing units during the first interval prior to the packet being completely received by the network interface circuit and if a port is available, or to cause the network interface circuit to wait to provide the packet to the set of processing units during the second interval after the packet is completely received and if a port is available.
2 . The device of claim 1 , wherein the set of attributes includes an addressee of the packet.
3 . The device of claim 1 , wherein the set of attributes includes a rate at which the packet was received.
4 . The device of claim 1 , wherein the packet includes a header that specifies a subset of the set of attributes.
5 . The device of claim 1 , wherein the packet is an Ethernet packet.
6 . The device of claim 1 , wherein:
the first interval corresponds to a critical period of the communication cycle; and
the second interval corresponds to a non-critical period of the communication cycle.
7 . The device of claim 1 , wherein the plurality of intervals further includes a third interval that occurs before the first interval, the third interval being a scheduling interval during which the network interface circuit does not provide the packet.
8 . A device comprising:
a network interface circuit configured to receive a packet that has a set of attributes;
a packet classifier circuit coupled to the network interface circuit; and
a set of processing units coupled to the packet classifier circuit, wherein the packet classifier circuit is configured to determine, based on the set of attributes whether to cause the network interface circuit to begin to provide the packet to the set of processing units prior to the packet being completely received by the network interface circuit; and
a scheduling circuit coupled to the packet classifier circuit and configured to define:
a first time phase during which the packet is permitted to be provided by the network interface circuit prior to the packet being completely received;
a second time phase during which the packet is permitted to be provided by the network interface circuit prior to or after the packet is completely received; and
a third time phase during which the packet is permitted to be provided by the network interface circuit after the packet is completely received.
9 . The device of claim 8 , wherein the set of attributes includes at least one of: a time at which the packet was received, an addressee of the packet, or a rate at which the packet was received.
10 . A device comprising:
a network interface circuit configured to receive a packet that has a set of attributes that includes a time at which the packet was received; and
a packet classifier circuit coupled to the network interface circuit and configured to couple to a processing unit, wherein the packet classifier circuit is configured to determine, based on the set of attributes:
whether to, during a communication cycle divided into a plurality of intervals including a first interval and a second interval that occurs after the first interval, cause the network interface circuit to begin to provide the packet to the processing unit during the first interval prior to the packet being completely received by the network interface circuit and if a port if available, or to cause the network interface circuit to wait to provide the packet to the processing unit during the second interval after the packet is completely received and if a port is available.
11 . The device of claim 10 , wherein the set of attributes further includes at least one of: an addressee of the packet or a rate at which the packet was received.
12 . A method comprising:
receiving a packet at a network interface circuit, wherein the packet is associated with a set of attributes that includes a time at which the packet was received;
determining, based on the set of attributes and within a communication cycle divided into a plurality of intervals including a first interval and a second interval that occurs after the first interval, whether to begin to provide the packet, by the network interface circuit to a processing unit, during the first interval before the packet has been completely received by the network interface circuit and if a port is available, or to wait to provide the packet, by the network interface circuit to the processing unit, during the second interval after the packet is completely received and if a port is available; and
providing the packet, by the network interface circuit, to the processing unit.
13 . The method of claim 12 , wherein the set of attributes includes an addressee of the packet.
14 . The method of claim 12 , wherein the set of attributes includes a rate at which the packet was received.
15 . The method of claim 12 , wherein the packet includes a header that specifies a subset of the set of attributes.
16 . The method of claim 12 , wherein the packet is an Ethernet packet.
17 . The method of claim 12 , wherein:
the first interval corresponds to a critical period of the communication cycle; and
the second interval corresponds to a non-critical period of the communication cycle.
18 . The method of claim 12 , wherein the plurality of intervals further includes a third interval that occurs before the first interval, the third interval being a scheduling interval during providing the packet is not performed by the network interface circuit.
19 . A method comprising:
receiving a packet at a network interface circuit, wherein the packet is associated with a set of attributes;
determining whether to begin to provide the packet, by the network interface circuit to a processing unit, before the packet has been completely received by the network interface circuit based on the set of attributes;
defining:
a first time during which the packet is permitted to be provided by the network interface circuit prior to the packet being completely received;
a second time during which the packet is permitted to be provided by the network interface circuit prior to or after the packet is completely received; and
a third time during which the packet is permitted to be provided by the network interface circuit after the packet is completely received; and
providing the packet, by the network interface circuit, to the processing unit.
20 . The method of claim 19 , wherein the set of attributes includes at least one of: a time at which the packet was received, an addressee of the packet, or a rate at which the packet was received.