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: 10148544
    Abstract: 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: Grant
    Filed: April 4, 2014
    Date of Patent: December 4, 2018
    Assignee: Citrix Systems, Inc.
    Inventors: Devesh Prakash, Pawan Prakash Sharma
  • Patent number: 9680764
    Abstract: 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: Grant
    Filed: April 4, 2014
    Date of Patent: June 13, 2017
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Devesh Prakash, Raghav Somanahalli Narayana, Mahesh Mylarappa
  • Patent number: 9219781
    Abstract: 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: Grant
    Filed: April 6, 2013
    Date of Patent: December 22, 2015
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Devesh Prakash, Sergey Verzunov
  • Patent number: 9088501
    Abstract: 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: Grant
    Filed: July 31, 2013
    Date of Patent: July 21, 2015
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Aman Chaudhary, Vishnu Itta, Devesh Prakash, Manikam Muthiah, Jaidev Sridhar
  • Publication number: 20150039763
    Abstract: 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: Application
    Filed: July 31, 2013
    Publication date: February 5, 2015
    Applicant: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Vishnu Itta, Devesh Prakash, Manikam Muthiah, Jaidev Sridhar
  • Patent number: 8949414
    Abstract: 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: Grant
    Filed: December 27, 2011
    Date of Patent: February 3, 2015
    Assignee: Citrix Systems, Inc.
    Inventors: Murali Raja, Sridhar Srinivasan, Saravana Annamalaisami, Devesh Prakash, Josephine Suganthi, Anil Shetty
  • Publication number: 20140304415
    Abstract: 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: Application
    Filed: April 4, 2014
    Publication date: October 9, 2014
    Applicant: Citrix Systems, Inc.
    Inventors: Devesh Prakash, Raghav Somanahalli Narayana, Mahesh Mylarappa
  • Publication number: 20140304412
    Abstract: 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: Application
    Filed: April 6, 2013
    Publication date: October 9, 2014
    Applicant: Citrix Systems, Inc.
    Inventors: Devesh Prakash, Sergey Verzunov
  • Publication number: 20140304402
    Abstract: 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: Application
    Filed: April 4, 2014
    Publication date: October 9, 2014
    Applicant: Citrix Systems, Inc.
    Inventors: Devesh Prakash, Pawan Prakash Sharma
  • Patent number: 8554892
    Abstract: 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: Grant
    Filed: June 22, 2009
    Date of Patent: October 8, 2013
    Assignee: Citrix Systems, Inc.
    Inventors: Murali Raja, Devesh Prakash
  • Patent number: 8289960
    Abstract: 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: Grant
    Filed: June 22, 2009
    Date of Patent: October 16, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Murali Raja, Devesh Prakash, Sudheer Thokala
  • Publication number: 20120226804
    Abstract: 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: Application
    Filed: December 27, 2011
    Publication date: September 6, 2012
    Inventors: Murali Raja, Sridhar Srinivasan, Saravana Annamalaisami, Devesh Prakash, Josephine Suganthi, Anil Shetty
  • Publication number: 20100322237
    Abstract: 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: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Murali Raja, Devesh Prakash, Sudheer Thokala
  • Publication number: 20100322089
    Abstract: 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: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Murali Raja, Devesh Prakash