IP Library › Granted Patent US 8,073,979
Granted Patent B2
US 8,073,979 · App. 12/881,101 · Granted Dec 6, 2011

Enhanced network system through the combination of networking objects

Assignee: Microsoft 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,073,979
App. No.
12/881,101
Granted
Dec 6, 2011
Kind
B2
Abstract

Reducing the cost of framing network packets in a virtual machine environment combines certain network objects to eliminate the cost of fully framing packets between the combined objects. In a virtual environment, for example, this allows a virtual NIC in one partition to send only data to a network provider partition and to rely on the latter to frame and route the data. A source network object, destination network object, or an intermediate network object may enable a separate intermediate network object to frame its data so that the network system may take advantage of offload framing when one or more of the intermediate network object's ports has the capacity to offload framing.

Claims (35)

1. A system, comprising:

at least one processor;

at least one memory in communication with said at least one processor when the system is operational;

a physical network interface card (NIC) in communication with said at least one processor when the system is operational;

computer executable instructions stored in said at least one memory that when executed by said at least one processor instantiate a first partition, said first partition controlling access to the physical NIC;

computer executable instructions stored in said at least one memory that when executed by said at least one processor instantiate a communication channel between the first partition and a second partition, wherein the second partition is configured to send data packets that are not fully framed from a virtual NIC in a second partition to the first partition;

computer executable instructions stored in said at least one memory that when executed by said at least one processor instantiate a control channel that is separate from said communication channel, said control channel configured to communicate control data messages between the virtual NIC and the first partition, wherein said control data messages enable the communication of not fully framed data packets between the virtual NIC and the first partition; and

computer executable instructions stored in said at least one memory that when executed by said at least one processor cause the data packets received by the first partition from the virtual NIC to be sent to a TCP/IP offload engine (TOE) in the physical NIC, wherein the physical NIC converts the data packets into a plurality of packets that are fully framed.

2. The system of claim 1 wherein said at least one memory further comprises computer instructions for converting the data packets into a plurality of packets that are fully framed in the case where a physical framing is not performed by the physical NIC.

3. The system of claim 1 wherein said at least one memory further comprises computer instructions for indicating to the virtual NIC a maximum transmission unit size.

4. The system of claim 3 wherein said maximum transmission unit is a function of a physical network.

5. The system of claim 1 further comprising computer executable instructions stored in said at least one memory that when executed instantiate a communication channel between the first partition and a third partition, wherein the third partition is configured to send data packets that are not fully framed from a virtual NIC in the third partition to the first partition.

6. The system of claim 5 further comprising computer executable instructions stored in said at least one memory that when executed causes the virtual NIC in the third partition to send data packets to the virtual NIC in the second partition.

7. The system as recited in claim 6 wherein the packets are addressed to a MAC address of the virtual NIC in the second partition.

8. A method, comprising:

creating on a computing device having a physical network interface card (NIC) a first partition, said first partition controlling access to the physical NIC;

sending data packets that are not fully framed from a virtual NIC in a second partition to the first partition by way of a network channel between the first partition and the second partition created on the same computing device;

communicating control data messages between the virtual NIC and the first partition over a control channel that is separate from said network channel, wherein said control data messages enable the communication of not fully framed data packets between the virtual NIC and the first partition; and

sending the data packets received by the first partition from the virtual NIC to a TCP/IP offload engine (TOE) in the physical NIC, wherein the physical NIC converts the data packets into a plurality of packets that are fully framed.

9. The method of claim 8 further comprising converting the data packets into a plurality of packets that are fully framed in the case where a physical framing is not performed by the physical NIC.

10. The method of claim 9 further comprising indicating to the virtual NIC a maximum transmission unit size.

11. The method of claim 10 wherein said maximum transmission unit is a function of a physical network.

12. The method of claim 9 further comprising instantiating a communication channel between the first partition and a third partition, wherein the third partition is configured to send data packets that are not fully framed from a virtual NIC in the third partition to the first partition.

13. The method of claim 12 further comprising causing the virtual NIC in the third partition to send data packets to the virtual NIC in the second partition.

14. The method as recited in claim 13 wherein the packets are addressed to a MAC address of the virtual NIC in the second partition.

15. A computer readable storage device having stored thereon a data structure containing computer instructions capable of being executed on a computing device, upon execution on said computing device causing actions comprising:

instantiating a first partition, said first partition controlling access to a physical NIC;

forming a communication channel between the first partition and a second partition, wherein the second partition is configured to send data packets that are not fully framed from a virtual NIC in the second partition to the first partition;

enabling communication of control data messages between the virtual NIC and the first partition, wherein said control data messages enable the communication of not fully framed data packets between the virtual NIC and the first partition and wherein a control channel is separate from said communication channel; and

sending the data packets received by the first partition from the virtual NIC to a TCP/IP offload engine (TOE) in the physical NIC, wherein the physical NIC converts the data packets into a plurality of packets that are fully framed.

16. The computer readable storage device of claim 15 further comprising the action of converting the data packets into a plurality of packets that are fully framed in the case where a physical framing is not performed by the physical NIC.

17. The computer readable storage device of claim 15 further comprising the action of indicating to the virtual NIC a maximum transmission unit size.

18. The computer readable storage device of claim 17 wherein said maximum transmission unit is different from a maximum transmission rate of a physical network.

19. The computer readable storage device of claim 15 further comprising the action of causing the computing device to instantiate a communication channel between the first partition and a third partition, wherein the third partition is configured to send data packets that are not fully framed from a virtual NIC in the third partition to the first partition.

20. The computer readable storage device of claim 19 further comprising the action of causing the computing device to direct the virtual NIC in the third partition to send data packets to the virtual NIC in the second partition.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
Continuity (2)
Continuation 11082509 · Mar 17, 2005
Related Publication 20110010469A1 · Jan 13, 2011