IP Library Granted Patent US 9,319,441
Granted Patent B2
US 9,319,441 · App. 14/461,197 · Granted Apr 19, 2016

Processor allocation for multi-core architectures

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,319,441
App. No.
14/461,197
Granted
Apr 19, 2016
Kind
B2
Abstract

Methods, computing devices, and computer readable storage media for testing network connections are disclosed. A first processor of a plurality of processors may define a new TCP connection to be opened. The first processor may apply a hash function to determine a second processor of the plurality of processors to open the new TCP connection. The first processor may provide data defining the new TCP connection to the second processor. The second processor may open the new TCP connection in accordance with the data provided by the first processor.

Claims (57)

1. A method performed by a test system to test network connections, comprising:

a first processor of a plurality of processors defining a new TCP connection to be opened;

the first processor applying a hash function to determine a second processor of the plurality of processors to open the new TCP connection;

the first processor transferring data defining the new TCP connection to the second processor; and

the second processor opening the new TCP connection in accordance with the data transferred from the first processor.

2. The method of claim 1 , wherein the first processor transferring data defining the new TCP connection to the second processor comprises the first processor writing the data to a memory shared by the plurality of processors.

3. The method of claim 1 , wherein the first processor transferring data defining the new TCP connection to the second processor comprises the first processor writing the data to a memory queue dedicated to transferring data from the first processor to the second processor.

4. The method of claim 3 , wherein the memory queue dedicated to transferring data from the first processor to the second processor is one of an N×N array of queues, where N is a number of processors in the plurality of processors.

5. The method of claim 4 , wherein

each row of the N×N array of queues is uniquely associated with a corresponding one of the plurality of processors that writes data to the queues in the row, and

each column of the N×N array of queues is uniquely associated with a corresponding one of the plurality of processors that retrieves data from the queues in the column.

6. The method of claim 1 , wherein defining a new TCP connection includes defining at least a source IP address, a destination IP address, a source TCP port, and a destination TCP port.

7. The method of claim 6 , wherein applying a hash function comprises applying a hash function to the source IP address, the destination IP address, the source TCP port, and the destination TCP port to generate a hash value indicative of the second processor.

8. The method of claim 7 , further comprising:

receiving at least one packet from a remote device via the new TCP connection;

applying the hash function to a source IP address, a destination IP address, a source TCP port, and a destination TCP port extracted from a header of the received packet to generate a hash value indicative of an appropriate processor from the plurality of processors to process the received packet: and

the appropriate processor processing the received packet through a TCP/IP protocol stack.

9. A computing device, comprising:

a plurality of processors;

wherein a first processor of the plurality of processors executes stored instruction causing the first processor to perform actions comprising:

defining a new TCP connection to be opened;

applying a hash function to determine a second processor of the plurality of processors to open the new TCP connection; and

transferring data defining the new TCP connection to the second processor;

wherein the second processor of the plurality of processors executes stored instructions causing the second processor to open the new TCP connection in accordance with the data transferred from the first processor.

10. The computing device of claim 9 , further comprising:

a memory shared by the plurality of processors,

wherein the first processor transferring data defining the new TCP connection to the second processor comprises the first processor writing the data to the memory.

11. The computing device of claim 10 , wherein the first processor writing the data to the memory comprises the first processor writing the data to a memory queue dedicated to transferring data from the first processor to the second processor.

12. The computing device of claim 11 , wherein the memory queue dedicated to transferring data from the first processor to the second processor is one queue of an N×N array of queues, where N is a number of processors in the plurality of processors.

13. The computing device of claim 12 , wherein

each row of the N×N array of queues is uniquely associated with a corresponding one of the plurality of processors that writes data to the queues in the row, and

each column of the N×N array of queues is uniquely associated with a corresponding one of the plurality of processors that retrieves data from the queues in the column.

14. The computing device of claim 9 , wherein defining a new TCP connection includes defining at least a source IP address, a destination IP address, a source TCP port, and a destination TCP port.

15. The computing device of claim 14 , wherein applying a hash function comprises applying a hash function to the source IP address, the destination IP address, the source TCP port, and the destination TCP port to generate a hash value indicative of the second processor.

16. The computing device of claim 15 , further comprising:

network interface hardware to transmit and receive packets via a network, the network interface hardware configured to:

receive a packet from a remote device via the new TCP connection; apply the hash function to a source IP address, a destination IP address, a source TCP port, and a destination TCP port extracted from a header of the received packet to generate a hash value indicative of the appropriate processor to process the received packet; and

write the received packet to a receive buffer associated with the second processor within the shared memory.

17. The computing device of claim 16 , the actions performed by the appropriate processor further comprising:

retrieving the received packet from the receive buffer associated with the second processor; and processing the received packet through a TCP/IP protocol stack.

18. A machine-readable storage medium storing instructions that, when executed by a computing device having a plurality of processors, causes actions including:

a first processor of the plurality of processors defining a new TCP connection to be opened;

the first processor applying a hash function to determine a second processor of the plurality of processors to open the new TCP connection;

the first processor transferring data defining the new TCP connection to the second processor; and

the second processor opening the new TCP connection in accordance with the data transferred from the first processor.

19. The machine-readable storage medium of claim 18 , wherein the first processor transferring data defining the new TCP connection to the second processor comprises the first processor writing the data to a memory shared by the plurality of processors.

20. The machine-readable storage medium of claim 18 , wherein the first processor transferring data defining the new TCP connection to the second processor comprises the first processor writing the data to a memory queue dedicated to transferring data from the first processor to the second processor.

21. The machine-readable storage medium of claim 20 , wherein the memory queue dedicated to transferring data from the first processor to the second processor is one of an N×N array of queues, where N is a number of processors in the plurality of processors.

22. The machine-readable storage medium of claim 21 , wherein

each row of the N×N array of queues is uniquely associated with a corresponding one of the plurality of processors that writes data to the queues in the row, and

each column of the N×N array of queues is uniquely associated with a corresponding one of the plurality of processors that retrieves data from the queues in the column.

23. The machine-readable storage medium of claim 18 , wherein defining a new TCP connection includes defining at least a source IP address, a destination IP address, a source TCP port, and a destination TCP port.

24. The machine-readable storage medium of claim 23 , wherein applying a hash function comprises applying a hash function to the source IP address, the destination IP address, the source TCP port, and the destination TCP port to generate a hash value indicative of the second processor.

25. The machine-readable storage medium of claim 18 , the actions performed further including:

receiving at least one packet from a remote device via the new TCP connection;

applying the hash function to a source IP address, a destination IP address, a source TCP port, and a destination TCP port extracted from a header of the received packet to generate a hash value indicative of an appropriate processor from the plurality of processors to process the received packet: and

the appropriate processor processing the received packet through a TCP/IP protocol stack.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: IXIA
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 044222/0695 →
RELEASE OF SECURITY INTEREST Recorded Apr 26, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: IXIA
Reel/Frame 042335/0465 →
SECURITY INTEREST Recorded Mar 3, 2015
From: IXIA; ANUE SYSTEMS, INC.; BREAKINGPOINT SYSTEMS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 035121/0860 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2014
From: PYATKOVSKIY, MAKSIM
To: IXIA
Reel/Frame 033548/0923 →