A Gratuitous Address Resolution Protocol (GARP) packet is an ARP Response that was not prompted by an ARP Request.
Just like ARP (ether-type
0x0806), the GARP is a layer 2 protocol (ether-type
0x8035) and is sent as a broadcast.
vSphere virtual Switches do not send GARP packets but send
Reverse Address Resolution Protocol (RARP) packets (ether-type
0x8035), which is an ARP request.
It's used by ESXi hosts as a way to announce a change or update to upstream switches, for them to update the MAC to switchport mapping (in the MAC table, CAM, or TCAM) for VMs, vmkernel ports and virtual MAC addresses.
ESXi Hosts will send a RARP in the following scenarios, provided the "Notify Switch" option is set to "yes":
1. When a link goes down (or up) and VMs need to connect via a different uplink (the RARP will come from the working link, for each VM or service that had to change links). Around 5 (max. 8) RARP packets for each VM are sent. If the link flaps (goes down and up continuously), up to 8 RARP packets will be sent for each status change and each VM on the link.
In case of multiple events in a short timespan the ESXi host might limit the number, or in some cases not send RARP packets for some systems.
This does not apply to LAGs (see
Link Aggregation Groups and
vSphere7Doc).
2. After a vMotion the destination ESXi host will send a RARP for the VM that is connected on the destination host (usually <1 second).
3. When vCenter reconnects ESXi hosts, or a manual restart of vCenter and/or vpxd is performed, the portgroup, Distributed vSwitch (DVS/vDS) and ports are re-applied to the hosts for previously connected systems.
A Standard vSwitch is managed by the ESXi host, hence, this does not apply to it.
4. When a change/update is made to a portgroup/teaming on a Distributed vSwitch, it is re-applied to the ESXi hosts for previously connected systems.
Note: ESXi Hosts will not send any IPv6 Neighbor Solicitation if "Notify Switch" option is set to "yes" in case of a virtual machine that is using IPv6.