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: 20230318976Abstract: 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: ApplicationFiled: April 5, 2022Publication date: October 5, 2023Inventors: Abhishek Agarwal, Ye Tang, Sean Clark, Sarin Thomas, Hugh McEvoy Walsh, Xiyu Wang
-
Patent number: 11290395Abstract: 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: GrantFiled: July 20, 2020Date of Patent: March 29, 2022Assignee: Juniper Networks, Inc.Inventors: Gary Goldman, Sarin Thomas, Jean-Marc Frailong, Harshad B Agashe
-
Patent number: 10721187Abstract: 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: GrantFiled: May 18, 2017Date of Patent: July 21, 2020Assignee: Juniper Networks, Inc.Inventors: Gary Goldman, Sarin Thomas, Jean-Marc Frailong, Harshad B Agashe
-
Patent number: 10164906Abstract: 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: GrantFiled: September 30, 2015Date of Patent: December 25, 2018Assignee: Juniper Networks, Inc.Inventors: Rohit Sunkam Ramanujam, Deepak Goel, Sarin Thomas, Sudhir Pandey, Arghajit Basu
-
Patent number: 10097479Abstract: 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: GrantFiled: March 31, 2016Date of Patent: October 9, 2018Assignee: Juniper Networks, Inc.Inventors: Philip A. Thomas, Sarin Thomas, Jean-Marc Frailong, Pradeep Sindhu
-
Patent number: 10009293Abstract: 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: GrantFiled: September 30, 2016Date of Patent: June 26, 2018Assignee: Juniper Networks, Inc.Inventors: Dev S. Mukherjee, Marco Rodriguez, Sarin Thomas, Gary Goldman
-
Patent number: 9973437Abstract: 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: GrantFiled: June 10, 2016Date of Patent: May 15, 2018Assignee: Juniper Networks, Inc.Inventors: Ravi Pathakota, Sarin Thomas, Sudipta Kundu, Srihari R. Vegesna, Firdaus Mahiar Irani, Kalpataru Maji, Naveen K. Jain
-
Publication number: 20160285777Abstract: 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: ApplicationFiled: June 10, 2016Publication date: September 29, 2016Inventors: Ravi Pathakota, Sarin Thomas, Sudipta Kundu, Srihari R. Vegesna, Firdaus Mahiar Irani, Kalpataru Maji, Naveen K. Jain
-
Patent number: 9369397Abstract: 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: GrantFiled: July 16, 2014Date of Patent: June 14, 2016Assignee: Juniper Networks, Inc.Inventors: Ravi Pathakota, Sarin Thomas, Sudipta Kundu, Srihari R. Vegesna, Firdaus Mahiar Irani, Kalpataru Maji, Naveen K. Jain
-
Patent number: 9331929Abstract: 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: GrantFiled: March 29, 2012Date of Patent: May 3, 2016Assignee: Juniper Networks, Inc.Inventors: Philip A. Thomas, Sarin Thomas, Jean-Marc Frailong, Pradeep Sindhu
-
Patent number: 9319347Abstract: 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: GrantFiled: July 31, 2015Date of Patent: April 19, 2016Assignee: Juniper Networks, Inc.Inventors: Pradeep Sindhu, Jean-Marc Frailong, Sarin Thomas, Srihari Raju Vegesna, David James Ofelt, Chang-Hong Wu
-
Patent number: 9100323Abstract: 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: GrantFiled: December 9, 2013Date of Patent: August 4, 2015Assignee: Juniper Networks, Inc.Inventors: Pradeep Sindhu, Jean-Marc Frailong, Sarin Thomas, Srihari Vegesna, David J. Ofelt, Chang-Hong Wu
-
Patent number: 9077466Abstract: 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: GrantFiled: December 3, 2012Date of Patent: July 7, 2015Assignee: 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: 8797877Abstract: 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: GrantFiled: August 9, 2012Date of Patent: August 5, 2014Assignee: Juniper Networks, Inc.Inventors: Srinivas Perla, Sanjeev Kumar, Avanindra Godbole, Srihari Vegesna, Sarin Thomas, Mahesh Dorai
-
Patent number: 8605722Abstract: 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: GrantFiled: April 14, 2010Date of Patent: December 10, 2013Assignee: Juniper Networks, Inc.Inventors: Pradeep Sindhu, Jean-Marc Frailong, Sarin Thomas, Srihari Vegesna, David J. Ofelt, Chang-Hong Wu
-
Patent number: 8509069Abstract: 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: GrantFiled: April 5, 2010Date of Patent: August 13, 2013Assignee: Juniper Networks, Inc.Inventors: Wing Leong Poon, Venkatraman Chandrasekaran, Srihari Vegesna, Sarin Thomas, David J. Ofelt
-
Patent number: 8363668Abstract: 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: GrantFiled: December 17, 2009Date of Patent: January 29, 2013Assignee: Juniper Networks, Inc.Inventors: Sarin Thomas, Srihari Vegesna
-
Patent number: 8325749Abstract: 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: GrantFiled: December 24, 2008Date of Patent: December 4, 2012Assignee: 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: 8230110Abstract: 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: GrantFiled: July 13, 2010Date of Patent: July 24, 2012Assignee: Juniper Networks, Inc.Inventors: Srihari Vegesna, Sarin Thomas
-
Publication number: 20110216773Abstract: 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: ApplicationFiled: July 13, 2010Publication date: September 8, 2011Applicant: JUNIPER NETWORKS, INC.Inventors: Srihari Vegesna, Sarin Thomas