IP Library Granted Patent US 10,567,275
Granted Patent B2
US 10,567,275 · App. 16/363,939 · Granted Feb 18, 2020

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,567,275
App. No.
16/363,939
Granted
Feb 18, 2020
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 method comprising:

outputting, by a virtual execution endpoint executing by a computing device, a request for a layer 2 address corresponding to a layer 3 address;

sending, by a virtual router executing by the computing device to provide a virtual network for communications with the virtual execution endpoint, to the virtual execution endpoint in response to the request, a layer 2 address configured for a first hardware component of a network interface card of the computing device,

wherein the network interface card comprises a physical network interface, 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

sending, by the virtual execution endpoint to the network interface card, outbound packets generated by the virtual execution endpoint, wherein the outbound packets have a destination layer 2 address that is the layer 2 address for the first hardware component.

2. The method of claim 1 , further comprising:

switching, by the network interface card in response to receiving the outbound packets, based on the destination layer 2 address that is the layer 2 address for the first hardware component, the outbound packets via the first hardware component to the virtual router for the computing device.

3. The method of claim 2 , further comprising:

receiving, by the network interface card, via the second hardware component of the network interface card, the outbound packets from the virtual execution endpoint.

4. The method of claim 1 , further comprising:

switching, by the network interface card, to the virtual router, the request for the layer 2 address corresponding to the layer 3 address.

5. The method 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, and

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

6. The method 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-My device, and

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

7. The method of claim 1 ,

wherein the request for the layer 2 address corresponding to the layer 3 address comprises an Address Resolution Protocol request for the layer 2 address of a default layer 3 gateway.

8. The method of claim 1 ,

wherein sending the layer 2 address configured for the first hardware component comprises sending an Address Resolution Protocol reply comprising the layer 2 address configured for the first hardware component.

9. The method of claim 1 , further comprising:

receiving, by the virtual router, the outbound packets via the first hardware component; and

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

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

11. 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; and

a virtual router configured for execution by the one or more processors to provide a virtual network for communications with the virtual execution endpoint,

wherein the virtual execution endpoint is configured to output a request for a layer 2 address corresponding to a layer 3 address,

wherein the virtual router is configured to send, to the virtual execution endpoint in response to the request, a layer 2 address configured for a first hardware component of a network interface card of the computing device, and

wherein the virtual execution endpoint is configured to send, to the network interface card, outbound packets generated by the virtual execution endpoint, wherein the outbound packets have a destination layer 2 address that is the layer 2 address for the first hardware component.

12. The computing device of claim 11 ,

wherein the network interface card is configured to switch, in response to receiving the outbound packets, based on the destination layer 2 address that is the layer 2 address for the first hardware component, the outbound packets via the first hardware component to the virtual router for the computing device.

13. The computing device of claim 12 ,

wherein the network interface card is configured to receive, via the second hardware component of the network interface card, the outbound packets from the virtual execution endpoint.

14. The computing device of claim 11 ,

wherein the network interface card is configured to switch, to the virtual router, the request for the layer 2 address corresponding to the layer 3 address.

15. The computing device of claim 11 ,

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-My device, and

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

16. The computing device of claim 11 ,

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, and

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

17. The computing device of claim 11 ,

wherein the request for the layer 2 address corresponding to the layer 3 address comprises an Address Resolution Protocol request for the layer 2 address of a default layer 3 gateway.

18. The computing device of claim 11 ,

wherein to send the layer 2 address configured for the first hardware component, the virtual router is configured to send an Address Resolution Protocol reply comprising the layer 2 address configured for the first hardware component.

19. The computing device of claim 11 ,

wherein the virtual router is configured to receive the outbound packets via the first hardware component, and

wherein the virtual router is configured to encapsulate each of the outbound packets with a header for the virtual network and output each of the outbound packets back to the network interface card for output on the physical network interface to tunnel the outbound packets to another physical computing device that hosts a destination virtual network endpoint for the outbound packets.

20. A non-transitory computer-readable storage medium comprising instructions for causing one or more processors of a computing device to:

output, by a virtual execution endpoint configured for execution by the one or more processors, a request for a layer 2 address corresponding to a layer 3 address;

send, by a virtual router configured for execution by the computing device to provide a virtual network for communications with the virtual execution endpoint, to the virtual execution endpoint in response to the request, a layer 2 address configured for a first hardware component of a network interface card of the computing device,

wherein the network interface card comprises a physical network interface, 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

send, by the virtual execution endpoint to the network interface card, outbound packets generated by the virtual execution endpoint, wherein the outbound packets have a destination layer 2 address that is the layer 2 address for the first hardware component.

Assignments (1)
NUNC PRO TUNC ASSIGNMENT Recorded May 6, 2026
From: JUNIPER NETWORKS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 075513/0034 →
Continuity (2)
Continuation 15447021 · Mar 1, 2017
Related Publication 20190222508A1 · Jul 18, 2019
Cited By (2)
US 12,693,880 US 12,699,658