IP Library Granted Patent US 8,447,880
Granted Patent B2
US 8,447,880 · App. 11/642,490 · Granted May 21, 2013

Network stack instance architecture with selection of transport layers

Inventors: Darrin P. Johnson (Mountain View, CA); Erik Nordmark (Mountain View, CA); Kais Belgaied (Sunnyvale, CA)
Assignee: Oracle America, Inc.
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,447,880
App. No.
11/642,490
Granted
May 21, 2013
Kind
B2
Abstract

A method for configuring a network on a host includes obtaining a first virtual network stack and a second virtual network stack on the host, configuring a first transport layer implementation on the first virtual network stack, configuring a second transport layer implementation on the second virtual network stack, receiving a packet by the host, sending a packet to the first virtual network stack, and processing the packet using the first transport layer implementation.

Claims (57)

1. A method for configuring a network on a host, comprising:

obtaining a first virtual network stack associated with a first container and a second virtual network stack associated with a second container, wherein the first virtual network stack, the second virtual network stack, the first container, and the second container are on the host, wherein the first container comprises a first isolated execution environment executing on at least one processor of the host, and wherein the second container comprises a second isolated execution environment executing on the at least one processor;

receiving an address family, a socket type, and a protocol number;

selecting a first transport layer implementation for the first virtual network stack using the address family, the socket type, and the protocol number;

configuring the first virtual network stack using the first transport layer implementation;

selecting a second transport layer implementation on the second virtual network stack;

configuring the second virtual network stack using the second transport layer implementation;

rebooting the first container, wherein rebooting the first container does not impact the second container;

receiving a packet by a network interface card (NIC) operatively connected to the host;

determining, by a classifier on the NIC, that the packet is associated with the first container;

sending a packet to the first virtual network stack;

processing the packet using the first transport layer implementation; and

sending the processed packet to the first container.

2. The method of claim 1 , further comprising:

sending a test packet to the first virtual network stack; and

recording a connection state of the first virtual network stack upon receiving the test packet by the first virtual network stack.

3. The method of claim 1 , wherein the first transport layer implementation comprises a first transport protocol, and wherein the second transport layer implementation comprises a second transport protocol.

4. The method of claim 1 , wherein the first transport layer implementation comprises a first congestion control algorithm, and wherein the second transport layer implementation comprises a second congestion control algorithm.

5. A system for configuring a network on a host, comprising:

a network interface card (NIC), operatively connected to the host, comprising a classifier configured to determine the destination container of an incoming packet; and

the host, comprising:

at least one processor;

a memory;

a first virtual network stack associated with a first container, wherein the first container comprises a first isolated execution environment executing on the at least one processor;

a second virtual network stack associated with a second container, wherein the second container comprises a second isolated execution environment executing on the at least one processor; and

wherein the at least one processor is configured to execute instructions stored on the memory, enabling the system to:

obtain the first virtual network stack and the second virtual network stack;

receive an address family, a socket type, and a protocol number;

select a first transport layer implementation for the first virtual network stack using the address family, the socket type, and the protocol number;

configure the first virtual network stack using the first transport layer implementation;

select a second transport layer implementation on the second virtual network stack;

configure the second virtual network stack using the second transport layer implementation;

receive, from the NIC, a packet associated with the first container;

send the packet to the first virtual network stack;

process the packet using the first transport layer implementation; and

sending the processed packet to the first container.

6. The system of claim 5 , wherein the host is further configured to:

send a test packet to the first virtual network stack; and

record a connection state of the first virtual network stack upon receiving the test packet by the first virtual network stack.

7. The system of claim 5 , wherein the first transport layer implementation comprises a first transport protocol, and wherein the second transport layer implementation comprises a second transport protocol.

8. The system of claim 5 , wherein the first transport layer implementation comprises a first congestion control algorithm, and wherein the second transport layer implementation comprises a second congestion control algorithm.

9. A non-transitory computer usable medium having computer readable program code embodied therein for causing a computer system to execute a method for configuring a network on a host, the method comprising:

obtaining a first virtual network stack associated with a first container and a second virtual network stack associated with a second container, wherein the first virtual network stack, the second virtual network stack, the first container, and the second container are on the host, wherein the first container comprises a first isolated execution environment executing on at least one processor of the host, and wherein the second container comprises a second isolated execution environment executing on the at least one processor;

receiving an address family, a socket type, and a protocol number;

selecting a first transport layer implementation for the first virtual network stack using the address family, the socket type, and the protocol number;

configuring the first virtual network stack using the first transport layer implementation;

selecting a second transport layer implementation on the second virtual network stack;

configuring the second virtual network stack using the second transport layer implementation;

receiving a packet by a network interface card (NIC) operatively connected to the host;

determining, by a classifier on the NIC, that the packet is associated with the first container;

sending a packet to the first virtual network stack;

processing the packet using the first transport layer implementation; and

sending the processed packet to the first container.

10. The non-transitory computer usable medium of claim 9 , the method further comprising:

sending a test packet to the first virtual network stack; and

recording a connection state of the first virtual network stack upon receiving the test packet by the first virtual network stack.

11. The non-transitory computer usable medium of claim 9 , wherein the first transport layer implementation comprises a first transport protocol, and wherein the second transport layer implementation comprises a second transport protocol.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2006
From: JOHNSON, DARRIN P.; NORDMARK, ERIK; BELGAIED, KAIS
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018734/0912 →
Continuity (1)
Related Publication 20080151779A1 · Jun 26, 2008