CA2385339C

Method and system for frame and protocol classification

Abstract

A system and method of frame protocol classification and processing in a system for data processing (e.g., switching or routing data packets or frames). The present invention includes analyzing a portion of the frame according to predetermined tests, then storing key characteristics of the packet for use in subsequent processing of the frame. The key characteristic s for the frame (or input information unit) include the type of layer 3 protoc ol used in the frame, the layer 2 encapsulation technique, the starting instruction address, flags indicating whether the frame uses a virtual local area network, and the identity of the data flow to which the frame belongs. Much of the analysis is preferably done using hardware so that it can be completed quickly and in a uniform time period. The stored characteristics o f the frame are then used by the network processing complex in its processing of the frame. The processor is preconditioned with a starting instruction addre ss 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. Additional instruction addresses can be stacked and used sequentially at branches to avoid additional tests and branching instructions. Additionally, frames comprising a data flow can be processed a nd forwarded in the same order in which they are received.

CA2385339C, drawing sheet 1
Sheet 1 of 25

Term

Term ended

Expired 21 December 2020, 5.8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

31 claims: 20 independent, 11 dependent

  1. 1
    WO 01/50259 PCT/GB00/04950 CA 02385339 2002-03-20 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 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 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.
  2. 2
    An apparatus of the type described in Claim 1 wherein the comparison unit includes a test for a virtual local area network field contained in the input information data and the generated output indicators include an indicator for identifying the presence of the virtual local area network field in the input information unit.
  3. 4
    An apparatus of the type described in Claim 1, 2 or 3 wherein the output indicators include indicators identifying the type of input information unit and its layer 2 encapsulation technique.
  4. 5
    An apparatus of the type described in Claim 1, 2, 3 or 4 wherein the indicators include a default code entry point.
  5. 6
    An apparatus of the type described in any one of claims 1 to 5 wherein the classifier includes a system for determining a code entry point based on the type of input information unit and its encapsulation technique as determined, by the classifier.
  6. 7
    An apparatus of the type described in any one of claims 1 to 6 wherein the classifier includes a system for determining a default code entry point and a code entry point based on the type of input information unit.
  7. 8
    An apparatus of the type described in Claim 7 wherein the apparatus further includes a selector for selecting from the default code entry point and the code entry point based on the type of input information unit.
  8. 10
    An apparatus of the type set forth in any of claims 1 to 9 further wherein the indicators further include the identity of the one of the N processing units to which the input information unit was assigned.
  9. 13
    An apparatus of the type set forth in any of claims 1 to 12 wherein the dispatch unit further stores sequentially in a queue an identifier for each information unit and the identity of the processing unit to which the information unit was dispatched for processing;and wherein the completion unit is further coupled to the sequential queue and utilizes the identifier for each information unit assigned by the dispatcher and the identity of the processing unit to which the information unit was dispatched in order to assemble the processed information units in the same order in which the information units were received.
  10. 15
    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;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 WO 01/50259 PCT/GB00/04950 CA 02385339 2002-03-20 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.
  11. 20
    A method of processing information units of the type described in Claim 19 wherein the step of testing and storing indicators for an input information unit overlaps with the step of receiving the input information unit from the dispatcher at one of the plurality of processing units.. WO 01/50259 PCT/GB00/04950 CA 02385339 2002-03-20
  12. 21
    A method including the steps of any of claims 15 to 20 and further including the steps of:generating and storing an identifier for the input information unit;storing in association with the identifier the identity of the processing unit to which the information unit was assigned;and using the identifier and the identity of the processing unit to which the information unit was assigned to transmit processed information units in the order in which they were received.
  13. 23
    A method of processing information units of the type described in Claim 22 where the system responds to a frame with a no label flag by passing the frame to the network without further storage.
  14. 24
    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;determining and storing the location of a level 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. CA 02385339 2005-01-26 RAL990128
  15. 26
    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 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 frame by the processing units, the classification device including: logic to determine the encapsulation technique based on a portion of the frame;logic to determine the presence of a virtual local area network information in the frame;and an output for each packet including the type of encapsulation and the starting address for further processing.
  16. 27
    An apparatus of the type described in Claim 26 wherein the classification device is embodied in hardware without a stored program.
  17. 28
    An apparatus of the type described in Claim 26 wherein the classification occurs in two cycles so that further processing of the packet CA 02385339 2005-01-26 RAL990128 by one of the processing units can begin within two cycles after the packet is dispatched by the dispatching unit.
  18. 29
    An apparatus of the type described in Claim 26 wherein the starting address is determined by generating a default starting address from the packet and using that default address as the starting address for processing the packet unless a different starting address is stored for the encapsulation method and protocol determine by the classification system.
  19. 30
    An apparatus of the type described in Claim 26 wherein the apparatus further includes a handling system for processing new information units which were not received from the network, the handling system putting a symbol on new information units that indicates that such new information units were not received from the network.
  20. 31
    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, rhe apparatus comprising:a comparator for looking at predetermined bytes of the frame and determining if those bytes indicate a length or a protocol;logic for determining the protocol and encapsulation system for the frame ;using the protocol and encapsula.tion system to determine a starting location for processing the frame and a pointer to the initial instruction for processing the frame.
Independent claims20