The following election logic is executed when MIMP packets are exchanged.
Calculate master eligibility.
Set masterEligible to TRUE if the local tunnel group is operationally up, otherwise FALSE.
Set peerMasterEligible to TRUE if the peer’s tunnel group is operationally up, otherwise FALSE.
Elect based on eligibility.
If masterEligible and not peerMasterEligible, elect self master → DONE.
If not masterEligible and peerMasterEligible, elect peer master → DONE.
If not masterEligible and not peerMasterEligible, no master → DONE.
Apply stickiness rules (mastership tends not to change).
If l was ‟acting master” and peer was not ‟acting master”, then elect self master -> DONE.
If 1 was not ‟acting master” and peer was ‟acting master”, then elect peer master -> DONE.
An ‟acting master” is either in MIMP state ‟master” or ‟eligible”.
Elect based on priority and number of active ISAs.
If my priority is higher than peer, elect self master → DONE.
If peer priority is higher than mine, elect peer master → DONE.
If I have more active ISA than peer, elect self master → DONE.
If peer has more active ISA than me, elect peer master → DONE.
The tie breaker:
If the local chassis’ MIMP source address is higher than the peer’s, elect self master → DONE.
Elect peer master → DONE.