A participant is an interface that runs a protocol. On a device running GVRP, each GVRP-enabled interface is a GVRP participant, as shown in Figure 1.
A router added to an ERPS ring is called a node. A maximum of two ports on a node can be added to the same ERPS ring. Device A, DeviceB, and Device C in Figure 1 are nodes of the ERPS major ring.
VLAN registration: adds an interface to a VLAN.
VLAN deregistration: removes an interface from a VLAN.
When an interface receives a VLAN attribute declaration, it registers or joins the VLAN specified in the declaration.
When an interface receives a VLAN attribute reclaim declaration, it deregisters or leaves the VLAN specified in the reclaim declaration.
An interface registers or deregisters VLANs only when it receives GVRP messages.
GARP participants exchange VLAN information through GARP messages. There are three types of GARP messages:
Join message
When a GARP participant expects other devices to register its attributes, it sends Join messages to other devices. These attributes are either manually configured attributes or those registered by receiving Join messages from other participants.
JoinEmpty messages: declares an unregistered attribute.
JoinIn messages: declares a registered attribute.
Leave message
When a GARP participant expects other devices to deregister its attributes, it sends Leave messages to other devices. These attributes are either manually deleted attributes or those deleted by receiving Leave messages from other participants.
LeaveEmpty messages: deregisters an unregistered attribute.
LeaveIn messages: deregisters a registered attribute.
LeaveAll message
When a GARP device starts, its LeaveAll timer starts. When the LeaveAll timer expires, the device sends a LeaveAll message.
A LeaveAll message deregisters all attributes so that devices can re-register each other's attributes and periodically delete junk attributes on the network. For example, an attribute of a participant has been deleted but, due to a sudden power outage, the participant does not send any Leave messages to request that other participants deregister the attribute. As a result, this attribute becomes junk. The junk attribute is deleted when the other participants receive a LeaveAll message.
GARP defines four timers:
Join timer
The Join timer controls the sending of Join messages, including JoinIn and JoinEmpty messages.
A participant starts the Join timer after sending an initial Join message. If the participant receives a JoinIn message before the Join timer expires, it does not send a second Join message. If the participant does not receive any JoinIn message before the Join timer expires, it sends a second Join message. This mechanism ensures that Join messages can be sent to other participants.
Each interface maintains an independent Join timer.
Hold timer
The Hold timer controls the sending of Join messages (JoinIn and JoinEmpty messages) and Leave messages (LeaveIn and LeaveEmpty messages).
After a participant is configured with an attribute or receives messages and the Hold timer expires, it sends the messages to other participants. The participant encapsulates messages received within the hold time into a minimum number of packets before sending. If the participant does not start the Hold timer, it forwards messages immediately upon receipt. As a result, a large number of packets will be transmitted on the network, jeopardizing network stability and wasting the data sizes of packets.
Each interface maintains an independent Hold timer. The Hold timer value must be less than or equal to half of the Join timer value.
Leave timer
The Leave timer controls attribute deregistration.
A participant starts the Leave timer after receiving a Leave or LeaveAll message. If the participant does not receive any Join message of an attribute before the Leave timer expires, the participant deregisters the attribute.
A participant cannot deregister an attribute immediately upon receipt of a Leave message, because this attribute may still exist on other participants. This is why the Leave timer is beneficial.
For example, an attribute has two sources on the network: participant A and participant B. Other participants register this attribute through GARP. If this attribute is deleted from participant A, participant A sends a Leave message to other participants. After receiving the Leave message, participant B sends a Join message to notify other participants of the existence of this attribute. After receiving the Join message from participant B, other participants retain the attribute. Other participants deregister the attribute only if they do not receive any Join message of the attribute within a period longer than twice the Join timer value. Therefore, the Leave timer value must be larger than twice the Join timer value.
Each interface maintains an independent Leave timer.
LeaveAll timer
When a GARP device starts, its LeaveAll timer starts. When the LeaveAll timer expires, the device sends a LeaveAll message to request other GARP devices to re-register all of its attributes. Then, it restarts its LeaveAll timer for a new round of polling.
After receiving the LeaveAll message, the other devices restart all of their GARP timers, including the LeaveAll timer. They propagate the LeaveAll messages to all other connected devices except for the device that sent the LeaveAll message. When the LeaveAll timer expires again, the device sends another LeaveAll message, reducing excessive LeaveAll messages sent within a short period of time.
If the LeaveAll timers of multiple devices expire at the same time, all of the devices send LeaveAll messages simultaneously. This results in the sending of unnecessary LeaveAll messages. To resolve this problem, each device uses a random value that is larger than its LeaveAll timer value but less than 1.5 times its LeaveAll timer value. When a LeaveAll event occurs, all attributes of a device are deregistered. The LeaveAll event affects the entire network; therefore, you must set a proper value for the LeaveAll timer that is at least greater than the Leave timer value.
Each device maintains a global LeaveAll timer.
Normal mode: allows a GVRP interface to register, deregister, and propagate dynamic and static VLANs.
Fixed mode: forbids a GVRP interface to register, deregister, or propagate dynamic VLANs, but allows it to register, deregister, and propagate static VLANs.