Use of code vectors for frame forwarding in a bridge/router
First Claim
1. A network bridge/router, having plural input and output ports, for analyzing a received data unit and for generating plural code vectors used in the selective processing of said received data unit, said bridge/router comprising:
- a data unit processor comprising input data registers for receiving source and destination address information, protocol identification, and reception error data relevant to said received data unit, port configuration registers for providing control data with respect to each of said plural ports, plural data analysis state machines in communication with said input data registers and said port configuration registers for generating intermediate representations of said received data unit, plural vector generator state machines for generating code vectors used in addressing microcode data unit processing routines, and a memory for storing an enable table associated with each of said code vectors and providing an indication of whether the received data unit is to be forwarded through said bridge/router via bridge/router hardware or via software executed by a bridge/router processing unit, wherein said vector generator state machines execute said microcode data unit processing routines to generate at least one of plural dispatch vectors defining the further processing of said received data unit.
7 Assignments
0 Petitions
Accused Products
Abstract
A Receive Frame Processor (RFP) in a network bridge/router for receiving frame-characterizing information from other elements of the bridge/router and for generating plural code vectors which result in the selective processing of a received frame in software and/or hardware is provided. The received information is utilized in constructing code vectors representative of how a received frame is to be processed. Further data structures stored in conjunction with the RFP are indexed by the constructed code vectors and indicate whether the frame is to be processed in the RFP hardware, by software in an associated Frame Processor, or both. These data structures also indicate whether the port through which the frame was received is to be blocked to prevent misordering of received frames. If the frame is to be processed in software, the RFP generates a Receive Vector which is provided to the FP and which conveys the frame-characterizing code vectors to the FP. If the frame is to be processed in hardware by the RFP, a Transmit Vector is generated which contains information such as a mask of which transmit ports are to be utilized for forwarding the received frame, and information necessary for reconstructing a header for the received frame, including which encapsulation format is to be utilized for the frame.
185 Citations
21 Claims
-
1. A network bridge/router, having plural input and output ports, for analyzing a received data unit and for generating plural code vectors used in the selective processing of said received data unit, said bridge/router comprising:
-
a data unit processor comprising input data registers for receiving source and destination address information, protocol identification, and reception error data relevant to said received data unit, port configuration registers for providing control data with respect to each of said plural ports, plural data analysis state machines in communication with said input data registers and said port configuration registers for generating intermediate representations of said received data unit, plural vector generator state machines for generating code vectors used in addressing microcode data unit processing routines, and a memory for storing an enable table associated with each of said code vectors and providing an indication of whether the received data unit is to be forwarded through said bridge/router via bridge/router hardware or via software executed by a bridge/router processing unit, wherein said vector generator state machines execute said microcode data unit processing routines to generate at least one of plural dispatch vectors defining the further processing of said received data unit. - View Dependent Claims (2)
-
-
3. A network element for processing a received data unit, said network element comprising:
-
a first storage element for retaining said received data unit;
a second storage element for retaining received data unit characterizing information, said received data unit characterizing information selected from the group consisting of source and destination address information, protocol identification, and reception error data relevant to said received data unit;
plural preprocessing elements in communication with said second storage element, each providing logic responsive to at least a portion of said received data unit characterizing information and for providing an intermediate representation thereof;
a data unit forwarding engine in communication with said plural preprocessing elements for receiving said intermediate representations of said received data unit characterizing information and for generating an exception status code vector in response thereto; and
a third storage element for retaining hardware processing enable tables associated with said data unit forwarding engine and indexable by said exception status code vectors, said hardware processing enable tables providing an indication of whether a respective received data unit is to be forwarded in hardware by said network element and/or by software executed by a processor unit associated with said network element. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification