Patents by Inventor VIVEKANAND RANGARAMAN

VIVEKANAND RANGARAMAN 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: 20200382344
    Abstract: The disclosure is directed towards systems and methods for performing service tag switching. A device intermediary to a client and a server receives a packet including a virtual network device identifier tag that identifies a list of functions to be performed on the packet. The device tags the packet with a first service tag identifying a first functional entity of the device to which to route the packet. The device routes the packet to the first functional entity configured to perform a first function. Responsive to the first function being performed, the device selects a subsequent service tag identifying a subsequent functional entity to route the packet. The device tags the packet with the subsequent service tag and routes the packet to the subsequent functional entity. Once all of the list of functions to be performed on the packet have been performed, the device forwards the packet to its destination.
    Type: Application
    Filed: August 18, 2020
    Publication date: December 3, 2020
    Inventors: Vivekanand Rangaraman, Jyotheeswara Rao Kurma, Janraj CJ
  • Patent number: 10778468
    Abstract: The disclosure is directed towards systems and methods for performing service tag switching. A device intermediary to a client and a server receives a packet including a virtual network device identifier tag that identifies a list of functions to be performed on the packet. The device tags the packet with a first service tag identifying a first functional entity of the device to which to route the packet. The device routes the packet to the first functional entity configured to perform a first function. Responsive to the first function being performed, the device selects a subsequent service tag identifying a subsequent functional entity to route the packet. The device tags the packet with the subsequent service tag and routes the packet to the subsequent functional entity. Once all of the list of functions to be performed on the packet have been performed, the device forwards the packet to its destination.
    Type: Grant
    Filed: August 9, 2018
    Date of Patent: September 15, 2020
    Assignee: Citrix Systems, Inc.
    Inventors: Vivekanand Rangaraman, Jyotheeswara Rao Kurma, Janraj CJ
  • Publication number: 20180375686
    Abstract: The disclosure is directed towards systems and methods for performing service tag switching. A device intermediary to a client and a server receives a packet including a virtual network device identifier tag that identifies a list of functions to be performed on the packet. The device tags the packet with a first service tag identifying a first functional entity of the device to which to route the packet. The device routes the packet to the first functional entity configured to perform a first function. Responsive to the first function being performed, the device selects a subsequent service tag identifying a subsequent functional entity to route the packet. The device tags the packet with the subsequent service tag and routes the packet to the subsequent functional entity. Once all of the list of functions to be performed on the packet have been performed, the device forwards the packet to its destination.
    Type: Application
    Filed: August 9, 2018
    Publication date: December 27, 2018
    Inventors: Vivekanand Rangaraman, Jyotheeswara Rao Kurma, Janraj CJ
  • Patent number: 10069649
    Abstract: The disclosure is directed towards systems and methods for performing service tag switching. A device intermediary to a client and a server receives a packet including a virtual network device identifier tag that identifies a list of functions to be performed on the packet. The device tags the packet with a first service tag identifying a first functional entity of the device to which to route the packet. The device routes the packet to the first functional entity to perform a first function. Responsive to the first function being performed, the device selects a subsequent service tag identifying a subsequent functional entity to route the packet. The device tags the packet with the subsequent service tag and routes the packet to the subsequent functional entity. Once the list of functions to be performed on the packet have been performed, the device forwards the packet to its destination.
    Type: Grant
    Filed: November 5, 2014
    Date of Patent: September 4, 2018
    Assignee: Citrix Systems, Inc.
    Inventors: Vivekanand Rangaraman, Jyotheeswara Rao Kurma, Janraj C J
  • Patent number: 10044612
    Abstract: Systems and methods of the present disclosure relate to allocating ports for packets distributed via a computer network. A packet engine on a core of a multicore device intermediary between a client and a server receives a first packet from the client. The first packet includes an outer header of an encapsulation protocol encapsulating a payload with an inner header. The first packet is directed by a packet distributor of the device to the first core selected based on a first tuple of the outer header. A port allocator of the packet engine determines a source port number to cause the packet distributor to identify the first core based on a second tuple of the inner header. The packet engine modifies the inner header of the payload to include the determined source port number. The device forwards the first packet including the modified inner header to the server.
    Type: Grant
    Filed: November 5, 2014
    Date of Patent: August 7, 2018
    Assignee: Citrix Systems, Inc.
    Inventors: Janraj C J, Vivekanand Rangaraman, Jyotheeshswara Rao Kurma
  • Patent number: 9923818
    Abstract: The present disclosure is directed towards systems and methods of steering packets received by a multi-core device serving as a tunnel endpoint. A device including a plurality of cores identifies a core corresponding to a request to transmit to a destination via a tunnel. The tunnel is established between the first tunnel endpoint and a second tunnel endpoint. The device identifies, from a port allocation table, a source port based on the identified core, a first IP address of the first tunnel endpoint, a second IP address of the second tunnel endpoint and the destination port to steer a response to the request to the identified core. The device modifies a packet of the request to include in an outer header of the packet of the request, a first tuple identifying the first IP address, the second IP address, the destination port and the identified source port.
    Type: Grant
    Filed: September 14, 2015
    Date of Patent: March 20, 2018
    Assignee: Citrix Systems, Inc.
    Inventors: Janraj CJ, Vivekanand Rangaraman
  • Publication number: 20170078197
    Abstract: The present disclosure is directed towards systems and methods of steering packets received by a multi-core device serving as a tunnel endpoint. A device including a plurality of cores identifies a core corresponding to a request to transmit to a destination via a tunnel. The tunnel is established between the first tunnel endpoint and a second tunnel endpoint. The device identifies, from a port allocation table, a source port based on the identified core, a first IP address of the first tunnel endpoint, a second IP address of the second tunnel endpoint and the destination port to steer a response to the request to the identified core. The device modifies a packet of the request to include in an outer header of the packet of the request, a first tuple identifying the first IP address, the second IP address, the destination port and the identified source port.
    Type: Application
    Filed: September 14, 2015
    Publication date: March 16, 2017
    Inventors: Janraj CJ, Vivekanand Rangaraman
  • Patent number: 9374337
    Abstract: While each node in a cluster of nodes sources connections with the same IP if each node allocates a port on this IP independently, there may be port clashes. Also, the return traffic is not guaranteed to hit the originating node. These issues are addressed by allocating a port in such a way that the response traffic hashes back to the originating node. A good hash is chosen such that the ports are equally divided among the nodes. When a node leaves, the other nodes take over the port range used by this node. When a node joins, the node takes back its share of ports.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: June 21, 2016
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Vivekanand Rangaraman, Ranjith Nath, Sandhya Gopinath, Abhishek Chauhan
  • Patent number: 9225806
    Abstract: In a cluster environment, nodes participating in the cluster may generate packets with the same source IP to the same destination IP. If those packets get fragmented down stream, then reassembling this packets depends on the source IP, destination IP, protocol and the IP identifier field (IPID) of the IP packet. As the source IP, destination IP and protocol may be fixed, the IPID generation is coordinated across the nodes to support reassembly down stream and avoid tuple collision. The IPID space may be equally split among the nodes in the cluster. Each node generates IPID within its range to avoid a collision with an IPID generated from another node.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: December 29, 2015
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Vivekanand Rangaraman, Henk Bots, Sandhya Gopinath
  • Patent number: 9124514
    Abstract: The present application is directed towards sharing data link layer information of network traffic distributed across a cluster of intermediary devices. A method for sharing data link layer information across a cluster includes receiving a request packet at a first intermediary device. The first intermediary device identifies a first set of data link layer information from a data link layer of the request packet. The first intermediary device modifies the request packet for transmission on a common data backplane of the cluster to include the first set of data link layer information in the request packet. The modified request packet includes a second set of data link layer information that differs from the first set of data link layer information at the data link layer. The first intermediary device transmits the modified request packet on the common data backplane of the cluster to other devices of the cluster.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: September 1, 2015
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Sandhya Gopinath, Abhishek Chauhan, Henk Bots, Mohit Saxena, Ramanjaneyulu Y Talla, Vivekanand Rangaraman
  • Publication number: 20150124827
    Abstract: The disclosure is directed towards systems and methods for performing service tag switching. A device intermediary to a client and a server receives a packet including a virtual network device identifier tag that identifies a list of functions to be performed on the packet. The device tags the packet with a first service tag identifying a first functional entity of the device to which to route the packet. The device routes the packet to the first functional entity configured to perform a first function. Responsive to the first function being performed, the device selects a subsequent service tag identifying a subsequent functional entity to route the packet. The device tags the packet with the subsequent service tag and routes the packet to the subsequent functional entity. Once all of the list of functions to be performed on the packet have been performed, the device forwards the packet to its destination.
    Type: Application
    Filed: November 5, 2014
    Publication date: May 7, 2015
    Applicant: Citrix Systems, Inc
    Inventors: Vivekanand Rangaraman, Jyotheeswara Rao Kurma, Janraj CJ
  • Publication number: 20150124828
    Abstract: Systems and methods of the present disclosure relate to allocating ports for packets distributed via a computer network. A packet engine on a core of a multicore device intermediary between a client and a server receives a first packet from the client. The first packet includes an outer header of an encapsulation protocol encapsulating a payload with an inner header. The first packet is directed by a packet distributor of the device to the first core selected based on a first tuple of the outer header. A port allocator of the packet engine determines a source port number to cause the packet distributor to identify the first core based on a second tuple of the inner header. The packet engine modifies the inner header of the payload to include the determined source port number. The device forwards the first packet including the modified inner header to the server.
    Type: Application
    Filed: November 5, 2014
    Publication date: May 7, 2015
    Applicant: Citrix Systems, Inc
    Inventors: Janraj CJ, Vivekanand Rangaraman, Jyotheeshswara Rao Kurma
  • Patent number: 8804740
    Abstract: The present application is directed towards systems and methods for handling fragmented packets in a cluster environment. Fragments received by the cluster may be hashed based on a tuple of network layer information, such as source and destination IP addresses. The tuple of network layer information may be used to identify a device of the cluster as a “fragment owner” or node responsible for assembling the fragments of the packet. The fragment may be transmitted or steered to the fragment owner for accumulation and assembly. Once all fragments of the packet have been received by the fragment owner, the packet may be assembled and a second hash may be calculated based on a four-tuple of network and transport layer information, such as source and destination IP addresses and port numbers. The packet may then be steered or transmitted to the “packet owner” or node responsible for processing the packet.
    Type: Grant
    Filed: June 15, 2012
    Date of Patent: August 12, 2014
    Assignee: Citrix Systems, Inc.
    Inventor: Vivekanand Rangaraman
  • Publication number: 20130336320
    Abstract: The present application is directed towards systems and methods for handling fragmented packets in a cluster environment. Fragments received by the cluster may be hashed based on a tuple of network layer information, such as source and destination IP addresses. The tuple of network layer information may be used to identify a device of the cluster as a “fragment owner” or node responsible for assembling the fragments of the packet. The fragment may be transmitted or steered to the fragment owner for accumulation and assembly. Once all fragments of the packet have been received by the fragment owner, the packet may be assembled and a second hash may be calculated based on a four-tuple of network and transport layer information, such as source and destination IP addresses and port numbers. The packet may then be steered or transmitted to the “packet owner” or node responsible for processing the packet.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Inventor: VIVEKANAND RANGARAMAN
  • Publication number: 20130336337
    Abstract: The present application is directed towards sharing data link layer information of network traffic distributed across a cluster of intermediary devices. A method for sharing data link layer information across a cluster includes receiving a request packet at a first intermediary device. The first intermediary device identifies a first set of data link layer information from a data link layer of the request packet. The first intermediary device modifies the request packet for transmission on a common data backplane of the cluster to include the first set of data link layer information in the request packet. The modified request packet includes a second set of data link layer information that differs from the first set of data link layer information at the data link layer. The first intermediary device transmits the modified request packet on the common data backplane of the cluster to other devices of the cluster.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Inventors: SANDHYA GOPINATH, ABHISHEK CHAUHAN, HENK BOTS, MOHIT SAXENA, RAMANJANEYULU Y. TALLA, VIVEKANAND RANGARAMAN
  • Publication number: 20130339550
    Abstract: In a cluster environment, nodes participating in the cluster may generate packets with the same source IP to the same destination IP. If those packets get fragmented down stream, then reassembling this packets depends on the source IP, destination IP, protocol and the IP identifier field (IPID) of the IP packet. As the source IP, destination IP and protocol may be fixed, the IPID generation is coordinated across the nodes to support reassembly down stream and avoid tuple collision. The IPID space may be equally split among the nodes in the cluster. Each node generates IPID within its range to avoid a collision with an IPID generated from another node.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Inventors: VIVEKANAND RANGARAMAN, Henk Bots, Sandhya Gopinath
  • Publication number: 20130339549
    Abstract: While each node in a cluster of nodes sources connections with the same IP if each node allocates a port on this IP independently, there may be port clashes. Also, the return traffic is not guaranteed to hit the originating node. These issues are addressed by allocating a port in such a way that the response traffic hashes back to the originating node. A good hash is chosen such that the ports are equally divided among the nodes. When a node leaves, the other nodes take over the port range used by this node. When a node joins, the node takes back its share of ports.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Inventors: VIVEKANAND RANGARAMAN, Ranjith Nath, Sandhya Gopinath, Abhishek Chauhan