Patent application number | Description | Published |
20120127818 | SHARING ACCESS TO A MEMORY AMONG CLIENTS - In a memory device having a set of memory banks to store content data, at least two requests to perform respective memory operations in a first memory bank are received during a single clock cycle. One or more of the at least two requests is blocked from accessing the first memory bank, and in response: redundancy data associated with the first memory bank and different from content data stored therein is accessed, and, without accessing the first memory bank, at least a portion of the content data stored in the first memory bank is reconstructed based on the associated redundancy data. A first memory operation is performed using the content data stored in the first memory bank, and a second memory operation is performed using content data reconstructed i) without accessing the first memory bank and ii) based on the associated redundancy data. | 05-24-2012 |
20130185343 | SPACE EFFICIENT COUNTERS IN NETWORK DEVICES - A network device includes a memory and a counter update logic module. The memory is configured to store a plurality of bits. The counter update logic module is configured to estimate a count of quanta within a plurality of data units in a data flow based on statistical sampling of the plurality of data units, and to store the estimated count of quanta in the memory as m mantissa bits and e exponent bits. Them mantissa bits represent a mantissa value M and the e exponent bits represent an exponent value E. | 07-18-2013 |
20140006545 | Systems and Methods for Providing Replicated Data from Memories to Processing Clients | 01-02-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 |
20140215144 | ARCHITECTURE FOR TCAM SHARING - Aspects of the disclosure provide a packet processing system. The packet processing system includes a plurality of processing units, a ternary content addressable memory (TCAM) engine, and an interface. The plurality of processing units is configured to process packets received from a computer network, and to perform an action on a received packet. The action is determined responsively to a lookup in a table of rules to determine a rule to be applied to the received packet. The TCAM engine has a plurality of TCAM banks defining respective subsets of a TCAM memory space to store the rules. The interface is configured to selectably associate the TCAM banks to the processing units. The association is configurable to allocate the subsets of the TCAM memory space to groups of the processing units to share the TCAM memory space by the processing units. | 07-31-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 |
20140286351 | CUT-THROUGH PROCESSING FOR SLOW AND FAST PORTS - In a method for processing network packets, a network packet is received at an ingress port. After at least a first portion of the network packet has been received, but before the network packet has been completely received, a first data structure representing the network packet is generated based on the first portion, the first data structure is processed, and the network packet begins to be selectively forwarded to a first one or more egress ports, or selectively not forwarded to any egress port, responsively to processing the first data structure. A second data structure representing the network packet is generated and, after the network packet has been completely received, the second data structure is processed, and the network packet is selectively forwarded to a second one or more egress ports, different from the first one or more egress ports, responsively to processing the second data structure. | 09-25-2014 |
20140286352 | CUT-THROUGH PROCESSING FOR SLOW AND FAST PORTS - In a method for processing network packets, a network packet is received at an ingress port. Before the network packet has been completely received at the ingress port, a first data structure representing the network packet is generated based on a received first portion of the network packet, and the first data structure is processed at a packet processor of the network device. Processing the first data structure includes making a forwarding decision for the network packet. A second data structure representing the network packet is generated and, after the network packet has been completely received at the ingress port, at least one or more non-forwarding operations are performed with respect to the network packet using at least the second data structure. | 09-25-2014 |
20140301394 | EXACT MATCH HASH LOOKUP DATABASES IN NETWORK SWITCH DEVICES - In a method for forwarding packets in a network device a plurality of hash values is generated based on a lookup key. The plurality of hash values includes at least a first hash value generated using a first hash function, a second hash value generated using a second hash function and a third hash value generated using a third hash function. The third hash function is different from the first hash function and the second hash function. A lookup table is searched using the first hash value and the second hash value to determine an offset for the lookup key. Then, a forwarding table is searched using the third hash value and the offset determined for the lookup key to select a forwarding entry corresponding to the lookup key. The packet is forwarded to one or more ports of the network device based on the selected forwarding entry. | 10-09-2014 |
20140307737 | Exact Match Lookup with Variable Key Sizes - In a method for populating an exact match lookup table in a network device, a lookup key to be stored in a database of the network device is determined. The database is distributed among two or more memory banks. At least based on a size of the lookup key, (i) a first memory bank from among the two or more memory banks, and (ii) a hash function from among a plurality of possible hash functions, are selected. A hash operation is performed on the lookup key using the selected hash function to compute a first hashed lookup key segment. The first hashed lookup key segment is stored in the selected first memory bank, and one or more hashed lookup key segments corresponding to the lookup key are stored in one or more subsequent memory banks of the two or more memory banks. | 10-16-2014 |
20140310307 | Exact Match Lookup with Variable Key Sizes - In a method for performing an exact match lookup in a network device, a network packet is received at the network device. A lookup key for the network packet is determined at least based on data included in a header of the received network packet. A hash function is selected, from among a plurality of possible hash functions, at least based on a size of the lookup key, and a hash operation is performed on the lookup key using the selected hash function to compute a hashed lookup key segment. A database is queried using the hashed lookup key segment to extract a value exactly corresponding to the lookup key. | 10-16-2014 |
20140328196 | TIME EFFICIENT COUNTERS AND METERS ARCHITECTURE - A network device includes a plurality of interfaces configured to receive, from a network, packets to be processed by the network device. A load determination circuit of the network device is configured to determine whether a packet traffic load of the network device is above a traffic load threshold, and a dual-mode counter module is configured to (i) determine a count of quanta associated with the received packets using a first counting mode in response to the load determination unit determining that the packet traffic load is above the traffic load threshold, and (ii) determine a count of quanta associated with the received packets using a second counting mode, different than the first counting mode, in response to the load determination unit determining that the packet traffic load is not above the traffic load threshold. | 11-06-2014 |