Patents by Inventor Devesh Prakash
Devesh Prakash 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: 10148544Abstract: For multiple multi-core nodes in a cluster, the filtered statistics clients contacts the aggregator on a master node of the cluster, referred to as the cluster configuration owner (“CCO”) or cluster coordinator and expects the stats aggregated from all the cluster nodes. The aggregator on the CCO nodes relay the client request to packet engines on the CCO node and to an aggregator on each of the other nodes in the cluster. Then the CCO node aggregator gets responses from other cores on the node and responses from all other cluster node aggregators. The CCO node aggregator aggregates the responses and sends back the aggregated response to the clients. Communication between nodes is via a static authenticated communication channel.Type: GrantFiled: April 4, 2014Date of Patent: December 4, 2018Assignee: Citrix Systems, Inc.Inventors: Devesh Prakash, Pawan Prakash Sharma
-
Patent number: 9680764Abstract: The present disclosure is directed generally to systems and methods for Diameter load balancing. In some embodiments, an intermediary device may receive a diameter connection request from a client that includes a CER. The intermediary device may initiate a connection with a server of a plurality of servers and place the server protocol control block in a reuse pool. Responsive to opening the connection with the server, the intermediary device may forward the received CER. The intermediary device may then receive a CEA message from the server and establish an AVP-based persistent connection. The intermediary device may modify the received CEA message, and then forward the message to the client. When the intermediary device receives a diameter message from a client, the intermediary device may match an AVP of the message with an AVP associated with a persistent server connection, and forward the diameter message to the corresponding server.Type: GrantFiled: April 4, 2014Date of Patent: June 13, 2017Assignee: CITRIX SYSTEMS, INC.Inventors: Devesh Prakash, Raghav Somanahalli Narayana, Mahesh Mylarappa
-
Patent number: 9219781Abstract: The present application is directed towards systems and methods for a user to configure the backup locations to use by an intermediary device providing Global Server Load Balancing (GSLB) services when a primary location is down. In some embodiments, when GSLB is based on static proximity of the location of the client to the GSLB sites and if the primary location is DOWN, then request may be load balanced among all the other locations. But this may not be desirable in many cases. So we need to provide option to the user to specify the preferred list of backup locations to service a client request. The present solution achieves this configurability by using a GSLB policy based on preferred location. One can configure preferred location(s) via a GSLB policy to redirect the client to preferred location(x). One can configure individual policies for different client locations. Based on implementation requirements, one can configure country level granularity, state level granularity and so on.Type: GrantFiled: April 6, 2013Date of Patent: December 22, 2015Assignee: CITRIX SYSTEMS, INC.Inventors: Devesh Prakash, Sergey Verzunov
-
Patent number: 9088501Abstract: The present invention is directed towards systems and methods for load balancing by a multi-core device intermediary between clients and services. The device may establish sub-slots in each slot of the device's packet engines. The number of sub-slots may correspond to the packet engine count. Each slot may track a different number of active connections allocated to a service. The device may assign a first and second service to each packet engine in a first slot corresponding to no active connections. These services may be assigned to different sub-slots in adjacent packet engines. The device may update, responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine, to a corresponding sub-slot in a second slot. The second slot may correspond to one active connection allocated to the first service.Type: GrantFiled: July 31, 2013Date of Patent: July 21, 2015Assignee: CITRIX SYSTEMS, INC.Inventors: Aman Chaudhary, Vishnu Itta, Devesh Prakash, Manikam Muthiah, Jaidev Sridhar
-
Publication number: 20150039763Abstract: The present invention is directed towards systems and methods for load balancing by a multi-core device intermediary between clients and services. The device may establish sub-slots in each slot of the device's packet engines. The number of sub-slots may correspond to the packet engine count. Each slot may track a different number of active connections allocated to a service. The device may assign a first and second service to each packet engine in a first slot corresponding to no active connections. These services may be assigned to different sub-slots in adjacent packet engines. The device may update, responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine, to a corresponding sub-slot in a second slot. The second slot may correspond to one active connection allocated to the first service.Type: ApplicationFiled: July 31, 2013Publication date: February 5, 2015Applicant: Citrix Systems, Inc.Inventors: Aman Chaudhary, Vishnu Itta, Devesh Prakash, Manikam Muthiah, Jaidev Sridhar
-
Patent number: 8949414Abstract: The present invention is directed towards systems and methods for aggregating and providing statistics from cores of a multi-core system intermediary between one or more clients and servers. The system may maintain in shared memory a global device number for each core of the multi-core system. The system may provide a thread for each core of the multi-core system to gather data from the corresponding core. A first thread may generate aggregated statistics from a corresponding core by parsing the gathered data from the corresponding core. The first thread may transfer the generated statistics to a statistics log according to a schedule. The system may adaptively reschedule the transfer by monitoring the operation of each computing thread. Responsive to a request from a client, an agent of the client may obtain statistics from the statistics log.Type: GrantFiled: December 27, 2011Date of Patent: February 3, 2015Assignee: Citrix Systems, Inc.Inventors: Murali Raja, Sridhar Srinivasan, Saravana Annamalaisami, Devesh Prakash, Josephine Suganthi, Anil Shetty
-
Publication number: 20140304415Abstract: The present disclosure is directed generally to systems and methods for Diameter load balancing. In some embodiments, an intermediary device may receive a diameter connection request from a client that includes a CER. The intermediary device may initiate a connection with a server of a plurality of servers and place the server protocol control block in a reuse pool. Responsive to opening the connection with the server, the intermediary device may forward the received CER. The intermediary device may then receive a CEA message from the server and establish an AVP-based persistent connection. The intermediary device may modify the received CEA message, and then forward the message to the client. When the intermediary device receives a diameter message from a client, the intermediary device may match an AVP of the message with an AVP associated with a persistent server connection, and forward the diameter message to the corresponding server.Type: ApplicationFiled: April 4, 2014Publication date: October 9, 2014Applicant: Citrix Systems, Inc.Inventors: Devesh Prakash, Raghav Somanahalli Narayana, Mahesh Mylarappa
-
Publication number: 20140304402Abstract: For multiple multi-core nodes in a cluster, the filtered statistics clients contacts the aggregator on a master node of the cluster, referred to as the cluster configuration owner (“CCO”) or cluster coordinator and expects the stats aggregated from all the cluster nodes. The aggregator on the CCO nodes relay the client request to packet engines on the CCO node and to an aggregator on each of the other nodes in the cluster. Then the CCO node aggregator gets responses from other cores on the node and responses from all other cluster node aggregators. The CCO node aggregator aggregates the responses and sends back the aggregated response to the clients. Communication between nodes is via a static authenticated communication channel.Type: ApplicationFiled: April 4, 2014Publication date: October 9, 2014Applicant: Citrix Systems, Inc.Inventors: Devesh Prakash, Pawan Prakash Sharma
-
Publication number: 20140304412Abstract: The present application is directed towards systems and methods for a user to configure the backup locations to use by an intermediary device providing Global Server Load Balancing (GSLB) services when a primary location is down. In some embodiments, when GSLB is based on static proximity of the location of the client to the GSLB sites and if the primary location is DOWN, then request may be load balanced among all the other locations. But this may not be desirable in many cases. So we need to provide option to the user to specify the preferred list of backup locations to service a client request. The present solution achieves this configurability by using a GSLB policy based on preferred location. One can configure preferred location(s) via a GSLB policy to redirect the client to preferred location(x). One can configure individual policies for different client locations. Based on implementation requirements, one can configure country level granularity, state level granularity and so on.Type: ApplicationFiled: April 6, 2013Publication date: October 9, 2014Applicant: Citrix Systems, Inc.Inventors: Devesh Prakash, Sergey Verzunov
-
Patent number: 8554892Abstract: Described herein are systems and methods for aggregating performance data or trace data for a multi-core, multi-packet-engine networked appliance. A plurality of packet engines operate on the appliance and manage network traffic between a plurality of clients and a plurality of servers. In various embodiments, the system comprises a plurality of packet engines and an aggregator communicating with the packet engines through shared memory allocations. Each packet engine can write performance data or trace data to the a shared memory allocation. The aggregator can obtain the performance data or trace data and consolidate the data to provide unified performance data or unified trace data representative of the appliance.Type: GrantFiled: June 22, 2009Date of Patent: October 8, 2013Assignee: Citrix Systems, Inc.Inventors: Murali Raja, Devesh Prakash
-
Patent number: 8289960Abstract: Described herein are systems and methods for aggregating performance data or trace data for a multi-core, multi-packet-engine networked appliance. A plurality of packet engines operate on the appliance and manage network traffic between a plurality of clients and a plurality of servers. In various embodiments, the system comprises a plurality of packet engines and an aggregator communicating with the packet engines through shared memory allocations. Each packet engine can write performance data or trace data to the a shared memory allocation. The aggregator can obtain the performance data or trace data and consolidate the data to provide unified performance data or unified trace data representative of the appliance.Type: GrantFiled: June 22, 2009Date of Patent: October 16, 2012Assignee: Citrix Systems, Inc.Inventors: Murali Raja, Devesh Prakash, Sudheer Thokala
-
Publication number: 20120226804Abstract: The present invention is directed towards systems and methods for aggregating and providing statistics from cores of a multi-core system intermediary between one or more clients and servers. The system may maintain in shared memory a global device number for each core of the multi-core system. The system may provide a thread for each core of the multi-core system to gather data from the corresponding core. A first thread may generate aggregated statistics from a corresponding core by parsing the gathered data from the corresponding core. The first thread may transfer the generated statistics to a statistics log according to a schedule. The system may adaptively reschedule the transfer by monitoring the operation of each computing thread. Responsive to a request from a client, an agent of the client may obtain statistics from the statistics log.Type: ApplicationFiled: December 27, 2011Publication date: September 6, 2012Inventors: Murali Raja, Sridhar Srinivasan, Saravana Annamalaisami, Devesh Prakash, Josephine Suganthi, Anil Shetty
-
Publication number: 20100322089Abstract: Described herein are systems and methods for aggregating performance data or trace data for a multi-core, multi-packet-engine networked appliance. A plurality of packet engines operate on the appliance and manage network traffic between a plurality of clients and a plurality of servers. In various embodiments, the system comprises a plurality of packet engines and an aggregator communicating with the packet engines through shared memory allocations. Each packet engine can write performance data or trace data to the a shared memory allocation. The aggregator can obtain the performance data or trace data and consolidate the data to provide unified performance data or unified trace data representative of the appliance.Type: ApplicationFiled: June 22, 2009Publication date: December 23, 2010Inventors: Murali Raja, Devesh Prakash
-
Publication number: 20100322237Abstract: Described herein are systems and methods for aggregating performance data or trace data for a multi-core, multi-packet-engine networked appliance. A plurality of packet engines operate on the appliance and manage network traffic between a plurality of clients and a plurality of servers. In various embodiments, the system comprises a plurality of packet engines and an aggregator communicating with the packet engines through shared memory allocations. Each packet engine can write performance data or trace data to the a shared memory allocation. The aggregator can obtain the performance data or trace data and consolidate the data to provide unified performance data or unified trace data representative of the appliance.Type: ApplicationFiled: June 22, 2009Publication date: December 23, 2010Inventors: Murali Raja, Devesh Prakash, Sudheer Thokala