GARP was defined by the IEEE 802.1 working group to provide a generic framework allowing bridges (or other devices like switches) to register and de-register attribute values such as VLAN identifiers and multicast group membership. GARP defines the architecture, rules of operation, state machines and variables for the registration and de-registration of attribute values. GARP was used by two applications: GARP VLAN Registration Protocol (GVRP) for registering VLAN trunking between multilayer switches, and by the GARP Multicast Registration Protocol (GMRP). The latter two were both mostly enhancements for VLAN-aware switches per definition in IEEE 802.1Q.