Patents by Inventor Sandhya Gopinath

Sandhya Gopinath 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: 20130339548
    Abstract: In the present solution, when a cluster node sends an ARP request for an external IP, the node sends a message to all the other nodes, which are part of the CLAG to expect an ARP reply for the IP. When a node in the cluster receives the ARP reply, the node informs the other nodes which are part of the same CLAG to update the MAC address. Also when an ARP entry is learned/updated over a CLAG link as part of an ARP request/Gratuitous ARP, the node learning/updating the ARP entry will inform other nodes which are part of the same CLAG about the learned/updated ARP entry. Nodes in a cluster may communicate between with each other over a dedicated backplane, which may be a separate physical medium.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Inventors: SANDHYA GOPINATH, Ranjith Nath, Abhishek Chauhan
  • Publication number: 20130339516
    Abstract: The present invention is directed towards forwarding network packets in a cluster network. A predetermined identifier may be inserted into a Media Access Control (MAC) ID field of an Ethernet header of a packet to distinguish various types of traffic. Newly received packets may be identified due to the absence of the identifier. The identifier may be added to the source MAC ID field of the Ethernet header of the packet, and the packet may be distributed to cluster nodes for processing via an inter-node communication bus. Thus, received packets with the identifier in the source MAC ID field may be identified as steered for processing by an internal node of the cluster. After processing the packet, the internal node may transmit the processed packets via the inter-node bus with a destination MAC ID including the identifier.
    Type: Application
    Filed: June 15, 2012
    Publication date: December 19, 2013
    Inventors: Abhishek Chauhan, Henk Bots, Sandhya Gopinath
  • Patent number: 8327181
    Abstract: The present disclosure presents systems and methods for maintaining operation of a first multi-core appliance 200 by a second multi-core appliance upon failover of the first multi-core appliance. A secondary appliance may receive information about configuration settings and operations of a plurality of packet processing engines (PPEs), each of the PPEs operating on one of a plurality of cores of the primary multi-core appliance. Status of operation of the plurality of PPEs of the primary appliance may be monitored by exchanging communication between the primary and secondary appliances. Configuration settings for each of a PPEs operating on the cores of the secondary appliance may be established responsive to detection that one or more of the PPEs of the primary appliance is unavailable. Configuration information for each of the PPEs of the secondary appliance may be propagated to the plurality of the PPEs of the secondary appliance.
    Type: Grant
    Filed: June 22, 2009
    Date of Patent: December 4, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Sandhya Gopinath, Jyotheesh Rao Kurma
  • Publication number: 20120033680
    Abstract: Described herein is a method and system for directing outgoing data packets from packet engines to a transmit queue of a NIC in a multi-core system, and a method and system for directing incoming data packets from a receive queue of the NIC to the packet engines. Packet engines store outgoing traffic in logical transmit queues in the packet engines. An interface module obtains the outgoing traffic and stores it in a transmit queue of the NIC, after which the NIC transmits the traffic from the multi-core system over a network. The NIC receives incoming traffic and stores it in a NIC receive queue. The interface module obtains the incoming traffic and applies a hash to a tuple of each obtained data packet. The interface module then stores each data packet in the logical receive queue of a packet engine on the core identified by the result of the hash.
    Type: Application
    Filed: August 11, 2011
    Publication date: February 9, 2012
    Inventors: Sandhya Gopinath, Henk Bots
  • Publication number: 20110280244
    Abstract: Described herein is a method and system for distributing whole and fragmented requests and responses across a multi-core system. Each core executes a packet engine that further processes data packets and data packet fragments allocated to that core. A flow distributor executing within the multi-core system forwards client requests to a packet engine on a core that is selected based on a value generated when a hash is applied to a tuple comprising a client IP address, a client port, a server IP address and a server port identified in the request. The packet engine maintains each element of the tuple and forwards the request to the selected core. The packet engine can also process data packet fragments by assembling the fragments prior to transmitting them to the selected core, or by transmitting the data packet fragments to the selected core.
    Type: Application
    Filed: July 25, 2011
    Publication date: November 17, 2011
    Inventors: Sandhya Gopinath, Henk Bots, Ramanjaneyulu Y. Talla, Abhishek Chauhan
  • Patent number: 8018961
    Abstract: Described herein is a method and system for directing outgoing data packets from packet engines to a transmit queue of a NIC in a multi-core system, and a method and system for directing incoming data packets from a receive queue of the NIC to the packet engines. Packet engines store outgoing traffic in logical transmit queues in the packet engines. An interface module obtains the outgoing traffic and stores it in a transmit queue of the NIC, after which the NIC transmits the traffic from the multi-core system over a network. The NIC receives incoming traffic and stores it in a NIC receive queue. The interface module obtains the incoming traffic and applies a hash to a tuple of each obtained data packet. The interface module then stores each data packet in the logical receive queue of a packet engine on the core identified by the result of the hash.
    Type: Grant
    Filed: June 22, 2009
    Date of Patent: September 13, 2011
    Assignee: Citrix Systems, Inc.
    Inventors: Sandhya Gopinath, Henk Bots
  • Patent number: 8009682
    Abstract: Described herein is a method and system for distributing whole and fragmented requests and responses across a multi-core system. Each core executes a packet engine that further processes data packets and data packet fragments allocated to that core. A flow distributor executing within the multi-core system forwards client requests to a packet engine on a core that is selected based on a value generated when a hash is applied to a tuple comprising a client IP address, a client port, a server IP address and a server port identified in the request. The packet engine maintains each element of the tuple and forwards the request to the selected core. The packet engine can also process data packet fragments by assembling the fragments prior to transmitting them to the selected core, or by transmitting the data packet fragments to the selected core.
    Type: Grant
    Filed: June 22, 2009
    Date of Patent: August 30, 2011
    Assignee: Citrix Systems, Inc.
    Inventors: Sandhya Gopinath, Henk Bots, Ramanjaneyulu Y Talla, Abhishek Chauhan
  • Publication number: 20100325257
    Abstract: The present application is directed towards systems and methods for providing link management in a multi-core system. In some embodiments, the present application describes solutions for managing address resolution in IPv4 networks in a multi-core system. In other embodiments, the present application describes solutions for managing neighbor discovery in IPv6 networks in a multi-core system. In still other embodiments, the present application describes solutions for managing network bridging in a multi-core system. In yet other embodiments, the present application describes solutions for managing link aggregation in a multi-core system. And in still other embodiments, the present application describes solutions for managing virtual routers in a multi-core system.
    Type: Application
    Filed: June 22, 2010
    Publication date: December 23, 2010
    Inventors: Deepak Goel, Sandhya Gopinath, Jyotheesh Rao Kurma
  • Publication number: 20100322265
    Abstract: Described herein is a method and system for directing outgoing data packets from packet engines to a transmit queue of a NIC in a multi-core system, and a method and system for directing incoming data packets from a receive queue of the NIC to the packet engines. Packet engines store outgoing traffic in logical transmit queues in the packet engines. An interface module obtains the outgoing traffic and stores it in a transmit queue of the NIC, after which the NIC transmits the traffic from the multi-core system over a network. The NIC receives incoming traffic and stores it in a NIC receive queue. The interface module obtains the incoming traffic and applies a hash to a tuple of each obtained data packet. The interface module then stores each data packet in the logical receive queue of a packet engine on the core identified by the result of the hash.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Sandhya Gopinath, Henk Bots
  • Publication number: 20100325474
    Abstract: The present disclosure presents systems and methods for maintaining operation of a first multi-core appliance 200 by a second multi-core appliance upon failover of the first multi-core appliance. A secondary appliance may receive information about configuration settings and operations of a plurality of packet processing engines (PPEs), each of the PPEs operating on one of a plurality of cores of the primary multi-core appliance. Status of operation of the plurality of PPEs of the primary appliance may be monitored by exchanging communication between the primary and secondary appliances. Configuration settings for each of a PPEs operating on the cores of the secondary appliance may be established responsive to detection that one or more of the PPEs of the primary appliance is unavailable. Configuration information for each of the PPEs of the secondary appliance may be propagated to the plurality of the PPEs of the secondary appliance.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Sandhya Gopinath, Jyotheesh Rao Kurma
  • Publication number: 20100287227
    Abstract: Described herein is a method and system for distributing request and responses across a multi-core system. Each core executes a packet engine that further processes data packets allocated to that core. A flow distributor executing within the multi-core system forwards client requests to a packet engine on a core that is selected based on a value generated when a hash is applied to a tuple comprising a client IP address, a client port, a server IP address and a server port identified in the request. The packet engine selects a first IP address and a first port of the core, and determines whether a hash of a tuple comprising those values identifies the selected core. A modification is then made to the client request so that the client request includes a tuple comprising the first IP address, the server IP address, the first port and the server port.
    Type: Application
    Filed: June 22, 2009
    Publication date: November 11, 2010
    Inventors: Deepak Goel, Jyotheesh Kurma, Sandhya Gopinath
  • Publication number: 20100284404
    Abstract: Described herein is a method and system for distributing whole and fragmented requests and responses across a multi-core system. Each core executes a packet engine that further processes data packets and data packet fragments allocated to that core. A flow distributor executing within the multi-core system forwards client requests to a packet engine on a core that is selected based on a value generated when a hash is applied to a tuple comprising a client IP address, a client port, a server IP address and a server port identified in the request. The packet engine maintains each element of the tuple and forwards the request to the selected core. The packet engine can also process data packet fragments by assembling the fragments prior to transmitting them to the selected core, or by transmitting the data packet fragments to the selected core.
    Type: Application
    Filed: June 22, 2009
    Publication date: November 11, 2010
    Inventors: Sandhya Gopinath, Henk Bots, Ramanjaneyulu Y. Talla, Abhishek Chauhan