IP Library › Granted Patent US 12,323,291
Granted Patent B2
US 12,323,291 · App. 16/990,099 · Granted Jun 3, 2025

Managing network ports in a virtualization environment

Inventor: Ryan Robert Howard (Bothell, WA)
Assignee: F5, Inc.
H04L41/0654G06F9/45558H04L12/4641H04L47/41G06F2009/45595
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 12,323,291
App. No.
16/990,099
Granted
Jun 3, 2025
Kind
B2
Abstract

Technology related managing network ports in a virtualization environment is disclosed. In one example, a method includes, without using operating system control, bonding a plurality of physical ports into a link aggregation group accessible from a network interface. A device function can be assigned to a virtual machine. The device function can be used for communicating between the network interface and the virtual machine via an interconnect. The device function can be used to forward network traffic between the virtual machine and the network interface, and across the link aggregation group.

Claims (52)

1. A method implemented by a network traffic management system comprising one or more network traffic management apparatuses, server devices, or client devices, the method comprising:

bonding a plurality of physical network ports into a link aggregation group accessible from a network interface using a virtual bonding interface of a network interface device that segregates port bundling functionality from an operating system of a host computer such that the host operating system of the host computer is not aware of the link aggregation group;

assigning a device function of the network interface device to a virtual machine, the device function used for communicating between the network interface and the virtual machine via an interconnect of the host computer, the virtual machine executing on the host computer;

using the device function to forward network traffic between the virtual machine and the network interface, and across the link aggregation group; and

without using operating system control, controlling an existing amount of bandwidth provided across the link aggregation group for network packets associated with the device function.

2. The method of claim 1 , further comprising:

assigning a virtual local area network (VLAN) identifier to the device function, the assigned VLAN identifier selected from a plurality of unassigned VLAN identifiers; and

using the VLAN identifier to forward the network traffic of the virtual machine across the link aggregation group.

3. The method of claim 1 , further comprising:

detecting that the virtual machine is unhealthy based on a flow of network packets associated with the virtual machine; and

in response to detecting that the virtual machine is unhealthy, adjusting the flow of network packets associated with the virtual machine.

4. The method of claim 1 , further comprising:

without using operating system control, prioritizing a network packet, based on the device function associated with the network packet, to send across the link aggregation group.

5. A system comprising one or more network traffic management modules, networking modules, or server modules, memory comprising programmed instructions stored thereon, and one or more processors configured to be capable of executing the stored programmed instructions to:

bond a plurality of physical network ports into a link aggregation group accessible from a network interface using a virtual bonding interface of a network interface device that segregates port bundling functionality from an operating system of a host computer such that the operating system of the host computer is not aware of the link aggregation group;

assign a device function of the network interface device to a virtual machine, the device function used for communicating between the network interface and the virtual machine via an interconnect of the host computer, the virtual machine executing on the host computer;

use the device function to forward network traffic between the virtual machine and the network interface, and across the link aggregation group; and

without using operating system control, control an existing amount of bandwidth provided across the link aggregation group for network packets associated with the device function.

6. The system of claim 5 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

assign a virtual local area network (VLAN) identifier to the device function, the assigned VLAN identifier selected from a plurality of unassigned VLAN identifiers; and

use the VLAN identifier to forward the network traffic of the virtual machine across the link aggregation group.

7. The system of claim 5 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

detect that the virtual machine is unhealthy based on a flow of network packets associated with the virtual machine; and

in response to detecting that the virtual machine is unhealthy, adjust the flow of network packets associated with the virtual machine.

8. The system of claim 5 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

without using operating system control, prioritize a network packet, based on the device function associated with the network packet, to send across the link aggregation group.

9. A non-transitory computer readable medium having stored thereon instructions comprising executable code that, when executed by one or more processors, causes the processors to:

bond a plurality of physical network ports into a link aggregation group accessible from a network interface using a virtual bonding interface of a network interface device that segregates port bundling functionality from an operating system of a host computer such that the operating system of the host computer is not aware of the link aggregation group;

assign a device function of the network interface device to a virtual machine, the device function used for communicating between the network interface and the virtual machine via an interconnect of the host computer;

use the device function to forward network traffic between the virtual machine and the network interface, and across the link aggregation group; and

without using operating system control, control an existing amount of bandwidth provided across the link aggregation group for network packets associated with the device function.

10. The non-transitory computer readable medium of claim 9 , wherein the instructions further comprise executable code that, when executed by one or more processors, causes the processors to:

assign a virtual local area network (VLAN) identifier to the device function, the assigned VLAN identifier selected from a plurality of unassigned VLAN identifiers; and

use the VLAN identifier to forward the network traffic of the virtual machine across the link aggregation group.

11. The non-transitory computer readable medium of claim 9 , wherein the instructions further comprise executable code that, when executed by one or more processors, causes the processors to:

detect that the virtual machine is unhealthy based on a flow of network packets associated with the virtual machine; and

in response to detecting that the virtual machine is unhealthy, adjust the flow of network packets associated with the virtual machine.

12. The non-transitory computer readable medium of claim 9 , wherein the instructions further comprise executable code that, when executed by one or more processors, causes the processors to:

without using operating system control, prioritize a network packet, based on the device function associated with the network packet, to send across the link aggregation group.

13. A network traffic management apparatus, comprising memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:

bond a plurality of physical network ports into a link aggregation group accessible from a network interface using a virtual bonding interface of a network interface device that segregates port bundling functionality from an operating system of a host computer such that the operating system of the host computer is not aware of the link aggregation group;

assign a device function of the network interface device to a virtual machine, the device function used for communicating between the network interface and the virtual machine via an interconnect of the host computer, the virtual machine executing on the host computer;

use the device function to forward network traffic between the virtual machine and the network interface, and across the link aggregation group; and

without using operating system control, control an existing amount of bandwidth provided across the link aggregation group for network packets associated with the device function.

14. The network traffic management apparatus of claim 13 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

assign a virtual local area network (VLAN) identifier to the device function, the assigned VLAN identifier selected from a plurality of unassigned VLAN identifiers; and

use the VLAN identifier to forward the network traffic of the virtual machine across the link aggregation group.

15. The network traffic management apparatus of claim 13 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

detect that the virtual machine is unhealthy based on a flow of network packets associated with the virtual machine; and

in response to detecting that the virtual machine is unhealthy, adjust the flow of network packets associated with the virtual machine.

16. The network traffic management apparatus of claim 13 , wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:

without using operating system control, prioritize a network packet, based on the device function associated with the network packet, to send across the link aggregation group.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2020
From: HOWARD, RYAN ROBERT
To: F5 NETWORKS, INC.
Reel/Frame 053469/0283 →
Continuity (1)
Related Publication 20220052904A1 · Feb 17, 2022
References Cited (24)
US 8503468B2 · Akyol et al. · 2013 [cited by applicant]
US 8645605B2 · Subramaniyan et al. · 2014 [cited by applicant]
US 9727386B2 · Lu · 2017 [cited by applicant]
US 10530636B2 · Ma · 2020 [cited by applicant]
US 11061712B2 · Kaplan · 2021 [cited by examiner]
US 11265251B2 · Kommula · 2022 [cited by examiner]
US 20100115174A1 · Akyol · 2010 [cited by examiner]
US 20120287939A1 · Leu et al. · 2012 [cited by applicant]
US 20130148546A1 · Eisenhauer · 2013 [cited by examiner]
US 20140201733A1 · Benny · 2014 [cited by examiner]
US 20160065680A1 · Harper · 2016 [cited by examiner]
US 20170257309A1 · Appanna · 2017 [cited by examiner]
US 20170289040A1 · Sreeramoju · 2017 [cited by examiner]
US 20190020501A1 · Yu et al. · 2019 [cited by applicant]
US 20190132241A1 · Vattem · 2019 [cited by examiner]
US 20210243639A1 · Sanaullah · 2021 [cited by examiner]
US 20210273891A1 · Labonte · 2021 [cited by examiner]
US 20210377117A1 · Kanevsky · 2021 [cited by examiner]
WO 2014074542A1 · 2014 [cited by applicant]
Bhosale et al., IBM Power Systems SR-IOV Technical Overview and Introduction, available at: http://www.redbooks.ibm.com/redpapers/pdfs/redp5065.pdf; Jul. 2014. [cited by applicant]
Ron Emerick, Emerick—PCI-Express IO Virtualization Overview, available at: https://www.snia.org/sites/default/files/RonEmerick_PCI_Express_IO_Virtualization.pdf; 2012. [cited by applicant]
Microsoft, Network Driver Design Guide, Available at: https://docs.microsoft.com/en-us/windows-hardware/drivers/opbuildpdf/network/toc.pdf?branch=live, retrieved Jun. 22, 2020, pp. 1235-1607. [cited by applicant]
European Search Report for corresponding EP Application No. 21188655.1, Dec. 22, 2021, pp. 1-7. [cited by applicant]
EP Patent Application No. 21188655.1, Office Action, dated Sep. 15, 2023. [cited by applicant]