Stochastic circuit identification in a multi-protocol network switch
First Claim
1. A network switch, comprising:
- a port for access to a communication medium to receive incoming frames having particular frame formats;
route table memory having a set of accessible locations for storing routing information, the set of accessible locations being addressable in response to N bits, and locations in the set storing a tag comprising M bits for identifying a network flow, and storing routing information for the network flow;
flow detect logic, coupled with the port, which monitors frames received by the port and generates an N bit address and an identifying tag comprising M bits for use in accessing the route table memory in response to the particular frame format of an incoming frame; and
match logic, coupled with the route table memory and the flow detect logic, which accesses a particular location in the set of accessible locations in the route table memory in response to the N bit address, compares the identifying tag with the tag stored in the particular location to determine whether the incoming frame matches the network flow identified by the stored tag, and supplies the routing information stored in the particular location if a match occurs, else signals a route table miss.
7 Assignments
0 Petitions
Accused Products
Abstract
A flow based network switch function is based on a route cache and flow detect logic which generates hash codes for use in accessing the route cache. Flow detect logic is implemented with read-write register functions. A network switch which comprises a port for access to a communication medium to receive incoming frames. A route table memory has a set of accessible locations for storing routing information. The set of accessible locations is addressable in response to N bits, and locations in the set store a tag comprising M bits for identifying a network flow. Routing information is also stored in each of the accessible locations for the identified network flow. Flow detect logic is coupled with a port and monitors frames received by the port generate and N bit address, and an identifying tag comprising M bits for use in accessing the route table memory in response to an incoming frame on the port. Match logic is coupled with the route table memory and the flow detect logic, which accesses a particular location in the set of accessible locations in the route table memory in response to the N bit address, compares the identifying tag with the tag stored in the particular location to determine whether the incoming frame matches the network flow identified by the stored tag, and supplies the routing information for level 3 or higher stored in the particular location if a match occurs. If a match does not occur, a route table miss is indicated, and the frame is forwarded to multi-protocol routing algorithms for the purpose of generating the routing information for the incoming frame.
89 Citations
20 Claims
-
1. A network switch, comprising:
-
a port for access to a communication medium to receive incoming frames having particular frame formats; route table memory having a set of accessible locations for storing routing information, the set of accessible locations being addressable in response to N bits, and locations in the set storing a tag comprising M bits for identifying a network flow, and storing routing information for the network flow; flow detect logic, coupled with the port, which monitors frames received by the port and generates an N bit address and an identifying tag comprising M bits for use in accessing the route table memory in response to the particular frame format of an incoming frame; and match logic, coupled with the route table memory and the flow detect logic, which accesses a particular location in the set of accessible locations in the route table memory in response to the N bit address, compares the identifying tag with the tag stored in the particular location to determine whether the incoming frame matches the network flow identified by the stored tag, and supplies the routing information stored in the particular location if a match occurs, else signals a route table miss. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A network switch comprising:
-
a port for access to a communication medium to receive incoming frames; route table memory having a set of accessible locations for storing routing information, the set of accessible locations being addressable in response to N bits, and locations in the set storing a tag comprising M bits for identifying a network flow, and storing routing information for the network flow; flow detect logic coupled with the port, which monitors frames received by the port and generates an N bit address and an identifying tag comprising M bits for use in accessing the route table memory in response to an incoming frame; match logic, coupled with the route table memory and the flow detect logic, which accesses a particular location in the set of accessible locations in the route table memory in response to the N bit address, compares the identifying tag with the tag stored in the particular location to determine whether the incoming frame matches the network flow identified by the stored tag, and supplies the routing information stored in the particular location if a match occurs, else signals a route table miss, a plurality of flow detect filters, the flow detect filters including respectively a template register which stores a mask for a particular network frame format, and logic applying the mask to the incoming frame to generate a hash seed value from the incoming frame, and a pseudo random number generator responsive to the hash seed which generates a hash; and a selector, coupled with the plurality of flow detect filters, which selects a hash from the plurality of flow detect filters as the hash value, and applies N bits of the hash value as the N bit address, and M bits of the hash value as the identifying tag for the match logic. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A network switch, comprising:
-
a port for access to a communication medium to receive incoming frames having a data link layer format and a network layer format; route table memory having a set of accessible locations for storing routing information, the set of accessible locations being addressable in response to N bits, and locations in the set storing a tag comprising M bits for identifying a network flow, and storing network layer routing information for the network flow; a plurality of flow detect filters, the flow detect filters including respectively a read/write template register which stores a mask for a particular network frame format, and logic applying the mask to the incoming frame to generate a hash seed value from the incoming frame, and a pseudo random number generator responsive to the hash seed which generates a hash; a selector, coupled with the plurality of flow detect filters, which selects a hash from the plurality of flow detect filters as a hash value, and applies N bits of the hash value as an N bit address, and M bits of the hash value as an identifying tag for use in accessing the route table memory in response to an incoming frame; and match logic, coupled with the route table memory and the flow detect logic, which accesses a particular location in the set of accessible locations in the route table memory in response to the N bit address, compares the identifying tag with the tag stored in the particular location to determine whether the incoming frame matches the network flow identified by the stored tag, and supplies the routing information stored in the particular location if a match occurs, else signals a route table miss. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A network switch, comprising:
-
a port for access to a communication medium to receive incoming frames having a data link layer format and a network layer format; route table memory having a set of accessible locations for storing routing information, the set of accessible locations being addressable in response to N bits, and locations in the set storing a tag comprising M bits for identifying a network flow, and storing network layer routing information for the network flow; a plurality of flow detect filters, the flow detect filters including respectively a read/write template register which stores a mask for a particular network frame format, logic applying the mask to the incoming frame to generate a hash seed value from the incoming frame, a read/write protocol filter register which stores a protocol filter identifying a protocol for which the template register is adapted, mask enable logic responsive to the protocol filter which enables the logic applying the mask in response to processing the incoming frame with the protocol filter, a pseudo random number generator responsive to the hash seed which generates a hash, and a read/write protocol hierarchy register which stores a protocol hierarchy value identifying a priority for the protocol for which the template register is adapted; a selector, coupled with the plurality of flow detect filters, which selects a hash from the plurality of flow detect filters as a hash value in response to the protocol hierarchy values, and applies N bits of the hash value as an N bit address, and M bits of the hash value as an identifying tag for use in accessing the route table memory in response to an incoming frame, where M plus N is 32 or greater; and match logic, coupled with the route table memory and the flow detect logic, which accesses a particular location in the set of accessible locations in the route table memory in response to the N bit address, compares the identifying tag with the tag stored in the particular location to determine whether the incoming frame matches the network flow identified by the stored tag, and supplies the routing information stored in the particular location if a match occurs, else signals a route table miss. - View Dependent Claims (20)
-
Specification