Patents by Inventor Sarin Thomas

Sarin Thomas 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).

  • Publication number: 20230318976
    Abstract: A flow rate control method for solicited data communications includes receiving, at a first node of a communications network, a request-to-send (RTS) signal from a second node of the communications network, the RTS signal indicating a size of a solicited data transmission of the second node, determining, by the first node, whether a rate-limiting counter is above zero, wherein the rate-limiting counter is programmed to increase at a programmed rate and in response to the rate-limiting counter being above zero, scheduling, by the first node, a clear-to-send (CTS) signal to be sent from the first node to the second node over the communications network, and subtracting, by the first node, a value corresponding to the size of the solicited data transmission of the second node from the rate-limiting counter.
    Type: Application
    Filed: April 5, 2022
    Publication date: October 5, 2023
    Inventors: Abhishek Agarwal, Ye Tang, Sean Clark, Sarin Thomas, Hugh McEvoy Walsh, Xiyu Wang
  • Patent number: 11290395
    Abstract: A system and method for routing network packets. A switch fabric connects a plurality of forwarding units, including an egress forwarding unit and two or more ingress forwarding units, each ingress forwarding unit forwarding network packets to the egress forwarding unit via the switch fabric. The egress forwarding unit includes a scheduler and an output queue. Each ingress forwarding unit includes a Virtual Output Queue (VOQ) connected to the output queue and a VOQ manager. The scheduler receives time of arrival information for packet groups stored in the VOQs, determines, based on the time of arrival information for each packet group, a device resident time for each packet group, and discards the packet groups when the determined device resident time for the packet group is greater than a maximum resident time.
    Type: Grant
    Filed: July 20, 2020
    Date of Patent: March 29, 2022
    Assignee: Juniper Networks, Inc.
    Inventors: Gary Goldman, Sarin Thomas, Jean-Marc Frailong, Harshad B Agashe
  • Patent number: 10721187
    Abstract: A system and method for routing network packets. A switch fabric connects a plurality of forwarding units, including an egress forwarding unit and two or more ingress forwarding units, each ingress forwarding unit forwarding network packets to the egress forwarding unit via the switch fabric. The egress forwarding unit includes a scheduler and an output queue. Each ingress forwarding unit includes a Virtual Output Queue (VOQ) connected to the output queue and a VOQ manager. The scheduler receives time of arrival information for network packets stored in the VOQs, determines, based on the time of arrival information for each network packet, a device resident time for the network packets stored in the VOQs, and requests, from one of the VOQs and based on the device resident times, the network packet with the longest device resident time.
    Type: Grant
    Filed: May 18, 2017
    Date of Patent: July 21, 2020
    Assignee: Juniper Networks, Inc.
    Inventors: Gary Goldman, Sarin Thomas, Jean-Marc Frailong, Harshad B Agashe
  • Patent number: 10164906
    Abstract: In some examples, a switching system includes a plurality of fabric endpoints and a multi-stage switching fabric. A fabric endpoint of the system is configured to receive, via the switch fabric, a plurality of cell streams, wherein each cell of a cell stream of the plurality of cell stream is associated with a sequence number that defines a correct ordering of cells of the cell stream; assign subsequences of each cell stream of the plurality of cell streams to respective reorder engines of the fabric endpoint; concurrently reorder the assigned respective subsequences to produce respective ordered subsequences for the subsequences, wherein the ordered subsequences are ordered according to the correct ordering of the corresponding cell stream; interleave the respective ordered subsequences for each cell stream to produce reordered cell streams each having correctly ordered cells; and process each reordered cell stream according to the corresponding correct ordering of cells.
    Type: Grant
    Filed: September 30, 2015
    Date of Patent: December 25, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Rohit Sunkam Ramanujam, Deepak Goel, Sarin Thomas, Sudhir Pandey, Arghajit Basu
  • Patent number: 10097479
    Abstract: In some embodiments, an apparatus comprises a schedule module within a switch fabric system. At a first time, the schedule module is configured to access a list of status indicators associated with a group of egress port indicators. The list of status indicators includes a set of status indicators each of which has a value greater than a threshold. The schedule module is configured to randomly select a status indicator from the set of status indicators and configured to reduce the value of the selected status indicator. The schedule module is then configured to send the egress port indicator associated with the selected status indicator such that a data cell is sent from an egress port associated with that egress port indicator. At a second time, when the value of every status indicator from the list of status indicators is not greater than the threshold, the schedule module is configured to increase the value of every status indicator above the threshold.
    Type: Grant
    Filed: March 31, 2016
    Date of Patent: October 9, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Philip A. Thomas, Sarin Thomas, Jean-Marc Frailong, Pradeep Sindhu
  • Patent number: 10009293
    Abstract: A system and method of transferring cells through a router includes writing one or more of the plurality of cells, including a first cell, of a packet from an ingress stream of an ingress writer to a central buffer, storing a packet identifier entry in the first egress reader scoreboard in each of the plurality of egress readers, the packet identifier entry including a packet identifier, a valid bit, a hit bit and a write cell count, wherein the valid bit is configured to indicate that the packet identifier entry is valid, the hit bit is configured to indicate that no cells in the packet have been read from the central buffer and the write cell count equals the number of cells in the packet written to the central buffer, and reading the packet from the central buffer as a function of the packet identifier entry.
    Type: Grant
    Filed: September 30, 2016
    Date of Patent: June 26, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Dev S. Mukherjee, Marco Rodriguez, Sarin Thomas, Gary Goldman
  • Patent number: 9973437
    Abstract: A device may store a credit value for each of multiple output components. The device may receive packets from a network device via an input component. The device may cause the input component to queue the packets. The device may selectively dequeue a packet from the input component, to be sent to an output component, based on whether the credit value for the output component satisfies a credit threshold. The device may send the packet to the output component based on a destination of the packet when the packet is dequeued from the input component. The device may determine a size of the packet after the packet is dequeued. The device may update the credit value for the output component based on the size of the packet. The device may output the packet to another network device via the output component.
    Type: Grant
    Filed: June 10, 2016
    Date of Patent: May 15, 2018
    Assignee: Juniper Networks, Inc.
    Inventors: Ravi Pathakota, Sarin Thomas, Sudipta Kundu, Srihari R. Vegesna, Firdaus Mahiar Irani, Kalpataru Maji, Naveen K. Jain
  • Publication number: 20160285777
    Abstract: A device may store a credit value for each of multiple output components. The device may receive packets from a network device via an input component. The device may cause the input component to queue the packets. The device may selectively dequeue a packet from the input component, to be sent to an output component, based on whether the credit value for the output component satisfies a credit threshold. The device may send the packet to the output component based on a destination of the packet when the packet is dequeued from the input component. The device may determine a size of the packet after the packet is dequeued. The device may update the credit value for the output component based on the size of the packet. The device may output the packet to another network device via the output component.
    Type: Application
    Filed: June 10, 2016
    Publication date: September 29, 2016
    Inventors: Ravi Pathakota, Sarin Thomas, Sudipta Kundu, Srihari R. Vegesna, Firdaus Mahiar Irani, Kalpataru Maji, Naveen K. Jain
  • Patent number: 9369397
    Abstract: A device may store a credit value for each of multiple output components. The device may receive packets from a network device via an input component. The device may cause the input component to queue the packets. The device may selectively dequeue a packet from the input component, to be sent to an output component, based on whether the credit value for the output component satisfies a credit threshold. The device may send the packet to the output component based on a destination of the packet when the packet is dequeued from the input component. The device may determine a size of the packet after the packet is dequeued. The device may update the credit value for the output component based on the size of the packet. The device may output the packet to another network device via the output component.
    Type: Grant
    Filed: July 16, 2014
    Date of Patent: June 14, 2016
    Assignee: Juniper Networks, Inc.
    Inventors: Ravi Pathakota, Sarin Thomas, Sudipta Kundu, Srihari R. Vegesna, Firdaus Mahiar Irani, Kalpataru Maji, Naveen K. Jain
  • Patent number: 9331929
    Abstract: At a first time, a schedule module is configured to access a list of status indicators associated with a group of egress port indicators. The list of status indicators includes a set of status indicators each of which has a value greater than a threshold. The schedule module is configured to randomly select a status indicator from the set of status indicators and configured to reduce the value of the selected status indicator. The schedule module is then configured to send the egress port indicator associated with the selected status indicator such that a data cell is sent from an egress port associated with that egress port indicator. At a second time, when the value of every status indicator from the list of status indicators is not greater than the threshold, the schedule module is configured to increase the value of every status indicator above the threshold.
    Type: Grant
    Filed: March 29, 2012
    Date of Patent: May 3, 2016
    Assignee: Juniper Networks, Inc.
    Inventors: Philip A. Thomas, Sarin Thomas, Jean-Marc Frailong, Pradeep Sindhu
  • Patent number: 9319347
    Abstract: In general, the invention is directed to techniques for reducing deadlocks that may arise when performing fabric replication. For example, as described herein, a network device includes packet replicators that each comprises a plurality of resource partitions. A replication data structure for a packet received by the network device includes packet replicator nodes that are arranged hierarchically to occupy one or more levels of the replication data structure. Each of the resource partitions in each of the plurality of packet replicators is associated with a different level of the replication data structure. The packet replicators replicate the packet according to the replication data structure, and each of the packet replicators handles the packet using the one of the resource partitions of the packet replicator that is associated with the level of the replication data structure occupied by the node that corresponds to that particular packet replicator.
    Type: Grant
    Filed: July 31, 2015
    Date of Patent: April 19, 2016
    Assignee: Juniper Networks, Inc.
    Inventors: Pradeep Sindhu, Jean-Marc Frailong, Sarin Thomas, Srihari Raju Vegesna, David James Ofelt, Chang-Hong Wu
  • Patent number: 9100323
    Abstract: In general, the invention is directed to techniques for reducing deadlocks that may arise when performing fabric replication. For example, as described herein, a network device includes packet replicators that each comprises a plurality of resource partitions. A replication data structure for a packet received by the network device includes packet replicator nodes that are arranged hierarchically to occupy one or more levels of the replication data structure. Each of the resource partitions in each of the plurality of packet replicators is associated with a different level of the replication data structure. The packet replicators replicate the packet according to the replication data structure, and each of the packet replicators handles the packet using the one of the resource partitions of the packet replicator that is associated with the level of the replication data structure occupied by the node that corresponds to that particular packet replicator.
    Type: Grant
    Filed: December 9, 2013
    Date of Patent: August 4, 2015
    Assignee: Juniper Networks, Inc.
    Inventors: Pradeep Sindhu, Jean-Marc Frailong, Sarin Thomas, Srihari Vegesna, David J. Ofelt, Chang-Hong Wu
  • Patent number: 9077466
    Abstract: In one embodiment, a method can include receiving at an egress schedule module a request to schedule transmission of a group of cells from an ingress queue through a switch fabric of a multi-stage switch. The ingress queue can be associated with an ingress stage of the multi-stage switch. The egress schedule module can be associated with an egress stage of the multi-stage switch. The method can also include determining, in response to the request, that an egress port at the egress stage of the multi-stage switch is available to transmit the group of cells from the multi-stage switch.
    Type: Grant
    Filed: December 3, 2012
    Date of Patent: July 7, 2015
    Assignee: Juniper Networks, Inc.
    Inventors: Sarin Thomas, Srihari Vegesna, Pradeep Sindhu, Chi-Chung Kenny Chen, Jean-Marc Frailong, David J. Ofelt, Philip A. Thomas, Chang-Hong Wu
  • Patent number: 8797877
    Abstract: In general, techniques are described for allocating virtual output queue (VOQ) buffer space to ingress forwarding units of a network device based on drain rates at which network packets are forwarded from VOQs of the ingress forwarding units. For example, a network device includes multiple ingress forwarding units that each forward network packets to an output queue of an egress forwarding unit. Ingress forwarding units each include a VOQ that corresponds to the output queue. The drain rate at any particular ingress forwarding unit corresponds to its share of bandwidth to the output queue, as determined by the egress forwarding unit. Each ingress forwarding unit configures its VOQ buffer size in proportion to its respective drain rate in order to provide an expected delay bandwidth buffering for the output queue of the egress forwarding unit.
    Type: Grant
    Filed: August 9, 2012
    Date of Patent: August 5, 2014
    Assignee: Juniper Networks, Inc.
    Inventors: Srinivas Perla, Sanjeev Kumar, Avanindra Godbole, Srihari Vegesna, Sarin Thomas, Mahesh Dorai
  • Patent number: 8605722
    Abstract: In general, the invention is directed to techniques for reducing deadlocks that may arise when performing fabric replication. For example, as described herein, a network device includes packet replicators that each comprises a plurality of resource partitions. A replication data structure for a packet received by the network device includes packet replicator nodes that are arranged hierarchically to occupy one or more levels of the replication data structure. Each of the resource partitions in each of the plurality of packet replicators is associated with a different level of the replication data structure. The packet replicators replicate the packet according to the replication data structure, and each of the packet replicators handles the packet using the one of the resource partitions of the packet replicator that is associated with the level of the replication data structure occupied by the node that corresponds to that particular packet replicator.
    Type: Grant
    Filed: April 14, 2010
    Date of Patent: December 10, 2013
    Assignee: Juniper Networks, Inc.
    Inventors: Pradeep Sindhu, Jean-Marc Frailong, Sarin Thomas, Srihari Vegesna, David J. Ofelt, Chang-Hong Wu
  • Patent number: 8509069
    Abstract: A method includes receiving packets from a network with a plurality of packet-forwarding engines (PFEs) of a router, wherein the plurality of PFEs are interconnected by a switch fabric, determining an egress one of the PFEs for each of the packets, and forming fixed-sized fabric cells that share data associated with the packets that are destined for the same egress PFE while preventing packets destined for different egress PFEs to share any of the fabric cells. The fabric cells are transmitted through the switch fabric to communicate the packets to the egress PFEs.
    Type: Grant
    Filed: April 5, 2010
    Date of Patent: August 13, 2013
    Assignee: Juniper Networks, Inc.
    Inventors: Wing Leong Poon, Venkatraman Chandrasekaran, Srihari Vegesna, Sarin Thomas, David J. Ofelt
  • Patent number: 8363668
    Abstract: A network device includes multiple queues to store packets to be scheduled, and a weighted round-robin (WRR) scheduler. The WRR scheduler performs a first WRR scheduling iteration including processing of at least one packet from a particular queue of the multiple queues, identifies the particular queue as an empty queue during the performing of the first WRR scheduling iteration, identifies the particular queue as a non-empty queue after the identifying the particular queue as the empty queue, and performs a second WRR scheduling iteration including processing of only one packet of a group of packets from the particular queue of the multiple queues.
    Type: Grant
    Filed: December 17, 2009
    Date of Patent: January 29, 2013
    Assignee: Juniper Networks, Inc.
    Inventors: Sarin Thomas, Srihari Vegesna
  • Patent number: 8325749
    Abstract: In one embodiment, a method can include receiving at an egress schedule module a request to schedule transmission of a group of cells from an ingress queue through a switch fabric of a multi-stage switch. The ingress queue can be associated with an ingress stage of the multi-stage switch. The egress schedule module can be associated with an egress stage of the multi-stage switch. The method can also include determining, in response to the request, that an egress port at the egress stage of the multi-stage switch is available to transmit the group of cells from the multi-stage switch.
    Type: Grant
    Filed: December 24, 2008
    Date of Patent: December 4, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Sarin Thomas, Srihari Vegesna, Pradeep Sindhu, Chi-Chung Kenny Chen, Jean-Marc Frailong, David J. Ofelt, Philip A. Thomas, Chang-Hong Wu
  • Patent number: 8230110
    Abstract: In general, techniques are described for performing work conserving packet scheduling in network devices. For example, a network device comprising queues that store packets and a control unit may implement these techniques. The control unit stores data defining hierarchically-ordered nodes, which include leaf nodes from which one or more of the queues depend. The control unit executes first and second dequeue operations concurrently to traverse the hierarchically-ordered nodes and schedule processing of packets stored to the queues. During execution, the first dequeue operation masks at least one of the selected ones of the leaf nodes from which one of the queues depends based on scheduling data stored by the control unit. The scheduling data indicates valid child node counts in some instances. The masking occurs to exclude the node from consideration by the second dequeue operation concurrently executing with the first dequeue operation, which may preserve work in certain instances.
    Type: Grant
    Filed: July 13, 2010
    Date of Patent: July 24, 2012
    Assignee: Juniper Networks, Inc.
    Inventors: Srihari Vegesna, Sarin Thomas
  • Publication number: 20110216773
    Abstract: In general, techniques are described for performing work conserving packet scheduling in network devices. For example, a network device comprising queues that store packets and a control unit may implement these techniques. The control unit stores data defining hierarchically-ordered nodes, which include leaf nodes from which one or more of the queues depend. The control unit executes first and second dequeue operations concurrently to traverse the hierarchically-ordered nodes and schedule processing of packets stored to the queues. During execution, the first dequeue operation masks at least one of the selected ones of the leaf nodes from which one of the queues depends based on scheduling data stored by the control unit. The scheduling data indicates valid child node counts in some instances. The masking occurs to exclude the node from consideration by the second dequeue operation concurrently executing with the first dequeue operation, which may preserve work in certain instances.
    Type: Application
    Filed: July 13, 2010
    Publication date: September 8, 2011
    Applicant: JUNIPER NETWORKS, INC.
    Inventors: Srihari Vegesna, Sarin Thomas