IP Library › Granted Patent US 11,436,053
Granted Patent B2
US 11,436,053 · App. 16/563,785 · Granted Sep 6, 2022

Third-party hardware integration in virtual networks

Inventors: Rishabh Tewari (Sammamish, WA); Abhijeet Kumar (Sammamish, WA); Neeraj Motwani (Sammamish, WA); Daniel M. Firestone (Redmond, WA); Vivek Bhanu (Redmond, WA); Madhan Sivakumar (Seattle, WA); Michal Czeslaw Zygmunt (Bellevue, WA); Deepak Bansal (Bellevue, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/5027G06F9/445G06F9/5077G06F2209/509
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 11,436,053
App. No.
16/563,785
Granted
Sep 6, 2022
Kind
B2
Abstract

A network appliance is configured to receive a packet having an address of a custom device as a source address. Policies are accessed that are applicable to a virtual network associated with the custom device. The policies are applied to the packet. A hairpin layer redirects the packet to a destination address contained in the packet. For subsequent packets, application of the policies is bypassed to the subsequent packets. Application of the policies is offloaded to an acceleration device.

Claims (42)

1. A system configured to implement virtual networks for a plurality of tenants of a multi-tenant virtual computing network, the system comprising:

one or more servers configured to instantiate one or more virtual machines of a virtual network associated with a tenant of the multi-tenant virtual computing network;

and

an appliance communicatively coupled to a tenant device associated with the tenant of the multi-tenant virtual computing network, wherein the tenant device is configured as an endpoint in the virtual network associated with the tenant, the appliance configured to:

receive, via a first redirection by a hairpin layer of the appliance, first data packets arriving from the tenant device that are directed to the one or more virtual machines of the virtual network associated with the tenant of the multi-tenant virtual computing network;

receive, via a second redirection by the hairpin layer, second data packets directed to the tenant device as the endpoint in the virtual network from the one or more virtual machines of the virtual network associated with the tenant of the multi-tenant virtual computing network;

access policies that are applicable to the virtual network associated with the tenant of the multi-tenant virtual computing network;

apply one of the policies to the first data packets and the second data packets;

redirect the first data packets to the virtual network associated with the tenant of the multi-tenant virtual computing network;

redirect the second data packets to the tenant device; and

offload application of the one of the policies for additional data packets to an acceleration device associated with the appliance.

2. The system of claim 1 , wherein the acceleration device is an FPGA.

3. The system of claim 1 , wherein the appliance comprises a network container configured to implement a data interface to the tenant device.

4. The system of claim 1 , wherein the appliance comprises a plurality of network containers configured to implement data interfaces to a plurality of tenant devices.

5. The system of claim 1 , wherein a subnet of the virtual network associated with the tenant of the multi-tenant virtual computing network is designated for the tenant device.

6. A method for implementing a virtual network of a tenant of a multi-tenant virtual computing network, the virtual network associated with the tenant of the multi-tenant virtual computing network, wherein a tenant device is configured as an endpoint in the virtual network associated with the tenant, the method comprising:

receiving, by a first redirection by a hairpin layer of an appliance communicatively coupled to the tenant device, first data packets arriving from the tenant device that are directed to one or more virtual machines of the virtual network associated with the tenant of the multi-tenant virtual computing network;

receiving, via a second redirection by the hairpin layer, second data packets directed to the tenant device as the endpoint in the virtual network from the one or more virtual machines of the virtual network associated with the tenant of the multi-tenant virtual computing network;

accessing policies that are applicable to the virtual network associated with the tenant of the multi-tenant virtual computing network;

applying, to the first and second data packets, one of the policies;

redirecting the first data packets to the virtual network associated with the tenant of the multi-tenant virtual computing network;

redirecting the second data packets to the tenant device; and

offloading application of the applicable policies to subsequent packets to an acceleration device associated with the appliance.

7. The method of claim 6 , wherein the acceleration device is an FPGA.

8. The method of claim 6 , wherein the appliance comprises a network container configured to implement a data interface to the tenant device.

9. The method of claim 6 , wherein the appliance comprises a plurality of network containers configured to implement data interfaces to a plurality of tenant devices.

10. The method of claim 6 , wherein a subnet of the virtual network associated with the tenant of the multi-tenant virtual computing network is designated for the tenant device.

11. An appliance comprising:

one or more processors;

an acceleration device;

a memory in communication with the one or more processors, the memory having computer-readable instructions stored thereupon which, when executed by the one or more processors, cause the device perform operations comprising:

receiving, by a first redirection by a hairpin layer of the appliance, first data packets arriving from a tenant device that are directed to one or more virtual machines of a virtual network associated with a tenant of a multi-tenant virtual computing network;

receiving, via a second redirection by the hairpin layer, second data packets directed to the tenant device as an endpoint in the virtual network from the one or more virtual machines of the virtual network associated with the tenant of the multi-tenant virtual computing network;

accessing policies that are applicable to the virtual network associated with the tenant;

applying one of the policies to the first data packets and the second data packets;

redirecting the first data packets to the virtual network associated with the tenant of the multi-tenant virtual computing network;

redirecting the second data packets to the tenant device; and

offloading application of the one of the policies for additional data packets to the acceleration device.

12. The appliance of claim 11 , wherein the acceleration device is an FPGA.

13. The appliance of claim 11 , wherein the appliance comprises a network container configured to implement a data interface to the tenant device.

14. The appliance of claim 11 , wherein the appliance comprises a plurality of network containers configured to implement data interfaces to a plurality of tenant devices.

15. The appliance of claim 11 , wherein a subnet of the virtual network is designated for the tenant device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2022
From: TEWARI, RISHABH; KUMAR, ABHIJEET; MOTWANI, NEERAJ; FIRESTONE, DANIEL M.; BHANU, VIVEK; SIVAKUMAR, MADHAN; ZYGMUNT, MICHAL CZESLAW; BANSAL, DEEPAK
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060101/0232 →
Continuity (2)
Provisional Application 62852939 · May 24, 2019
Related Publication 20200371842A1 · Nov 26, 2020