IP Library › Granted Patent US 8,797,914
Granted Patent B2
US 8,797,914 · App. 13/229,828 · Granted Aug 5, 2014

Unified policy management for extensible virtual switches

Inventors: Andrew J. Ritz (Sammamish, WA); Pankaj Garg (Bellevue, WA); Vinod K K L Swamy (Bellevue, WA); Nihar Niranjan Shah (Sammamish, WA); Attilio Mainetti (Issaquah, WA); Edward J. Reed (Bellevue, WA)
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,797,914
App. No.
13/229,828
Granted
Aug 5, 2014
Kind
B2
Abstract

Systems, methods, and computer storage media are described herein that configure a switch extension associated with a virtual switch with one or more settings. In response to the configuring, the systems, methods, and computer storage media persist the one or more settings and apply the persisted one or more settings to a target switch extension of a target virtual switch. The systems, methods, and computer storage media receive the settings through a management interface. Also, the systems, methods, and computer storage media receive requests for information associated with the switch extension and provide the switch extension information in response.

Claims (37)

1. A method comprising:

configuring, by one or more computing devices, a switch extension associated with a virtual switch with one or more settings;

in response to the configuring, persisting, by the one or more computing devices, the one or more settings in a configuration file on a root virtual machine; and

applying, by the one or more computing devices, the persisted one or more settings to a target switch extension of a target virtual switch.

2. The method of claim 1 , wherein the applying is performed as part of a live migration, back-up, or repair.

3. The method of claim 1 , further comprising receiving the one or more settings via a management interface.

4. The method of claim 3 , wherein the one or more settings are received as a Windows Management Instrumentation (WMI) object identifying a Managed Object Format (MOF) file providing a schema for the one or more settings.

5. The method of claim 1 , wherein the configuring comprises serializing the one or more settings into a binary representation.

6. The method of claim 5 , wherein the serializing comprises serializing the one or more settings based on an association of the one or more settings with a base class.

7. The method of claim 5 , wherein the configuring further comprises providing the binary representation and attributes derived from a schema to a virtual switch driver of the virtual switch via a device input/output control (IOCTL) message.

8. The method of claim 7 , wherein the virtual switch driver packages the binary representation and the attributes in a C structure, a Network Driver Interface Specification (NDIS) structure, or a data structure.

9. The method of claim 8 , wherein the configuring comprises providing the packaged binary representation and attributes to the switch extension via an object identifier (OID) request.

10. The method of claim 1 , wherein the persisting comprises updating a virtual machine configuration file responsive to a notification that the configuring was successful.

11. The method of claim 1 , wherein the switch extensions are filter modules of a virtual stack of the virtual switch utilized in filtering traffic to or from a virtual machine of a host device that implements the virtual switch.

12. The method of claim 1 , further comprising:

receiving a request for information associated with the switch extension;

providing a data structure associated with the request to the switch extension;

receiving the data structure in return from the switch extension, the data structure populated with the requested information; and

providing a response to the request that includes the requested information derived from the data structure.

13. The method of claim 12 , further comprising deserializing a binary representation included in the data structure and generating a WMI object based on the deserialized binary representation.

14. A system comprising:

one or more processors; and

a plurality of components of a virtual machine implemented in the system and operated by the one or more processors, the components including:

a management interface configured to receive a settings object, the management interface enabling specification of the settings object and identification of an schema associated with a switch extension of a virtual switch of the virtual machine;

a serialization component configured to generate a binary representation of the settings object;

a virtual switch driver of a virtual switch configured to package the binary representation and attributes derived from the schema into a C structure and provide the C structure to the switch extension to enable configuration of the switch extension with one or more settings included in the settings object, and

a configuration file configured to persist the one or more settings.

15. The system of claim 14 , wherein the virtual machine is a root virtual machine of a host device that includes at least the root virtual machine and a hypervisor to enable instantiation of additional virtual machines and communication with the additional virtual machines and/or the root virtual machine through the virtual switch.

16. One or more computer storage media comprising computer-executable instructions stored thereon and configured to program a computing device to perform operations including:

receiving, by a root virtual machine, a request for information associated with a switch extension of a virtual switch implemented on the computing device;

providing, by the root virtual machine, a data structure associated with the request to the switch extension;

receiving, by the root virtual machine, the data structure in return from the switch extension, the data structure populated with the requested information; and

providing, by the root virtual machine, a response to the request that includes the requested information derived from the data structure.

17. The one or more computer storage media of claim 16 , wherein the data structure is one of a C structure or an NDIS structure.

18. The one or more computer storage media of claim 16 , wherein the operations further include deserializing a binary representation included in the data structure and generating a WMI object based on the deserialized binary representation.

19. The one or more computer storage media of claim 18 , wherein the operations further include providing the WMI object to a WMI interface to enable the WMI interface to generate and provide the response.

20. The one or more computer storage media of claim 16 , wherein the requested information includes one or more of settings or performance metrics associated with the switch extension.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2011
From: RITZ, ANDREW J.; GARG, PANKAJ; K L SWAMY, VINOD K; SHAH, NIHAR NIRANJAN; MAINETTI, ATTILIO; REED, EDWARD J.
To: MICROSOFT CORPORATION
Reel/Frame 027251/0422 →
Continuity (1)
Related Publication 20130064133A1 · Mar 14, 2013