Patent application number | Description | Published |
20120134266 | LOAD BALANCING HASH COMPUTATION FOR NETWORK SWITCHES - Techniques to load balance traffic in a network device or switch include a network device or switch having a first interface to receive a data unit or packet, a second interface to transmit the packet, and a mapper to map between virtual ports and physical ports. The network device includes hash value generator configured to generate a hash value based on information included in the packet and based on at least one virtual port. The hash value may be optionally modified to load balance egress traffic of the network device. The network device selects a particular virtual port for egress of the packet, such as by determining an index into an egress table based on the (modified) hash value. The packet is transmitted from the network device using a physical port mapped to the particular virtual port. | 05-31-2012 |
20120134497 | LOAD BALANCING HASH COMPUTATION FOR NETWORK SWITCHES - Techniques to load balance traffic in a communication network include a network switch or device having an interface to receive a data unit or packet. The network device includes a hash value generator configured to generate a symmetric key from an initial key that is based on the packet, and configured to generate a hash value based on the symmetric key and the packet. The hash value may be optionally modified to load balance egress traffic of the network device. The network device selects an egress link or port, such as by determining an index into an egress table based on the (modified) hash value. The techniques described herein allow packets or data units of a particular flow to travel in both directions along a same path through the communication network. | 05-31-2012 |
20120136999 | LOAD BALANCING HASH COMPUTATION FOR NETWORK SWITCHES - Techniques to avoid polarization in a communication network include a network switch or device having a first interface to receive a data unit or packet, and a second interface via which the packet is transmitted from the network device. The network device includes a hash value generator configured to generate, using a depolarizer, a depolarized key from an initial key (where the initial key is based on contents of the packet and the depolarizer is unique to the network device), and to generate a hash value based on the depolarized key and the packet by using a hash function that is common to all network devices in the network. The hash value may be optionally modified to load balance egress traffic of the network device. The network device selects an egress link or port, such as by determining an index into an egress table based on the (modified) hash value. | 05-31-2012 |
20120177047 | NETWORK DEVICE WITH A PROGRAMMABLE CORE - In network device, a plurality of ports is configured to receive and to transmit packets on a network. A packet processing pipeline includes a plurality of hardware stages, wherein at least one hardware stage is configured to output a data structure comprising a field extracted from a received packet based on a first packet processing operation performed on the packet or the data structure, wherein the data structure is associated with the packet. A configurable processor is coupled to the at least one hardware stage of the packet processing pipeline. The configurable processor is configured to modify the field in the data structure to generate a modified data structure and to pass the modified data structure to a subsequent hardware stage that is configured to perform a second packet processing operation on the data structure using the field modified by the configurable processor. | 07-12-2012 |
20140115167 | Load Balancing Hash Computation for Networks - A data unit is received at a network device associated with a link aggregate group. An initial key is determined based on information included in the data unit. Another key is generated based on a first field of the initial key and a second field of the initial key. A hash function is applied to the other key to generate a hash value. A communication link in the link aggregate group is determined based on the hash value, and the data unit is transmitted over the communication link. | 04-24-2014 |
20140160934 | LOAD BALANCING HASH COMPUTATION FOR NETWORK SWITCHES - Techniques to load balance traffic in a network device or switch include a network device or switch having a first interface to receive a data unit or packet, a second interface to transmit the packet, and a mapper to map between virtual ports and physical ports. The network device includes hash value generator configured to generate a hash value based on information included in the packet and based on at least one virtual port. The hash value may be optionally modified to load balance egress traffic of the network device. The network device selects a particular virtual port for egress of the packet, such as by determining an index into an egress table based on the (modified) hash value. The packet is transmitted from the network device using a physical port mapped to the particular virtual port. | 06-12-2014 |
20140169378 | MAINTAINING PACKET ORDER IN A PARALLEL PROCESSING NETWORK DEVICE - A plurality of packets are received by a packet processing device, and the packets are distributed among two or more packet processing node elements for processing of the packets. The packets are assigned to respective packet classes, each class corresponding to a group of packets for which an order in which the packets were received is to be preserved. The packets are queued in respective queues corresponding to the assigned packet classes and according to an order in which the packets were received by the packet processing device. The packet processing node elements issue respective instructions indicative of processing actions to be performed with respect to the packets, and indications of at least some of the processing actions are stored. A processing action with respect to a packet is performed when the packet has reached a head of a queue corresponding to the class associated with the packet. | 06-19-2014 |
20140177470 | Memory Sharing in a Network Device - A network device includes processor devices configured to perform packet processing functions, and a shared memory system including multiple memory blocks. A memory connectivity network couples the processor devices to the shared memory system. A configuration unit configures the memory connectivity network so that processor devices are provided access to respective sets of memory blocks. | 06-26-2014 |
20140192815 | MAINTAINING PACKET ORDER IN A PARALLEL PROCESSING NETWORK DEVICE - A plurality of packets that belong to a data flow are received and are distributed to two or more packet processing elements, wherein a packet is sent to a first packet processing element. A first instance of the packet is queued at a first packet processing element according to an order of the packet within the data flow. The first instance of the packet is caused to be transmitted when processing of the first instance is completed and the first instance of the packet is at a head of a queue at the first ordering unit. A second instance of the packet is queued at a second ordering unit. The second instance of the packet is caused to be transmitted when processing of the second instance is completed and the second instance of the packet is at a head of a queue at the second ordering unit. | 07-10-2014 |
20140244779 | Efficient Longest Prefix Matching Techniques for Network Devices - A network address associated with a packet is obtained at a search engine of a network device. The search engine includes a plurality of Bloom filters that represent prefixes of respective lengths in the routing table. Respective Bloom filters are applied to respective prefixes of the network address to determine a set of one or more prefixes for which a match potentially exists in the routing table. A number of accesses to the memory are performed using prefixes in set of prefixes, beginning with a longest prefix and continuing in decreasing order of prefix lengths until a matching entry is found in the routing table, and routing information for the packet is retrieved. If the number of performed memory accesses exceeds a threshold, the routing table is adapted to reduce a number of memory accesses to be performed for subsequent packets associated with the network address. | 08-28-2014 |
20140325228 | LOAD BALANCING HASH COMPUTATION FOR NETWORK SWITCHES - Techniques to avoid polarization in a communication network include a network switch or device having a first interface to receive a data unit or packet, and a second interface via which the packet is transmitted from the network device. The network device includes a hash value generator configured to generate, using a depolarizer, a depolarized key from an initial key (where the initial key is based on contents of the packet and the depolarizer is unique to the network device), and to generate a hash value based on the depolarized key and the packet by using a hash function that is common to all network devices in the network. The hash value may be optionally modified to load balance egress traffic of the network device. The network device selects an egress link or port, such as by determining an index into an egress table based on the (modified) hash value. | 10-30-2014 |