IP Library Granted Patent US 12,341,753
Granted Patent B2
US 12,341,753 · App. 18/625,035 · Granted Jun 24, 2025

ARP-based annotations for virtual machines

Inventors: Arnold Poon (San Mateo, CA); Sirisha Myneni (Santa Clara, CA); Rajiv Mordani (Fremont, CA); Aditi Vutukuri (Milpitas, CA)
Assignee: VMware LLC
H04L63/0263G06F9/45558H04L61/103H04L63/0245G06F2009/45587G06F2009/45595H04L69/22
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,341,753
App. No.
18/625,035
Granted
Jun 24, 2025
Kind
B2
Abstract

Solutions for ARP-based annotations for virtual machines. In some solutions, a hypervisor implemented in a first host might determine that a first process is executing on the first host. The hypervisor can determine first context information for the first process, generate an Address Resolution Protocol (ARP) request, and/or transmit a first packet comprising the ARP request and the context information to a central controller as an indication that the first process is executing on the first host.

Claims (76)

1. A method, comprising:

detecting that a guest operating system executing on a first virtual machine is executing a first process on a first host computer;

determining first context information for the first process;

generating a first Address Resolution Protocol (“ARP”) request;

including the first context information and the first ARP request in a first packet; and

transmitting the first packet to a central controller as an indication that the first process is executing on the first host computer.

2. The method of claim 1 , further comprising:

in response to receiving an ARP response packet from the central controller:

extracting second context information from the ARP response packet;

based on the second context information, determining that a second process is executing on a second host computer; and

updating a guest attribute table using the second context information to indicate that the second process is executing on the second host computer.

3. The method of claim 1 , further comprising:

detecting that a user is executing one or more processes on the first host computer;

generating second context information determined for the user;

generating a second ARP request;

including the second context information and the second ARP request in a second packet; and

transmitting the second packet to the central controller as an indication that the user is executing one or more processes on the first host computer.

4. The method of claim 1 , further comprising:

in response to receiving an ARP response packet from the central controller:

extracting second context information from the ARP response packet;

based on the second context information, determining that a user is executing one or more processes on a second host computer; and

updating a guest attribute table using the second context information to indicate that the user is executing one or more processes on the second host computer.

5. The method of claim 1 , wherein the first context information is included in a reserved field of a Geneve Network Virtualization Encapsulation (“Geneve”) header of the first packet.

6. The method of claim 1 , wherein a hypervisor running on the first host computer detects the that the guest operating system is executing the first process.

7. One or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by one or more processors, cause the one or more processors to perform a plurality of operations, comprising:

detecting that a guest operating system executing on a first virtual machine is executing a first process on a first host computer;

determining first context information for the first process;

generating a first Address Resolution Protocol (“ARP”) request;

including the first context information and the first ARP request in a first packet; and

transmitting the first packet to a central controller as an indication that the first process is executing on the first host computer.

8. The one or more non-transitory computer-readable storage media of claim 7 , wherein the plurality of operations further comprises:

in response to receiving an ARP response packet from the central controller:

extracting second context information from the ARP response packet;

based on the second context information, determining that a second process is executing on a second host computer; and

updating a guest attribute table using the second context information to indicate that the second process is executing on the second host computer.

9. The one or more non-transitory computer-readable storage media of claim 7 , wherein the plurality of operations further comprises:

detecting that a user is executing one or more processes on the first host computer;

generating second context information determined for the user;

generating a second ARP request;

including the second context information and the second ARP request in a second packet; and

transmitting the second packet to the central controller as an indication that the user is executing one or more processes on the first host computer.

10. The one or more non-transitory computer-readable storage media of claim 7 , wherein the plurality of operations further comprises:

in response to receiving an ARP response packet from the central controller:

extracting second context information from the ARP response packet;

based on the second context information, determining that a user is executing one or more processes on a second host computer; and

updating a guest attribute table using the second context information to indicate that the user is executing one or more processes on the second host computer.

11. The one or more non-transitory computer-readable storage media of claim 7 , wherein the first context information is included in a reserved field of a Geneve Network Virtualization Encapsulation (“Geneve”) header of the first packet.

12. The one or more non-transitory computer-readable storage media of claim 7 , wherein the first context information is included in a payload of the first packet.

13. The one or more non-transitory computer-readable storage media of claim 7 , wherein the plurality of operations further comprises:

in response receiving an ARP response packet from the central controller, updating a guest attribute table to indicate that the central controller was notified about the first process executing on the first host computer.

14. A first host computer comprising one or more processors and one or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by the one or more processors, cause the one or more processors to perform the following a plurality of operations, the operations comprising:

detecting that a guest operating system executing on a first virtual machine is executing a first process on the first host computer;

determining first context information for the first process;

generating a first Address Resolution Protocol (“ARP”) request;

including the first context information and the first ARP request in a first packet; and

transmitting the first packet to a central controller as an indication that the first process is executing on the first host computer.

15. The first host computer of claim 14 , wherein the plurality of operations further comprises:

in response to receiving an ARP response packet from the central controller:

extracting second context information from the ARP response packet;

based on the second context information, determining that a second process is executing on a second host computer; and

updating a guest attribute table using the second context information to indicate that the second process is executing on the second host computer.

16. The first host computer of claim 14 , wherein the plurality of operations further comprises:

detecting that a user is executing one or more processes on the first host computer;

generating second context information determined for the user;

generating a second ARP request;

including the second context information and the second ARP request in a second packet; and

transmitting the second packet to the central controller as an indication that the user is executing one or more processes on the first host computer.

17. The first host computer of claim 14 , wherein the plurality of operations further comprises:

in response to receiving an ARP response packet from the central controller:

extracting second context information from the ARP response packet;

based on the second context information, determining that a user is executing one or more processes on a second host computer; and

updating a guest attribute table using the second context information to indicate that the user is executing one or more processes on the second host computer.

18. The first host computer of claim 14 , wherein the first context information is included in a reserved field of a Geneve Network Virtualization Encapsulation (“Geneve”) header of the first packet.

19. The first host computer of claim 14 , wherein the first context information is included in a payload of the first packet.

20. The first host computer of claim 14 , further comprising:

in response to receiving an ARP response packet from the central controller, updating a guest attribute table to indicate that the central controller was notified about the first process executing on the first host computer.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 068591/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2024
From: POON, ARNOLD; MYNENI, SIRISHA; MORDANI, RAJIV; VUTUKURI, ADITI
To: VMWARE, INC.
Reel/Frame 068127/0648 →
Continuity (3)
Continuation 17872846 · Jul 25, 2022
Continuation 16351083 · Mar 12, 2019
Related Publication 20240348584A1 · Oct 17, 2024
References Cited (22)
US 20130315246A1 · Zhang · 2013 [cited by examiner]
US 20150071289A1 · Shin · 2015 [cited by examiner]
US 20150215266A1 · Hernandez · 2015 [cited by examiner]
US 20160337231A1 · Dixon · 2016 [cited by examiner]
US 20180183761A1 · Gunda et al. · 2018 [cited by applicant]
US 20180205673A1 · Jain et al. · 2018 [cited by applicant]
US 20190068491A1 · Tsirkin · 2019 [cited by applicant]
US 20190215200A1 · Uberoy et al. · 2019 [cited by applicant]
US 20190306060A1 · Sharma et al. · 2019 [cited by applicant]
US 20200296077A1 · Poon et al. · 2020 [cited by applicant]
VMware®, “Reference Design: VMware® NSX for vSphere (NSX) Network Virtualization Design Guide”, dated Jan. 2018, 167 pages. [cited by applicant]
Plummer, David, “An Ethernet Address Resolution Protocol”, Network Working Group, dated Nov. 1982, 10 pages. [cited by applicant]
Gross et al., “Geneve: Generic Network Virtualization Encapsulation draft-grossgeneve-00”, Network Working Group, dated Feb. 14, 2014, 23 pages. [cited by applicant]
Cisco, “Encapsulation Techniques: Generic Network Virtualization Encapsulation, VXLAN Generic Protocol Extension, and Network Service Header”, dated 2014, 3 pages. [cited by applicant]
Address Resolution Protocol, “Relates to Lab 2”., dated Aug. 2018, 6 pages. [cited by applicant]
U.S. Appl. No. 16/351,083 Publication Notice, dated Sep. 17, 2020, 1 page. [cited by applicant]
U.S. Appl. No. 16/351,083 Non-Final Office Action dated Feb. 3, 2022, 18 pages. [cited by applicant]
U.S. Appl. No. 16/351,083, Notice of Allowance dated May 12, 2022, 18 pages. [cited by applicant]
U.S. Appl. No. 16/351,083, Issue Notification, received Aug. 10, 2022, 1 page. [cited by applicant]
U.S. Appl. No. 17/872,846 Non-Final Office Action dated Apr. 13, 2022, 23 pages. [cited by applicant]
U.S. Appl. No. 17/872,846, Notice of Allowance dated Nov. 28, 2023, 20 pages. [cited by applicant]
U.S. Appl. No. 17/872,846, Issue Notification, received Mar. 3, 2024, 2 page. [cited by applicant]