IP Library Granted Patent US 8,634,415
Granted Patent B2
US 8,634,415 · App. 13/028,650 · Granted Jan 21, 2014

Method and system for routing network traffic for a blade server

Inventors: Arvind Srinivasan (San Jose, CA); Marcelino M. Dignum (Menlo Park, CA)
Assignee: Oracle International Corporation
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,634,415
App. No.
13/028,650
Granted
Jan 21, 2014
Kind
B2
Abstract

A system and method for routing network traffic for a blade server chassis, involving receiving a packet by a network express manager (NEM); obtaining the L2 address, the L3 address, and the L4 address from the packet; obtaining a first mapping that associates the L2 address with a network function; obtaining a second mapping that associates the network function with a configuration; generating a key based on the network function, the L3 address, and the L4 address; obtaining a third mapping that associates the key with a policy; making a determination to transmit the packet based on the policy; based on the determination, selecting a direct memory access (DMA) engine for transmitting the packet based on the configuration; and based on the determination, transmitting the packet to a blade using the DMA engine and the network function.

Claims (134)

1. A method for routing network traffic for a blade server chassis, comprising:

receiving a first packet by a network express manager (NEM) executing on a processor for the blade server chassis, wherein the blade server chassis comprises the NEM, a chassis interconnect, a plurality of blades operatively connected to the chassis interconnect, and a physical network interface card (PNIC), and wherein a first packet header for the first packet specifies a first Layer 2 (L2) address, a first Layer 3 (L3) address, and a first Layer 4 (L4) L4 address;

obtaining, by the NEM, the first L2 address, the first L3 address, and the first L4 address from the first packet;

obtaining, by the NEM, a first mapping that associates the first L2 address with a first network function;

obtaining, by the NEM, a second mapping that associates the first network function with a first configuration;

generating, by the NEM, a first key based on the first network function, the first L3 address, and the first L4 address;

obtaining, by the NEM, a third mapping that associates the first key with a first policy;

making a first determination, by the NEM, to transmit the first packet based on the first policy; and

based on the first determination:

selecting, by the NEM, a first direct memory access (DMA) engine for transmitting the first packet based on the first configuration, and

transmitting, by the NEM, the first packet to a first blade from the plurality of blades using the first DMA engine and the first network function.

2. The method of claim 1 , further comprising:

modifying, by the NEM, the first mapping to associate the first L2 address with a second network function;

receiving, by the NEM, a second packet by the NEM, wherein a second packet header for the second packet specifies the first L2 address, the first L3 address, and the first L4 address;

obtaining, by the NEM, the first L2 address, the first L3 address, and the first L4 address from the second packet;

obtaining, by the NEM, the first mapping that associates the first L2 address with the second network function;

obtaining, by the NEM, a fourth mapping that associates the second network function with a second configuration;

generating, by the NEM, a second key based on the second network function, the first L3 address, and the first L4 address;

obtaining, by the NEM, a fifth mapping that associates the second key with a second policy;

making, by the NEM, a second determination to transmit the second packet based on the second policy; and

based on the second determination:

selecting, by the NEM, a second DMA engine for transmitting the second packet based on the second configuration, and

transmitting, by the NEM, the second packet to a second blade from the plurality of blades using the second DMA engine and the second network function.

3. The method of claim 1 , further comprising:

modifying, by the NEM, the first mapping to associate the first L2 address with a second network function;

receiving, by the NEM, a second packet by the NEM, wherein a second packet header for the second packet specifies the first L2 address, a second L3 address, and a second L4 address;

obtaining, by the NEM, the first L2 address, the second L3 address, and the second L4 address from the second packet;

obtaining, by the NEM, the first mapping that associates the first L2 address with the second network function;

obtaining, by the NEM, a fourth mapping that associates the second network function with a second configuration;

generating, by the NEM, a second key based on the second network function, the second L3 address, and the second L4 address;

obtaining, by the NEM, a fifth mapping that associates the second key with a second policy;

making, by the NEM, a second determination to transmit the second packet based on the second policy; and

based on the second determination:

selecting, by the NEM, a second DMA engine for transmitting the second packet based on the second configuration, and

transmitting, by the NEM, the second packet to a second blade from the plurality of blades using the second DMA engine and the second network function.

4. The method of claim 1 , further comprising:

instantiating, by the NEM, the first DMA engine for directly transferring packets between a first virtual network interface card (VNIC) executing on the first blade and the PNIC using the first network function;

creating, by the NEM, the first mapping for associating the first L2 address with the first network function;

creating, by the NEM, the second mapping for associating the first network function with the first configuration;

generating, by the NEM, the first key based on the first network function, the first L3 address, and the first L4 address; and

creating, by the NEM, the third mapping for associating the first key with the first policy.

5. The method of claim 1 , wherein the chassis interconnect is a Peripheral Component Interface Express (PCI-E) backplane comprising a plurality of PCI-E endpoints, and wherein the first blade connects to the blade server chassis using a first PCI-E endpoint from the plurality of PCI-E endpoints.

6. The method of claim 5 , wherein the blade server chassis further comprises a virtual switching table (VST) associated with the NEM, wherein the VST associates a first Internet Protocol (IP) address for a first VNIC executing on the first blade with the first PCI-E endpoint.

7. A system, comprising:

a physical network interface card (PNIC);

a chassis interconnect;

a plurality of blades operatively connected to the chassis interconnect;

a ternary content-addressable memory (TCAM) device comprising a plurality of mappings; and

a network express manager (NEM) executing on a processor, wherein the NEM is configured to:

receive a first packet, wherein the first packet specifies a first Layer 2 (L2) address, a first Layer 3 (L3) address, and a first Layer 4 (L4) address;

obtain the first L2 address, the first L3 address, and the first L4 address from the first packet;

obtain a first mapping from the plurality of mappings that associates the first L2 address with a first network function;

obtain a second mapping from the plurality of mappings that associates the first network function with a first configuration;

generate a first key based on the first network function, the first L3 address, and the first L4 address;

obtain a third mapping from the plurality of mappings that associates the first key with a first policy;

make a first determination to transmit the first packet based on the first policy; and

based on the first determination:

select a first direct memory access (DMA) engine for transmitting the first packet based on the first configuration, and

transmit the first packet to a first blade from the plurality of blades using the first DMA engine and the first network function.

8. The system of claim 7 , wherein the NEM is further configured to:

modify the first mapping to associate the first L2 address with a second network function;

receive a second packet, wherein the second packet specifies the first L2 address, the first L3 address, and the first L4 address;

obtain the first L2 address, the first L3 address, and the first L4 address from the second packet;

obtain the first mapping that associates the first L2 address with the second network function;

obtain a fourth mapping that associates the second network function with a second configuration;

generate a second key based on the second network function, the first L3 address, and the first L4 address;

obtain a fifth mapping that associates the second key with a second policy;

make a second determination to transmit the second packet based on the second policy; and

based on the second determination:

select a second DMA engine for transmitting the second packet based on the second configuration, and

transmit the second packet to a second blade from the plurality of blades using the second DMA engine and the second network function.

9. The system of claim 7 , wherein the NEM is further configured to:

modify the first mapping to associate the first L2 address with a second network function;

receive a second packet, wherein the second packet specifies the first L2 address, a second L3 address, and a second L4 address;

obtain the first L2 address, the second L3 address, and the second L4 address from the second packet;

obtain the first mapping that associates the first L2 address with the second network function;

obtain a fourth mapping that associates the second network function with a second configuration;

generate a second key based on the second network function, the second L3 address, and the second L4 address;

obtain a fifth mapping that associates the second key with a second policy;

make a second determination to transmit the second packet based on the second policy; and

based on the second determination:

select a second DMA engine for transmitting the second packet based on the second configuration, and

transmit the second packet to a second blade from the plurality of blades using the second DMA engine and the second network function.

10. The system of claim 7 , wherein the first blade comprises a first virtual network interface card (VNIC) executing on the first blade, and wherein the NEM is further configured to:

instantiate the first DMA engine for directly transferring packets between the first VNIC and the PNIC using the first network function;

create the first mapping for associating the first L2 address with the first network function;

create the second mapping for associating the first network function with the first configuration;

generate the first key based on the first network function, the first L3 address, and the first L4 address; and

create the third mapping for associating the first key with the first policy.

11. The system of claim 7 , wherein the chassis interconnect is a Peripheral Component Interface Express (PCI-E) backplane comprising a plurality of PCI-E endpoints, and wherein the first blade connects to a blade server chassis using a first PCI-E endpoint from the plurality of PCI-E endpoints.

12. The system of claim 11 , wherein the blade server chassis further comprises a virtual switching table (VST) associated with the NEM, wherein the VST associates a first Internet Protocol (IP) address for a first VNIC executing on the first blade with the first PCI-E endpoint.

13. A non-transitory computer readable storage medium comprising software instructions, which when executed by a processor, perform a method, the method comprising:

receiving a first packet by a network express manager (NEM) executing on a processor for a blade server chassis, wherein a blade server chassis comprises the NEM, a chassis interconnect, a plurality of blades operatively connected to the chassis interconnect, and a physical network interface card (PNIC), and wherein a first packet header for the first packet specifies a first Layer 2 (L2) address, a first Layer 3 (L3) address, and a first Layer 3 (L4) address;

obtaining, by the NEM, the first L2 address, the first L3 address, and the first L4 address from the first packet;

performing, by the NEM, a hash of the first L2 address to select a first network function from a plurality of network functions associated with the first L2 address, wherein the first L2 address is associated with the first network function using a first mapping;

obtaining, by the NEM, a second mapping that associates the first network function with a first configuration;

generating, by the NEM, a first key based on the first network function, the first L3 address, and the first L4 address;

obtaining, by the NEM, a third mapping that associates the first key with a first policy;

making a first determination, by the NEM, to transmit the first packet based on the first policy; and

based on the first determination:

selecting, by the NEM, a first direct memory access (DMA) engine for transmitting the first packet based on the first configuration, and

transmitting, by the NEM, the first packet to a first blade from the plurality of blades using the first DMA engine and the first network function.

14. The non-transitory computer readable storage medium of claim 13 , the method further comprising:

modifying, by the NEM, the first mapping to associate the first L2 address with a second network function;

receiving, by the NEM, a second packet by the NEM, wherein a second packet header for the second packet specifies the first L2 address, the first L3 address, and the first L4 address;

obtaining, by the NEM, the first L2 address, the first L3 address, and the first L4 address from the second packet;

performing, by the NEM, a hash of the first L2 address to select the second network function from the plurality of network functions associated with the first L2 address;

obtaining, by the NEM, a fourth mapping that associates the second network function with a second configuration;

generating, by the NEM, a second key based on the second network function, the first L3 address, and the first L4 address;

obtaining, by the NEM, a fifth mapping that associates the second key with a second policy;

making, by the NEM, a second determination to transmit the second packet based on the second policy; and

based on the second determination:

selecting, by the NEM, a second DMA engine for transmitting the second packet based on the second configuration, and

transmitting, by the NEM, the second packet to a second blade from the plurality of blades using the second DMA engine and the second network function.

15. The non-transitory computer readable storage medium of claim 13 , the method further comprising:

modifying, by the NEM, the first mapping to associate the first L2 address with a second network function;

receiving, by the NEM, a second packet by the NEM, wherein a second packet header for the second packet specifies the first L2 address, a second L3 address, and a second L4 address;

obtaining, by the NEM, the first L2 address, the second L3 address, and the second L4 address from the second packet;

performing, by the NEM, a hash of the first L2 address to select the second network function from the plurality of network functions associated with the first L2 address;

obtaining, by the NEM, a fourth mapping that associates the second network function with a second configuration;

generating, by the NEM, a second key based on the second network function, the second L3 address, and the second L4 address;

obtaining, by the NEM, a fifth mapping that associates the second key with a second policy;

making, by the NEM, a second determination to transmit the second packet based on the second policy; and

based on the second determination:

selecting, by the NEM, a second DMA engine for transmitting the second packet based on the second configuration, and

transmitting, by the NEM, the second packet to a second blade from the plurality of blades using the second DMA engine and the second network function.

16. The non-transitory computer readable storage medium of claim 13 , the method further comprising:

instantiating, by the NEM, the first DMA engine for directly transferring packets between a first virtual network interface card (VNIC) executing on the first blade and the PNIC using the first network function;

creating, by the NEM, the first mapping for associating the first L2 address with the first network function;

creating, by the NEM, the second mapping for associating the first network function with the first configuration;

generating, by the NEM, the first key based on the first network function, the first L3 address, and the first L4 address; and

creating, by the NEM, the third mapping for associating the first key with the first policy.

17. The non-transitory computer readable storage medium of claim 13 , wherein the chassis interconnect is a Peripheral Component Interface Express (PCI-E) backplane comprising a plurality of PCI-E endpoints, and wherein the first blade connects to the blade server chassis using a first PCI-E endpoint from the plurality of PCI-E endpoints.

18. The non-transitory computer readable storage medium of claim 17 , wherein the blade server chassis further comprises a virtual switching table (VST) associated with the NEM, wherein the VST associates a first Internet Protocol (IP) address for a first VNIC executing on the first blade with the first PCI-E endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2011
From: SRINIVASAN, ARVIND; DIGNUM, MARCELINO M.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025832/0025 →
Continuity (1)
Related Publication 20120207156A1 · Aug 16, 2012