IP Library Granted Patent US 8,874,786
Granted Patent B2
US 8,874,786 · App. 13/593,106 · Granted Oct 28, 2014

Network traffic control by association of network packets and processes

Inventors: Matthew L. Domsch (Austin, TX); Hendrich M. Hernandez (Austin, TX); Robert L. Winter (Burnet, TX); Shawn J. Dube (Austin, TX)
Assignee: Dell Products L.P.
G06F9/45558G06F9/5077G06F2009/45595
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 8,874,786
App. No.
13/593,106
Filed
Aug 23, 2012
Granted
Oct 28, 2014
Kind
B2
Art Unit
2448
USPC
709/238
Abstract

An information handling system (IHS) includes a plurality of processors that include a cache memory, and a receive side scaling (RSS) indirection table with a plurality of pointers each pointing to a processor. A network data packet received by the IHS determines a pointer to a first processor. In response, information associated with the network data packet is transferred to the cache memory of the first processor, The IHS also includes a process scheduler that moves a process associated with the network data packet from a second processor to the first processor, and RSS module that directs the process scheduler to move the process and associates the first pointer with the processor in response to directing the process scheduler. In one embodiment, the processes are virtual machines so that network packets associated with a virtual machine are processed by sending an interrupt to a processor supporting executing the virtual machine.

Claims (75)

1. An information handling system comprising:

plural processors, each processor operable to execute one or more processes;

memory interfaced with the processors and operable to store information in support of execution of the one or more processes;

a process scheduler interfaced with the plural processors and operable to assign the processes to the processors for execution;

one or more network interface cards interfaced with the processors, the network interface cards operable to receive network packets having information from a network and to communicate the information of the network packets to a selected of the plural processors;

a network flow assignment manager interfaced with the process scheduler and the one or more network interface cards, the network flow assignment manager operable to direct the one or more network interface cards to communicate the information of one or more network packets to one of the plural processors based upon an association between the information and the one or more processes executing on the one of the plural processors;

a hypervisor executing on one or more of the processors, the hypervisor operable to support execution of plural virtual machines on the plural processors over plural virtual processors; and

a virtual network interface card executing over the hypervisor and operable to receive a network packet from the hypervisor, the hypervisor including a virtual processor identifier with the network packet, the virtual processor identifier associated with a physical processor identifier, the virtual network interface card further operable to apply the virtual processor identifier to raise an interrupt with the virtual processor to process the network packet.

2. The information handling system of claim 1 wherein the network flow assignment manager maps associations between the information and the one or more processes executing on the plural processors by reference to assignments by the process scheduler of the one or more processes to the plural processors.

3. The information handling system of claim 1 wherein the network flow assignment manger maps associations between the information and the one or more processes executing on the plural processors by directing the process scheduler to assign one or more of the processes to the one predetermined of the plural processors.

4. The information handling system of claim 1 wherein the one or more processes comprise a virtual machine.

5. The information handling system of claim 1 wherein the one or more processes comprise an application executing over a virtual machine.

6. An information handling system comprising:

plural processors, each processor operable to execute one or more processes;

memory interfaced with the processors and operable to store information in support of execution of the one or more processes;

a process scheduler interfaced with the plural processors and operable to assign the processes to the processors for execution;

one or more network interface cards interfaced with the processors, the network interface cards operable to receive network packets having information from a network and to communicate the information of the network packets to a selected of the plural processors;

a network flow assignment manager interfaced with the process scheduler and the one or more network interface cards, the network flow assignment manager operable to direct the one or more network interface cards to communicate the information of one or more network packets to one of the plural processors based upon an association between the information and the one or more processes executing on the one of the plural processors;

a hypervisor executing on one or more of the processors, the hypervisor operable to support execution of plural virtual machines on the plural processors;

plural virtual machines executing over the hypervisor, the hypervisor defining plural virtual processors and at least one virtual network interface card;

a virtual process scheduler executing over the hypervisor and operable to assign virtual machine processes to the virtual processors for execution; and

a virtual network flow assignment manager executing over the hypervisor, the virtual network flow assignment manager operable to direct the at least one virtual network interface card to communicate the information of one or more network packets to a predetermined one of the plural virtual processors based upon an association between the information and the one or more virtual machine processes.

7. A method for processing a network packet received at an information handling system having plural processors, the method comprising:

receiving the network packet at a network interface card of the information handling system;

mapping a process to a one of the plural processors executing the process;

generating a hash from predetermined information of the network packet;

comparing the generated hash with a predetermined hash value associated with the process;

applying the mapping to identify the one of the plural processors to receive the network packet;

and

raising an interrupt to the one of the plural processors to process the network packet with the one of the plural processors.

8. The method of claim 7 wherein the predetermined process information comprises a virtual local area network identifier (VLAN ID).

9. A method for processing a network packet received at an information handling system having plural processors, the method comprising:

receiving the network packet at a network interface card of the information handling system;

analyzing the network packet to associate the network packet with one of the plural processors; and

in response to analyzing, raising an interrupt to the one of the plural processors to process the network packet with the one of the plural processors;

wherein analyzing the network packet to associate the network packet with one of the plural processors further comprises:

determining that a process has a network flow of at least a predetermined amount;

in response to determining, moving the process to the one of the plural processors;

associating a hash of information of the process with the one of the plural processors; and

determining that a hash of the network packet is the hash of the information of the process.

10. The method of claim 9 wherein analyzing the network packet to associate the network packet with one of the plural processors further comprises:

executing a hypervisor on another of the processors, the hypervisor supporting execution of plural virtual machines on the plural processors, each virtual machine associated with a virtual processor;

analyzing the network packet to associate the network packet with one of the virtual processors; and

associating the one of the virtual processors with the one of the plural processors.

11. The method of claim 9 wherein analyzing the network packet to associate the network packet with one of the virtual processors further comprises:

mapping a virtual machine process to the one of virtual processors executing the virtual machine process;

comparing network packet information to predetermined virtual machine process information to associate the network packet with the virtual machine process; and

applying the mapping to identify the one of the virtual processors to receive the network packet.

12. A method for processing a network packet received at an information handling system having plural processors, the method comprising:

receiving the network packet at a network interface card of the information handling system;

analyzing the network packet to associate the network packet with one of the plural processors; and

in response to analyzing, raising an interrupt to the one of the plural processors to process the network packet with the one of the plural processors;

wherein analyzing the network packet to associate the network packet with one of the plural processors further comprises:

executing a hypervisor on another of the processors, the hypervisor having a virtual network interface card and supporting execution of plural virtual machines on the plural processors;

marking the network packet by the hypervisor with a virtual processor identifier that identifies a virtual processor associated with processing of the network packet;

placing the network packet by the hypervisor in a buffer of the virtual network interface card;

raising an interrupt by the virtual network interface card to the virtual processor associated with the virtual processor identifier; and

mapping the virtual processor to the one of the plural processors to process the network packet with the one of the plural processors.

13. A method for selecting a processor from plural processors to process a network packet, the method comprising:

receiving the network packet at a network interface card;

performing a hash of predetermined information of the network packet;

associating the hash with one of plural process hashes, each process hash associated with a process running on one or more of the processors;

determining a processor of the plural processors associated with the associated one of plural process hashes; and

issuing an interrupt to the determined processor to process the network packet.

14. The method of claim 13 wherein the network interface card is a virtual network interface card, each process is associated with a virtual machine running on a virtual processor, determining a processor further comprises mapping the virtual machine virtual processors to physical processors and issuing an interrupt further comprises issuing an interrupt to the physical processor that maps to the virtual processor associated with the process.

15. A method for selecting a physical processor from plural physical processors to process a network packet, the plural physical processors supporting plural virtual processors, the method comprising:

receiving a network packet in a virtual network interface card;

associating the network packet with a process;

associating the process with a virtual processor;

issuing an interrupt from the virtual network interface card to the virtual processor associated with the network packet process;

receiving the interrupt at a hypervisor supporting the virtual network interface card; and

issuing an interrupt by the hypervisor to the physical processor supporting the virtual processor.

16. The method of claim 15 wherein:

associating the process with a virtual processor further comprises mapping processes to virtual processors and physical processors with a hypervisor; and

issuing an interrupt to the virtual processor further comprises providing the mapping to the virtual network interface card.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2012
From: DOMSCH, MATTHEW L.; HERNANDEZ, HENDRICH M.; WINTER, ROBERT L.; DUBE, SHAWN J.
To: DELL PRODUCTS L.P.
Reel/Frame 028838/0554 →
Continuity (2)
Continuation In Part 13281192 · Oct 25, 2011
Related Publication 20130104127A1 · Apr 25, 2013