IP Library Granted Patent US 10,243,840
Granted Patent B2
US 10,243,840 · App. 15/447,021 · Granted Mar 26, 2019

Network interface card switching for virtual networks

Inventors: Thilak Raj Surendra Babu (Milpitas, CA); Xiao Hu (San Jose, CA); Stephen Su (Los Altos Hills, CA)
Assignee: Juniper Networks, Inc.
H04L45/26G06F13/128H04L12/4641H04L45/586H04L61/2592H04L69/324
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 10,243,840
App. No.
15/447,021
Granted
Mar 26, 2019
Kind
B2
Abstract

In some examples, a computing device comprises a virtual network endpoint; a network interface card (NIC) comprising a first hardware component and a second hardware component, wherein the first hardware component and the second hardware component provide separate packet input/output access to a physical network interface of the NIC, wherein the NIC is configured to receive a packet inbound from the physical network interface; and a virtual router to receive the packet from the NIC and output, using the first hardware component, in response to determining a destination endpoint of the packet is the virtual network endpoint, the packet back to the NIC, wherein the NIC is further configured to switch, in response to receiving the packet from the virtual router, the packet to the virtual network endpoint and to output, using the second hardware component, the packet to the virtual network endpoint.

Claims (63)

1. A computing device comprising:

one or more hardware-based processors coupled to a memory device;

a virtual network endpoint configured for execution by the one or more processors;

a network interface card comprising a first hardware component and a second hardware component, wherein the first hardware component and the second hardware component provide separate packet input/output access to a physical network interface of the network interface card, wherein the network interface card is configured to receive a packet inbound from the physical network interface, and wherein the packet comprises an inner packet and a tunnel encapsulation header indicating a virtual network of a plurality of virtual networks, the virtual network including the virtual network endpoint; and

a virtual router configured for execution by the one or more processors to receive the packet from the network interface card and determine a destination endpoint of the packet is the virtual network endpoint in part by determining, based at least on the tunnel encapsulation header, a network forwarding table that indicates a layer 2 address is a layer 2 address of the virtual network endpoint, wherein the second hardware component is configured with the layer 2 address,

wherein the virtual router is further configured to output, using the first hardware component, in response to determining the destination endpoint of the packet is the virtual network endpoint, the packet back to the network interface card with a layer 2 header having a destination layer 2 address that is the layer 2 address of the virtual network endpoint,

wherein the network interface card is further configured to switch, in response to receiving the packet from the virtual router, the packet to the virtual network endpoint and to output, using the second hardware component, the packet to the virtual network endpoint.

2. The computing device of claim 1 ,

wherein the network interface card comprises a Single Root Input/Output Virtualization (SR-IOV) device,

wherein the first hardware component comprises a physical function of the SR-IOV device,

wherein the second hardware component comprises a virtual function of the SR-IOV device.

3. The computing device of claim 1 , wherein the network interface card comprises a Single Root Input/Output Virtualization (SR-IOV) device,

wherein the first hardware component comprises a first virtual function of the SR-IOV device,

wherein the second hardware component comprises a second virtual function of the SR-IOV device.

4. The computing device of claim 1 , wherein the virtual router is configured to output the packet to the network interface card by causing a direct memory access transfer of the packet from a memory address space for the virtual router to a memory of the network interface card.

5. The computing device of claim 1 , wherein the network interface card is configured to output the packet to the virtual network endpoint by causing a direct memory access transfer of the packet from a memory of the network interface card to a memory address space of the virtual network endpoint.

6. The computing device of claim 1 , wherein the virtual network endpoint comprises at least one of a virtual machine and a container.

7. The computing device of claim 1 ,

wherein the packet comprises a first packet,

wherein the virtual network endpoint is configured to output a second packet, using the second hardware component, to the network interface card,

wherein the network interface card is configured to switch the second packet to the virtual router and to output, using the first hardware component, the second packet to the virtual router, and

wherein the virtual router is configured to encapsulate the second packet with an outer header and output the second packet back to the network interface card for output on the physical network interface to tunnel the packet to another physical computing device that hosts a destination virtual network endpoint for the second packet.

8. The computing device of claim 1 ,

wherein the virtual network endpoint is configured with a default route to cause the virtual network endpoint to output outbound packets having layer 2 headers each having a layer 2 destination address that is a layer 2 address configured for the first hardware component, and

wherein the network interface card is configured to switch, based at least on the layer 2 headers, the outbound packets to the virtual router and to output, using the first hardware component, the outbound packets to the virtual router.

9. The computing device of claim 1 ,

wherein the virtual router is configured to, in response to receiving an address resolution protocol request requesting a layer 2 address for a default gateway, output an address resolution protocol reply for the address resolution protocol request that specifies, for the layer 2 address for the default gateway, a layer 2 address configured for the first hardware component.

10. A method comprising:

receiving, by a network interface card of a computing device via a physical network interface of the network interface card, a packet inbound from the physical network interface,

wherein the network interface card comprises a first hardware component and a second hardware component, and

wherein the first hardware component and the second hardware component provide separate packet input/output access to a physical network interface of the network interface card, and

wherein the packet comprises an inner packet and a tunnel encapsulation header indicating a virtual network of a plurality of virtual networks, the virtual network including the virtual network endpoint;

receiving, by a virtual router of the computing device, the packet from the network interface card and determine a destination endpoint of the packet is the virtual network endpoint in part by determining, based at least on the tunnel encapsulation header, a network forwarding table that indicates a layer 2 address is a layer 2 address of the virtual network endpoint, wherein the second hardware component is configured with the layer 2 address;

outputting, by the virtual router in response to determining the destination endpoint of the packet is a virtual network endpoint of the computing device, using the first hardware component, the packet back to the network interface card with a layer 2 header having a destination layer 2 address that is the layer 2 address of the virtual network endpoint; and

switching, by the network interface card in response to receiving the packet from the virtual router, the packet to the virtual network endpoint and outputting, using the second hardware component, the packet to the virtual network endpoint.

11. The method of claim 10 ,

wherein the network interface card comprises a Single Root Input/Output Virtualization (SR-IOV) device,

wherein the first hardware component comprises a physical function of the SR-IOV device,

wherein the second hardware component comprises a virtual function of the SR-IOV device.

12. The method of claim 10 ,

wherein the network interface card comprises a Single Root Input/Output Virtualization (SR-IOV) device,

wherein the first hardware component comprises a first virtual function of the SR-IOV device,

wherein the second hardware component comprises a second virtual function of the SR-IOV device.

13. The method of claim 10 , wherein outputting the packet to the network interface card comprises causing a direct memory access transfer of the packet from a memory address space for the virtual router to a memory of the network interface card.

14. The method of claim 10 , wherein outputting the packet to the virtual network endpoint comprising causing a direct memory access transfer of the packet from a memory of the network interface card to a memory address space of the virtual network endpoint.

15. The method of claim 10 , wherein the virtual network endpoint comprises at least one of a virtual machine and a container.

16. The method of claim 10 , wherein the packet comprises a first packet, the method further comprising:

outputting, by the virtual network endpoint using the second hardware component, a second packet to the network interface card,

switching, by the network interface card, the second packet to the virtual router and outputting, using the first hardware component, the second packet to the virtual router;

encapsulating, by the virtual router, the second packet with an outer header and outputting the second packet back to the network interface card for output on the physical network interface to tunnel the packet to another physical computing device that hosts a destination virtual network endpoint for the second packet.

17. The method of claim 10 , further comprising:

receiving, by the virtual network endpoint, a default route to cause the virtual network endpoint to output outbound packets having layer 2 headers each having a layer 2 destination address that is a layer 2 address configured for the first hardware component;

switching, by the network interface card based at least on the layer 2 headers, the outbound packets to the virtual router and outputting, using the first hardware component, the outbound packets to the virtual router.

18. The method of claim 10 ,

outputting, by the virtual router in response to receiving an address resolution protocol request requesting a layer 2 address for a default gateway, an address resolution protocol reply for the address resolution protocol request that specifies, for the layer 2 address for the default gateway, a layer 2 address configured for the first hardware component.

19. A non-transitory computer-readable storage medium comprising instructions for causing a computing device to:

receive, by a network interface card of the computing device via a physical network interface of the network interface card, a packet inbound from the physical network interface,

wherein the network interface card comprises a first hardware component and a second hardware component,

wherein the first hardware component and the second hardware component provide separate packet input/output access to a physical network interface of the network interface card, and

wherein the packet comprises an inner packet and a tunnel encapsulation header indicating a virtual network of a plurality of virtual networks, the virtual network including the virtual network endpoint;

receive, by a virtual router of the computing device, the packet from the network interface card and determine a destination endpoint of the packet is the virtual network endpoint in part by determining, based at least on the tunnel encapsulation header, a network forwarding table that indicates a layer 2 address is a layer 2 address of the virtual network endpoint, wherein the second hardware component is configured with the layer 2 address;

output, by the virtual router in response to determining the destination endpoint of the packet is a virtual network endpoint of the computing device, using the first hardware component, the packet back to the network interface card with a layer 2 header having a destination layer 2 address that is the layer 2 address of the virtual network endpoint; and

switch, by the network interface card in response to receiving the packet from the virtual router, the packet to the virtual network endpoint and outputting, using the second hardware component, the packet to the virtual network endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2017
From: BABU, THILAK RAJ SURENDRA; HU, XIAO; SU, STEPHEN
To: JUNIPER NETWORKS, INC.
Reel/Frame 041427/0788 →
Continuity (1)
Related Publication 20180254981A1 · Sep 6, 2018
Cited By (1)
US 12,470,555