Juniper Networks Patent Applications

OPTIMIZING BATCH SIZE FOR PREFETCHING DATA OVER WIDE AREA NETWORKS

Granted: July 8, 2010
Application Number: 20100174823
A data prefetching technique optimizes the batch size of prefetch requests. The optimized batch size may be determined based on a prefetch transfer time of a previous prefetch operation, where the prefetch transfer time is measured as an elapsed time interval from when data from the previous prefetch operation is first received to when the data from the previous prefetch operation is finished being received;

FLEXIBLE QUEUE AND STREAM MAPPING SYSTEMS AND METHODS

Granted: July 8, 2010
Application Number: 20100172364
A system processes data corresponding to multiple data streams. The system includes multiple queues that store the data, stream-to-queue logic, dequeue logic, and queue-to-stream logic. Each of the queues is assigned to one of the streams based on a predefined queue-to-stream assignment. The stream-to-queue logic identifies which of the queues has data to be processed. The dequeue logic processes data in the identified queues. The queue-to-stream logic identifies which of the streams…

BANDWIDTH DIVISION FOR PACKET PROCESSING

Granted: July 1, 2010
Application Number: 20100165870
A bandwidth divider and method for allocating bandwidth between a plurality of packet processors. The bandwidth divider includes a plurality of counters for measuring the bandwidth of data packets transferred from the bandwidth divider to a respective packet processor; and a controller for analyzing the plurality of counters and transferring a data packet to a selected packet processor based on the contents of the counters. The method monitors the bandwidth consumed by the packet…

SYSTEMS AND METHODS FOR DETERMING THE BANDWIDTH USED BY A QUEUE

Granted: July 1, 2010
Application Number: 20100165871
A system determines bandwidth use by queues in a network device. To do this, the system determines an instantaneous amount of bandwidth used by each of the queues and an average amount of bandwidth used by each of the queues. The system then identifies bandwidth use by each of the queues based on the instantaneous bandwidth used and the average bandwidth used by each of the queues.

BINARY TREES FOR MULTICAST TRAFFIC

Granted: July 1, 2010
Application Number: 20100165989
A network device may include an input device and a packet forwarding engine. The input device receives a data packet. The packet forwarding engine includes logic configured to determine that the data packet is to be multicast. The logic is also configured to identify one of multiple forwarding schemes, where each of the forwarding schemes is configured such that the packet forwarding engine generates and forwards no more than two copies of the data packet.

SYSTEMS AND METHODS FOR EFFICIENT MULTICAST HANDLING

Granted: July 1, 2010
Application Number: 20100165990
A network device constructs a notification corresponding to a received multicast data unit, where the notification includes administrative data associated with the multicast data unit that does not include a payload of the multicast data unit. The network device replicates the notification at least three different processing elements at different locations in a processing path of the network device to produce multiple replicated data items and produces a copy of the multicast data unit…

ROUTING FRAMES IN A COMPUTER NETWORK USING BRIDGE IDENTIFIERS

Granted: July 1, 2010
Application Number: 20100165995
Methods, apparatus, and products for routing frames in a network using bridge identifiers, wherein the network includes a plurality of bridge nodes. At least one of the bridge nodes operates as an ingress bridge node through which frames are received into the network. At least one of the bridge nodes operates as an egress bridge node through which frames are transmitted out of the network. One of the bridge nodes receives, from the ingress bridge node, a frame for transmission to a…

DYNAMIC DISK THROTTLING IN A WIDE AREA NETWORK OPTIMIZATION DEVICE

Granted: July 1, 2010
Application Number: 20100169567
A network device may operate to increase application performance over a wide area network. In one particular implementation, the network device may monitor accesses to a disk drive from entities and determine whether an entity is accessing the disk drive in a manner that causes a disproportionate amount of performance degradation. If so, the network device may throttle access to the disk drive for the entity.

FLEXIBLE COUNTER UPDATE AND RETRIEVAL

Granted: July 1, 2010
Application Number: 20100169608
A network device includes one or more processing units and an external memory. Each of the one or more processing units includes a centralized counter configured to perform accounting for the respective processing unit. The external memory is associated with at least one of the one or more processing units and is configured to store a group of count values for the at least one processing unit.

USING A SERVER'S CAPABILITY PROFILE TO ESTABLISH A CONNECTION

Granted: June 24, 2010
Application Number: 20100161741
A network device connects between a client and a server. The network device is configured to store information regarding a capability of the server; receive a first message, from the client, intended for the server; obtain the stored information regarding the capability of the server; generate a second message that includes the information regarding the capability of the server; send the second message to the client; receive a third message from the client; and establish, based on the…

SYSTEM AND METHOD FOR FAST BRANCHING USING A PROGRAMMABLE BRANCH TABLE

Granted: June 24, 2010
Application Number: 20100161949
Methods and systems consistent with the present invention provide a programmable table which allows software to define a plurality of branching functions, each of which maps a vector of condition codes to a branch offset. This technique allows for a flexible multi-way branching functionality, using a conditional branch outcome table that can be specified by a programmer. Any instruction can specify the evaluation of arbitrary conditional expressions to compute the values for the…

END-POINT AWARE RESOURCE RESERVATION PROTOCOL PROXY

Granted: June 24, 2010
Application Number: 20100158034
A method performed by a first network device may include receiving a request for a resource from an end-point device and acknowledging the request for the resource to the end-point device. The method may also include receiving a resource coordination message from a second network device and transmitting a return resource coordination message to the second network device.

MULTI-PROTOCOL LABEL SWITCHING IN A NETWORK DEVICE

Granted: June 17, 2010
Application Number: 20100150159
A network device for processing data packets includes input logic, a register, route lookup logic and output processing logic. The input logic receives a data packet having at least one multi-protocol label switching (MPLS) tag, stores the packet and forwards a portion of the packet including the MPLS tag. The route lookup logic receives the portion of the packet, generates next hop information based on the MPLS tag and determines whether at least one MPLS tag is to be removed from the…

FLOW-BASED QUEUING OF NETWORK TRAFFIC

Granted: June 17, 2010
Application Number: 20100150164
A method is provided for queuing packets. A packet may be received and its flow identified. It may then be determined whether a flow queue has been assigned to the identified flow. The identified flow may be dynamically assigning to an available flow queue when it is determined that a flow queue has not been assigned to the identified flow. The packet may be enqueued into the available flow queue.

SERVER-TO-SERVER INTEGRITY CHECKING

Granted: June 17, 2010
Application Number: 20100153781
A method performed by a primary server includes receiving integrity criteria and sending a health check request to a secondary server based on the received integrity criteria. The method also includes receiving integrity information from the secondary server and checking the integrity information against the integrity criteria. The method further includes initiating a non-compliance action if the integrity information does not comply with the integrity criteria.

ORDERED SWITCHOVER OF CABLE MODEMS

Granted: June 3, 2010
Application Number: 20100135152
A cable modem termination system (CMTS) provides for ordered switchover of the cable modems it serves when a primary module of the CMTS fails. When the primary module in the CMTS fails, a backup module takes over service of the cable modems. The backup module restores the service flows of the cable modems based on a restoration order determined by session recovery priorities that are related to quality of service levels required by the service flows. In particular, service flows that are…

INTERFACING WITH STREAMS OF DIFFERING SPEEDS

Granted: June 3, 2010
Application Number: 20100138554
A system processes packet data received in a number of incoming streams of variable speeds. The system includes an input interface, input logic, and one or more packet processors. The input interface receives the packet data and outputs the data using a first arbitration element. The input logic includes flow control logic, a memory, and a dispatch unit. The flow control logic initiates flow control on the data output by the input interface. The memory stores the data from the input…

REDUCING CONTENT ADDRESSABLE MEMORY (CAM) POWER CONSUMPTION COUNTERS

Granted: June 3, 2010
Application Number: 20100138600
A method may include counting the number of times each of a plurality of entries in a content addressable memory (CAM) matches one or more searches; grouping entries in the CAM into a first subset and a second subset based on the number of times each of the plurality of entries in the CAM matches one or more searches; and searching the first subset for a matching entry and, if no matching entry is found, searching the second subset for the matching entry.

PROCESSING OF PARTIAL FRAMES AND PARTIAL SUPERFRAMES

Granted: May 27, 2010
Application Number: 20100128735
A system determines when to send out a partial data unit or when to complete a data unit before sending it. The system may identify a data unit, determine whether the data unit is a partial data unit, increase a partial count when the data unit is the partial data unit, determine whether the partial count is greater than a threshold, and fill a subsequent data unit with data to form a complete data unit when the partial count is greater than the threshold. The system may, alternatively…

CONTEXT-DEPENDENT SCHEDULING THROUGH THE USE OF ANTICIPATED GRANTS FOR BROADBAND COMMUNICATION SYSTEMS

Granted: May 27, 2010
Application Number: 20100128740
A method of scheduling upstream bandwidth. This method comprises: 1) anticipating the need for the upstream bandwidth in advance of any specific request for said upstream bandwidth; and 2) scheduling the upstream bandwidth in accordance with such need.