Patents by Inventor Craig R. Frink

Craig R. Frink has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11902827
    Abstract: A network device may receive packets and may calculate, during a time interval, an arrival rate and a departure rate, of the packets, at one of multiple virtual output queues. The network device may calculate a current oversubscription factor based on the arrival rate and the departure rate, and may calculate a target oversubscription factor based on an average of previous oversubscription factors associated with the multiple virtual output queues. The network device may determine whether a difference exists between the target oversubscription factor and the current oversubscription factor and may calculate, when the difference exists, a scale factor based on the current oversubscription factor and the target oversubscription factor. The network device may calculate new scheduling weights based on prior scheduling weights and the scale factor, and may process packets received by the multiple virtual output queues based on the new scheduling weights.
    Type: Grant
    Filed: December 13, 2022
    Date of Patent: February 13, 2024
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Anurag P. Gupta, Harshad B. Agashe, Weidong Xu
  • Patent number: 11784925
    Abstract: An apparatus for switching network traffic includes an ingress packet forwarding engine and an egress packet forwarding engine. The ingress packet forwarding engine is configured to determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet and enqueue the network packet in a virtual output queue. The egress packet forwarding engine is configured to output, in response to a first scheduling event and to the ingress packet forwarding engine, information indicating the network packet in the virtual output queue and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine. The ingress packet forwarding engine is further configured to dequeue, in response to receiving the information, the network packet from the virtual output queue and enqueue the network packet to the output queue.
    Type: Grant
    Filed: December 22, 2021
    Date of Patent: October 10, 2023
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Weidong Xu, Anurag P. Gupta, Harshad B Agashe
  • Publication number: 20230110668
    Abstract: A network device may receive packets and may calculate, during a time interval, an arrival rate and a departure rate, of the packets, at one of multiple virtual output queues. The network device may calculate a current oversubscription factor based on the arrival rate and the departure rate, and may calculate a target oversubscription factor based on an average of previous oversubscription factors associated with the multiple virtual output queues. The network device may determine whether a difference exists between the target oversubscription factor and the current oversubscription factor and may calculate, when the difference exists, a scale factor based on the current oversubscription factor and the target oversubscription factor. The network device may calculate new scheduling weights based on prior scheduling weights and the scale factor, and may process packets received by the multiple virtual output queues based on the new scheduling weights.
    Type: Application
    Filed: December 13, 2022
    Publication date: April 13, 2023
    Inventors: Craig R. FRINK, Anurag P. GUPTA, Harshad B. AGASHE, Weidong XU
  • Patent number: 11558775
    Abstract: A network device may receive packets and may calculate, during a time interval, an arrival rate and a departure rate, of the packets, at one of multiple virtual output queues. The network device may calculate a current oversubscription factor based on the arrival rate and the departure rate, and may calculate a target oversubscription factor based on an average of previous oversubscription factors associated with the multiple virtual output queues. The network device may determine whether a difference exists between the target oversubscription factor and the current oversubscription factor and may calculate, when the difference exists, a scale factor based on the current oversubscription factor and the target oversubscription factor. The network device may calculate new scheduling weights based on prior scheduling weights and the scale factor, and may process packets received by the multiple virtual output queues based on the new scheduling weights.
    Type: Grant
    Filed: February 16, 2021
    Date of Patent: January 17, 2023
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Anurag P. Gupta, Harshad B. Agashe, Weidong Xu
  • Patent number: 11509590
    Abstract: A network device may receive one or more packets, and may determine a flow control parameter, a rate limiting parameter, and a statistical sampling parameter associated with a slow counter. The network device may determine whether the flow control parameter satisfies a first threshold, whether the rate limiting parameter satisfies a second threshold, and whether the statistical sampling parameter satisfies a third threshold. The network device may identify a counter event associated with one of the one or more packets, and may selectively assign the counter event to a fast counter when at least one of the first threshold, the second threshold, or the third threshold being satisfied, or to the slow counter when none of the first threshold, the second threshold, and the third threshold being satisfied.
    Type: Grant
    Filed: February 17, 2021
    Date of Patent: November 22, 2022
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Yongseok Yi, Weidong Xu, Monte Becker
  • Publication number: 20220263766
    Abstract: A network device may receive one or more packets, and may determine a flow control parameter, a rate limiting parameter, and a statistical sampling parameter associated with a slow counter. The network device may determine whether the flow control parameter satisfies a first threshold, whether the rate limiting parameter satisfies a second threshold, and whether the statistical sampling parameter satisfies a third threshold. The network device may identify a counter event associated with one of the one or more packets, and may selectively assign the counter event to a fast counter when at least one of the first threshold, the second threshold, or the third threshold being satisfied, or to the slow counter when none of the first threshold, the second threshold, and the third threshold being satisfied.
    Type: Application
    Filed: February 17, 2021
    Publication date: August 18, 2022
    Inventors: Craig R. FRINK, Yongseok YI, Weidong XU, Monte BECKER
  • Publication number: 20220264364
    Abstract: A network device may receive packets and may calculate, during a time interval, an arrival rate and a departure rate, of the packets, at one of multiple virtual output queues. The network device may calculate a current oversubscription factor based on the arrival rate and the departure rate, and may calculate a target oversubscription factor based on an average of previous oversubscription factors associated with the multiple virtual output queues. The network device may determine whether a difference exists between the target oversubscription factor and the current oversubscription factor and may calculate, when the difference exists, a scale factor based on the current oversubscription factor and the target oversubscription factor. The network device may calculate new scheduling weights based on prior scheduling weights and the scale factor, and may process packets received by the multiple virtual output queues based on the new scheduling weights.
    Type: Application
    Filed: February 16, 2021
    Publication date: August 18, 2022
    Inventors: Craig R. FRINK, Anurag P. GUPTA, Harshad B. AGASHE
  • Publication number: 20220124030
    Abstract: An apparatus for switching network traffic includes an ingress packet forwarding engine and an egress packet forwarding engine. The ingress packet forwarding engine is configured to determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet and enqueue the network packet in a virtual output queue. The egress packet forwarding engine is configured to output, in response to a first scheduling event and to the ingress packet forwarding engine, information indicating the network packet in the virtual output queue and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine. The ingress packet forwarding engine is further configured to dequeue, in response to receiving the information, the network packet from the virtual output queue and enqueue the network packet to the output queue.
    Type: Application
    Filed: December 22, 2021
    Publication date: April 21, 2022
    Inventors: Craig R. Frink, Weidong Xu, Anurag P. Gupta, Harshad B Agashe
  • Patent number: 11240151
    Abstract: An apparatus for switching network traffic includes an ingress packet forwarding engine and an egress packet forwarding engine. The ingress packet forwarding engine is configured to determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet and enqueue the network packet in a virtual output queue. The egress packet forwarding engine is configured to output, in response to a first scheduling event and to the ingress packet forwarding engine, information indicating the network packet in the virtual output queue and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine. The ingress packet forwarding engine is further configured to dequeue, in response to receiving the information, the network packet from the virtual output queue and enqueue the network packet to the output queue.
    Type: Grant
    Filed: December 10, 2019
    Date of Patent: February 1, 2022
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Weidong Xu, Anurag P. Gupta, Harshad B Agashe
  • Publication number: 20210176171
    Abstract: An apparatus for switching network traffic includes an ingress packet forwarding engine and an egress packet forwarding engine. The ingress packet forwarding engine is configured to determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet and enqueue the network packet in a virtual output queue. The egress packet forwarding engine is configured to output, in response to a first scheduling event and to the ingress packet forwarding engine, information indicating the network packet in the virtual output queue and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine. The ingress packet forwarding engine is further configured to dequeue, in response to receiving the information, the network packet from the virtual output queue and enqueue the network packet to the output queue.
    Type: Application
    Filed: December 10, 2019
    Publication date: June 10, 2021
    Inventors: Craig R. Frink, Weidong Xu, Anurag P. Gupta, Harshad B. Agashe
  • Patent number: 10623329
    Abstract: Techniques are disclosed for a queuing system for network devices. In one example, a network device includes a plurality of memories and processing circuitry connected to the plurality of memories. The plurality of memories includes a local memory of processing circuitry and an external memory to the processing circuitry. The processing circuitry is configured to receive an incoming network packet to be processed, wherein the network packet is held in a queue prior to processing and determine a predicted lifetime of the network packet based on a dequeue rate for the queue. The processing circuitry is further configured to select a first memory from the plurality of memories based on the predicted lifetime and store the network packet at the first memory in response to selecting the first memory from the plurality of memories.
    Type: Grant
    Filed: June 27, 2018
    Date of Patent: April 14, 2020
    Assignee: Juniper Networks, Inc.
    Inventor: Craig R. Frink
  • Patent number: 10547561
    Abstract: Techniques are disclosed for a queuing system for network devices. In one example, a network device determines a transmit rate of packets from the queue. In one example the network device determines the transmit rate by determining a number of tokens used over a unit of time by a token bucket shaper for the queue to dequeue the packets from the queue, wherein each of the tokens represents a given number of bytes to be dequeued from the queue. The network device determines a temporal queue length of the queue based on a target queue latency and the determined transmit rate. Further, the network device adjusts at least one parameter of the queue based on the determined temporal queue length such that an actual queue latency of the queue at the determined transmit rate is equal to the target queue latency.
    Type: Grant
    Filed: November 22, 2017
    Date of Patent: January 28, 2020
    Assignee: Juniper Networks, Inc.
    Inventors: Nayan S. Patel, Craig R. Frink
  • Publication number: 20200007454
    Abstract: Techniques are disclosed for a queuing system for network devices. In one example, a network device includes a plurality of memories and processing circuitry connected to the plurality of memories. The plurality of memories includes a local memory of processing circuitry and an external memory to the processing circuitry. The processing circuitry is configured to receive an incoming network packet to be processed, wherein the network packet is held in a queue prior to processing and determine a predicted lifetime of the network packet based on a dequeue rate for the queue. The processing circuitry is further configured to select a first memory from the plurality of memories based on the predicted lifetime and store the network packet at the first memory in response to selecting the first memory from the plurality of memories.
    Type: Application
    Filed: June 27, 2018
    Publication date: January 2, 2020
    Inventor: Craig R. Frink
  • Patent number: 10382582
    Abstract: The techniques may provide a hierarchical scheduler for dynamically computing rate credits when a plurality of queues share an intermediate node. For example, the hierarchical scheduler may group respective sets of queues with respective virtual subscribers to be associated with a shared intermediate node. The weight used by the shared intermediate node may be computed as a function of the number of virtual subscriber child members of the shared intermediate node and their respective weights to correctly proportion the services to the queues. The techniques may also provide a hierarchical scheduler for dynamically computing rate credits allocated to queues associated with a shared intermediate node. For example, the number of rate credits allocated to a queue for a virtual subscriber is based on the product of the virtual subscriber weight and a queue weighted fraction of the queues for the virtual subscriber.
    Type: Grant
    Filed: November 21, 2017
    Date of Patent: August 13, 2019
    Assignee: Juniper Networks, Inc.
    Inventor: Craig R. Frink
  • Patent number: 10243861
    Abstract: A first device may receive an indication that a time interval has elapsed. The time interval may indicate a time at which the first device is to provide a rate credit update to a second device. The first device may generate a request for a set of instructions. The first device may provide the request to a third device that may store the set of instructions. The first device may store information associated with the request, and a timestamp of the request, in a first data structure. The first device may receive, from the third device, the set of instructions. The first device may store the set of instructions and the timestamp in a second data structure. The first device may determine whether a threshold amount of time after the time indicated by the timestamp has elapsed. The first device may provide the rate credit update to the second device.
    Type: Grant
    Filed: February 22, 2017
    Date of Patent: March 26, 2019
    Assignee: Juniper Networks, Inc.
    Inventor: Craig R. Frink
  • Patent number: 10084709
    Abstract: In some embodiments, an apparatus includes a transmission schedule module in at least one of a memory or a processing device that can select, at a first time, a data unit to send to a network device based at least in part on a value of a transmission rate counter indicating that the network is in a first state. The transmission schedule module can receive, at a second time, an indication of a number of buffers associated with the data unit and can calculate a size estimate of the data unit based on the number of buffers and a capacity associated with each buffer. The transmission schedule module can calculate at a third time, a temporary transmission rate count and can send a signal to transition the network device from the first state to a second state if the temporary transmission rate count meets a criterion.
    Type: Grant
    Filed: September 30, 2015
    Date of Patent: September 25, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Gerald Lampert, Steven Aiken, Srihari R. Vegesna
  • Patent number: 10079769
    Abstract: In some embodiments, an apparatus includes a rate module implemented in at least one of a memory or a processing device that can be operatively coupled to a set of rate counters. Each rate counter is associated with a different network device associated with a level within the hierarchy of a network. The rate module can receive from a schedule module a signal to begin execution of a first page of a first rate program and can send during a first time period transmission credits to a first subset of rate counters. The rate module can send during a second time period transmission credits to a second subset of rate counters based on the execution of a page of a second rate program where the priority of the second rate program is no lower than a priority of the first rate program.
    Type: Grant
    Filed: September 30, 2016
    Date of Patent: September 18, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Monte Becker, Nayan S. Patel
  • Patent number: 9584428
    Abstract: An apparatus for increasing scheduling efficiency in network devices may include (1) at least one memory device that stores at least one data chunk included in a packet, (2) a scheduler device that (a) schedules transmission of the packet that includes the data chunk and (b) issues a request to transmit the packet based at least in part on the scheduled transmission, and (3) a packet-delivery device that (a) receives the request to transmit the packet from the scheduler device, (b) prepares the packet for transmission at a faster rate than the scheduler device schedules the transmission of the packet, and then (c) facilitates transmitting the data chunk included in the packet to a computing device. Various other apparatuses, systems, and methods are also disclosed.
    Type: Grant
    Filed: January 3, 2014
    Date of Patent: February 28, 2017
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Steven Aiken, Gerald Lampert, Thomas J. Meyer, Srihari R. Vegesna, Ajit Jain
  • Patent number: 9461925
    Abstract: In some embodiments, an apparatus includes a rate module implemented in at least one of a memory or a processing device that can be operatively coupled to a set of rate counters. Each rate counter is associated with a different network device associated with a level within the hierarchy of a network. The rate module can receive from a schedule module a signal to begin execution of a first page of a first rate program and can send during a first time period transmission credits to a first subset of rate counters. The rate module can send during a second time period transmission credits to a second subset of rate counters based on the execution of a page of a second rate program where the priority of the second rate program is no lower than a priority of the first rate program.
    Type: Grant
    Filed: August 30, 2013
    Date of Patent: October 4, 2016
    Assignee: Juniper Networks, Inc.
    Inventors: Craig R. Frink, Monte Becker, Nayan S. Patel
  • Patent number: 9363186
    Abstract: Stacked (i.e., hierarchically arranged) rate wheels schedule traffic flows in a network. A first rate wheel operates to efficiently schedule traffic flows in which traffic shaping parameters may be applied to individual traffic flows. A second rate wheel schedules group of the traffic flows in which traffic shaping parameters may be applied at the group level. In the context of an ATM network, the first rate wheel may operate at the virtual circuit level and the second rate wheel may operate at the virtual path level.
    Type: Grant
    Filed: April 30, 2015
    Date of Patent: June 7, 2016
    Assignee: Juniper Networks, Inc.
    Inventor: Craig R. Frink