Method and system for frame and protocol classification
First Claim
1. An apparatus comprising:
- a semiconductor substrate;
N processing units fabricated on the substrate, where N>
1;
first internal data memory fabricated on said substrate, said data memory for storing information accessible to said N processing units;
a dispatcher fabricated on the semiconductor substrate and operatively coupled to the N processing units for receiving and transmitting to one of the N processing units an input information unit;
a classifier coupled to the dispatcher, said classifier fabricated on the semiconductor substrate and including a comparison unit for determining a data format for an input information unit and for generating and storing in the internal data memory output indicators for the input information unit output indicators indicating the data format of the input information unit and a starting address for the input information unit, indicators and the starting address which are available to the one of the N processing units during its processing the input information unit and used in the processing of the input information unit; and
a completion unit carried on the semiconductor substrate and operatively connected to the N processing units for receiving the information unit processed by the one of the N processing units.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method of protocol and frame classification in a system for data processing (e.g., switching or routing data packets or frames). The present invention includes analyzing a portion of the packet or frame according to predetermined tests, then storing key characteristics of the packet for use in subsequent processing of the frame. The key characteristics for the frame (or input information unit, such as the type of layer 3 protocol used in the frame, the layer 2 encapsulation technique, the starting instruction address and flags indicating whether the frame uses a virtual local area network, preferably using hardware to quickly and in a uniform time period. The stored key characteristics of the packet are then used by the network processing complexes in its further processing of the frame. The processor is preconditioned with a starting instruction address and the location of the beginning of the layer 3 header as well as flags for the type of frame. That is, the instruction address or code entry point is used by the processor to start processing for a frame at the right place, based on the type of frame. Additionally, additional instruction addresses can be stacked and used sequentially at branches to avoid additional tests and branching instructions.
159 Citations
25 Claims
-
1. An apparatus comprising:
-
a semiconductor substrate;
N processing units fabricated on the substrate, where N>
1;
first internal data memory fabricated on said substrate, said data memory for storing information accessible to said N processing units;
a dispatcher fabricated on the semiconductor substrate and operatively coupled to the N processing units for receiving and transmitting to one of the N processing units an input information unit;
a classifier coupled to the dispatcher, said classifier fabricated on the semiconductor substrate and including a comparison unit for determining a data format for an input information unit and for generating and storing in the internal data memory output indicators for the input information unit output indicators indicating the data format of the input information unit and a starting address for the input information unit, indicators and the starting address which are available to the one of the N processing units during its processing the input information unit and used in the processing of the input information unit; and
a completion unit carried on the semiconductor substrate and operatively connected to the N processing units for receiving the information unit processed by the one of the N processing units. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of processing an input information unit comprising the steps of:
-
receiving the input information unit at a dispatcher;
sending the input information unit from the dispatcher to one of a plurality of processors for processing;
reading selected bits from the input information unit while the information unit is being sent from the dispatcher to the one of the plurality of processors without using a plurality of look-up tables and concatenated classification keys;
testing the read bits from the input information unit against known indicators identifying predetermined types of input information units to identify the type and protocol of the input information unit or that the input information unit does not meet any predetermined identifying type of input information unit; and
based on the results of the testing of bits from the input information unit, storing indicators of the type of input information unit and other information about that input information unit; and
using at the one of a plurality of processing units the stored indicators and the other stored information about the input information unit in the processing of the input information unit. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method of identifying an input frame and providing indicators relating to that frame for further processing of the frame, the steps of the method comprising:
-
determining from the input frame a type of encapsulation and a protocol type by comparing a section of the input frame with a predetermined content indicative of a type of encapsulation and a protocol type;
generating and storing with respect to each input frame indicators of the type of encapsulation and the protocol type for that input frame without using a plurality of look-up tables and concatenated classification keys;
determining and storing the location of a layer 3 header for the input frame; and
determining and storing a beginning point for further processing of the input frame, based on the determined type of protocol and encapsulation method, whereby said location and beginning point may be used in further processing of the input frame. - View Dependent Claims (17)
-
-
18. A device for receiving from a network and processing data packets of varying formats comprising:
-
a plurality of processors, each operating independent of the other, for processing a data packets and providing an output data packet which is based on the input data packet;
a dispatch unit connected to the processors for receiving a data packet from the network and assigning the packet to one of the plurality of independent processors;
a classification device connected to the dispatch unit for receiving the packet and determining its protocol and encapsulation technique as well as a starting address for further processing of the packet by the processing units, the classification device including;
logic to determine the encapsulation technique based on a portion of the packet without using a plurality of look-up tables and concatenated classification keys;
logic to determine the presence of a virtual local area network information in the packet; and
an output for each packet including the type of encapsulation and the starting address for further processing. - View Dependent Claims (19, 20, 21)
-
-
22. An apparatus for analyzing a frame of information having a variable protocol and encapsulation and for providing a starting location for processing that frame and a pointer to the initial instruction for processing that frame, the apparatus comprising:
-
a comparator for looking at predetermined bytes of the frame and determining if those bytes indicate a length or a protocol without using a plurality of look-up tables and without classification keys being concatenated;
logic for determining the protocol and encapsulation system for the frame;
using the protocol and encapsulation system to determine a starting location for processing the frame and a pointer to the initial instruction for processing the frame.
-
-
23. A method of processing an input information unit comprising the steps of:
-
receiving the input information unit at a dispatcher;
sending the input information unit from the dispatcher to one of a plurality of processors for processing;
reading in hardware selected bits from the input information unit while the information unit is being sent from the dispatcher to the one of the plurality of processors;
testing in hardware the read bits from the input information unit against known indicators identifying predetermined types of input information units to identify the type and protocol of the input information unit or that the input information unit does not meet any predetermined identifying type of input information unit within two machine cycles, whereby the process of reading and testing is accomplished in fewer processing cycles than if the reading and testing was accomplished by executing a series of stored programmed instructions in sequence; and
based on the results of the testing of bits from the input information unit, storing indicators of the type of input information unit and other information about that input information unit; and
using at the one of a plurality of processing units the stored indicators and the other stored information about the input information unit in the processing of the input information unit. - View Dependent Claims (24)
-
-
25. A device for receiving from a network and processing data packets of varying formats comprising:
-
a plurality of processors, each operating independent of the other, for processing a data packets and providing an output data packet which is based on the input data packet;
a dispatch unit connected to the processors for receiving a data packet from the network and assigning the packet to one of the plurality of independent processors;
a classification device connected to the dispatch unit for receiving the packet and determining its protocol and encapsulation technique within two cycles so that further processing of the frame by one of the processing units can begin within two cycles after the packet is dispatched by the dispatching unit as well as a starting address for further processing of the packet by the processing units, the classification device including;
logic to determine the encapsulation technique based on a portion of the packet logic to determine the presence of a virtual local area network information in the packet; and
an output for each packet including the type of encapsulation and the starting address for further processing.
-
Specification