Media access control micro-RISC stream processor and method for implementing the same
DCFirst Claim
1. A method for processing packet data received from a physical layer, the processing being performed in-line while streaming packets to an upper layer, comprising:
- (a) loading an instruction set for custom programming the processing of packet data received from the physical layer;
(b) determining a type of packet data received from the physical layer;
(c) identifying a first word location in the packet data based on the instruction set;
(d) examining the packet data received from the physical layer at the first identified word location;
(e) storing an element indicative of information contained in the first identified word location into a data structure; and
(f) appending the data structure to the packet data before the packet is streamed to the upper layer.
16 Assignments
Litigations
0 Petitions
Accused Products
Abstract
Disclosed are methods and apparatus for processing packet data received from a physical layer. The processing is performed in-line while streaming packets to an upper layer. The method includes loading an instruction set for custom programming the processing of packet data received from the physical layer. Determining a type of packet data received from the physical layer. Identifying a first word location in the packet data based on the contents of the instruction set. Examining the packet data received from the physical layer at the first identified word location. The method further includes storing an element indicative of information contained in the first identified word location into a data structure, and appending the data structure to the packet data before the packet is streamed to the upper layer. The methods and apparatus also have direct applicability to reducing a CPU'"'"'s work load during transmissions of data over a network.
-
Citations
51 Claims
-
1. A method for processing packet data received from a physical layer, the processing being performed in-line while streaming packets to an upper layer, comprising:
-
(a) loading an instruction set for custom programming the processing of packet data received from the physical layer;
(b) determining a type of packet data received from the physical layer;
(c) identifying a first word location in the packet data based on the instruction set;
(d) examining the packet data received from the physical layer at the first identified word location;
(e) storing an element indicative of information contained in the first identified word location into a data structure; and
(f) appending the data structure to the packet data before the packet is streamed to the upper layer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
(g) identifying a second word location in the packet data based on a result of the examination of the first identified word location and on the instruction set.
-
-
3. A method for processing packet data received from a physical layer as recited in claim 1, further comprising:
-
(h) examining the identified second word location in the packet data;
(i) storing second element indicative of information contained in the identified second word location into the data structure; and
(j) appending the data structure containing the first stored element and the second stored element to the packet data before the packet data is streamed to the upper layer.
-
-
4. A method for processing packet data received from a physical layer as recited in claim 2, further comprising:
repeating (g) through (j) for additional word locations.
-
5. A method for processing packet data received from a physical layer as recited in claim 1, wherein the instruction set for custom programming processing of packet data received from the physical layer includes information identifying a type of data structure and a plurality of word locations of interest within the packet data.
-
6. A method for processing packet data received from a physical layer as recited in claim 5, wherein the type of data structure is selected from the group consisting of a pointer data structure, a packet data segment data structure, a hashed data segment data structure, a flag data structure, and a field data structure.
-
7. A method for processing packet data received from a physical layer as cited in claim 6, wherein the stored element takes the form of a flag to be stored in the lag data structure.
-
8. A method for processing packet data received from a physical layer as recited in claim 6, wherein the stored element takes the form of a pointer to be stored in he pointer data structure.
-
9. A method for processing packet data received from a physical layer as recited in claim 6, wherein the stored element takes the form of a compressed data to be stored in the hashed data segment data structure.
-
10. A method for processing packet data received from a physical layer as recited in claim 1, wherein the packet data processing is performed by a media access controller layer that communicates with a logic link control layer.
-
11. A method for processing packet data received from a physical layer as recited in claim 1, wherein the packet data together with the appended data structure are passed directly or indirectly to an application layer.
-
12. A method for processing packet data received from a physical layer as recited in claim 1, wherein the packet data together with the appended data structure are passed to one selected from the group consisting of logical link layer, a network layer, a transport layer, a session layer, a presentation layer and an application layer.
-
13. A method for processing packet data received from a lower layer, the processing being performed by a media access layer in-line while streaming packets to an upper layer, comprising:
-
(a) receiving a packet from the lower layer;
(b) examining packet data within the received packet at a first word location;
(c) storing an element indicative of information contained in the first word location into a data structure; and
(d) appending the data structure to the received packet before the packet is streamed to the upper layer;
(e) whereby the media access layer pre-processes the received packet in-line while streaming packets to an upper layer. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
(f) identifying a second word location in the packet data based on a result of the examination of the first identified word location and microcode instructions.
-
-
15. A method for processing packet data received from a lower layer as recited in claim 14, further comprising:
-
(g) examining the identified second word location in the packet data;
(h) storing a second element indicative of information contained in the identified second word location into the data structure; and
(i) appending the data structure containing the first stored element and the second stored element to the packet data before the packet data is streamed to the upper layer.
-
-
16. A method for processing packet data received from a lower layer as recited in claim 14, further comprising:
repeating (f) through (i) for additional word locations.
-
17. A method for processing packet data received from a lower layer as recited in claim 14, wherein the microcode instructions predetermine the data structure to be one selected from the group consisting of a pointer data structure, a packet parts data structure;
- a hashed packet parts data structure, a flag data structure and a field data structure.
-
18. A method for processing packet data received from a lower layer as recited in claim 17, wherein the element is a flag bit to be stored in the flag data structure.
-
19. A method for processing packet data received from a lower layer as recited in claim 17, wherein the element is a data part to be stored in the packet parts data structure.
-
20. A method for processing packet data received from a lower layer as recited in claim 17, wherein the element is a multi-bit combination to be stored in the field data structure.
-
21. A method for processing packet data received from a lower layer as recited in claim 17, wherein the element is a pointer to a header to be stored in the pointer data structure.
-
22. A method for processing packet data received from a lower layer as recited in claim 17, wherein the element is compressed data to be stored in the hashed packet parts data structure.
-
23. A method for processing packet data received from a lower layer as recited in claim 17, wherein the data structure is built in a register file before being appended to the received packet that is streamed to the upper layer.
-
24. A method for processing packet data received from a lower layer as recited in claim 13, wherein the packet data processing is performed by a media access controller layer that communicates with a logic link control layer.
-
25. A method for processing packet data received from a lower layer as recited in claim 13, wherein the packet data together with the appended data structure are passed directly or indirectly to an application layer.
-
26. A method for processing packet data received from a lower layer as recited in claim 13, wherein the packet data together with the appended data structure are passed to one selected from the group consisting of logical link layer, a network layer, a transport layer, a session layer, a presentation layer and an application layer.
-
27. A packet data processor for parsing received packet data in-line with streaming the packet data to an upper layer, comprising:
-
a memory configured to receive executable microcode defining a type of data structure to be built from the received packet data;
a pipeline register stage having a plurality of registers for sequentially receiving and temporarily storing words of the received packet data, each of the plurality of registers in the pipeline register stage being coupled to a pipeline multiplexor capable of reading a portion of the words temporarily stored in the pipeline register stage;
an analyzing computer configured to examine the received packet data output from the pipeline multiplexor, and storing a element of the received packet data generated by the analyzing computer into a register file; and
an execution logic unit configured to receive the executable microcode from the memory, the execution logic unit being designed to control the examination of the received packet by the analyzing computer. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. In a packet data processor for processing packet data in-line with the streaming of the packet data to a transmit media access controller that is configured to transmit the packet data over a network link, a method comprising:
-
identifying a packet to be transmitted over the network link;
generating a tag header;
generating a cyclic redundancy check header (CRC); and
appending the cyclic redundancy check header and the tag header to the packet that was identified to be transmitted over the network link before being streamed to the transmit media access controller, wherein at least one selected from a group consisting of identifying the packet, generating the tag header, generating the CRC header, and appending the CRC header is performed in-line while packet data is being streamed through the processor. - View Dependent Claims (45, 46, 47, 48)
replacing of media access control destination and source fields, the replacement being selectively performed to enable IP fowarding.
-
-
49. A method reconstructing packet data in-line with the streaming of the packet data to a physical media, comprising:
-
fragmenting an Ethernet packet into a plurality of sub-packets;
reassembling the plurality of sub-packets of the Ethernet packet into a plurality of ATM cells; and
appending an ATM header to each of the plurality of ATM cells before being streamed to the physical media, wherein at least one selected from a group consisting of fragmenting the Ethernet packet, reassembling the plurality of sub-packets of the Ethernet packet, appending the ATM header to each of the plurality of ATM cells is performed in-line while packet data is being streamed to the physical media. replacing of media access control destination and source fields, the replacement being selectively performed to enable IP forwarding. - View Dependent Claims (50, 51)
-
Specification