SYSTEMS AND METHODS FOR IDENTIFYING A PROCESSOR FROM A PLURALITY OF PROCESSORS TO PROVIDE SYMMETRICAL REQUEST AND RESPONSE PROCESSING
First Claim
1. A method for providing symmetrical request and response processing across a packet engine of a plurality of packet engines, each of the plurality of packet engines executing on a respective core of a plurality of cores in a multi-core system intermediary to a client and a server, the method comprising:
- a) receiving, by a packet engine on a first core of the multi-core system intermediary to a client and a server, from a flow distributor, a request of the client to the server, the first core selected by the flow distributor based on a hash of a first tuple comprising a client internet protocol address, a client port, a server internet protocol address and a server port identified in the request;
b) selecting, by the packet engine, a first internet protocol address of one or more internet protocol addresses of the first core and a first port from a plurality of ports of the first core;
c) determining, by the packet engine, that a hash of a second tuple comprising at least the first internet protocol address and the first port, identifies the first core;
d) identifying, by the packet engine, that the first port is available; and
e) modifying, by the packet engine, the request of the client to identify the first internet protocol address as the client internet protocol address and the first port as the client port.
7 Assignments
0 Petitions
Accused Products
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.
128 Citations
28 Claims
-
1. A method for providing symmetrical request and response processing across a packet engine of a plurality of packet engines, each of the plurality of packet engines executing on a respective core of a plurality of cores in a multi-core system intermediary to a client and a server, the method comprising:
-
a) receiving, by a packet engine on a first core of the multi-core system intermediary to a client and a server, from a flow distributor, a request of the client to the server, the first core selected by the flow distributor based on a hash of a first tuple comprising a client internet protocol address, a client port, a server internet protocol address and a server port identified in the request; b) selecting, by the packet engine, a first internet protocol address of one or more internet protocol addresses of the first core and a first port from a plurality of ports of the first core; c) determining, by the packet engine, that a hash of a second tuple comprising at least the first internet protocol address and the first port, identifies the first core; d) identifying, by the packet engine, that the first port is available; and e) modifying, by the packet engine, the request of the client to identify the first internet protocol address as the client internet protocol address and the first port as the client port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for providing symmetrical request and response processing across a packet engine of a plurality of packet engines, each of the plurality of packet engines executing on a respective core of a plurality of cores in a multi-core system intermediary to a client and a server, the system comprising:
-
a multi-core system intermediary to a client and a server, the multi-core system comprising a plurality of cores; a flow distributor receiving a request of a client to a server, and selecting a first core based on a hash of a first tuple comprising a client internet protocol address, a client port, a server internet protocol address and a server port identified in the client request; and a packet engine executing on a first core of the multi-core system, the packet engine; receiving the client request, selecting a first internet protocol address of one or more internet protocol addresses of the first core and a first port from a plurality of ports of the first core, determining that a hash of a second tuple comprising at least the first internet protocol address and the first port, identifies the first core, identifying that the first port is available, and modifying the client request to identify the first internet protocol address as the client internet protocol address and the first port as the client port. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification