Feature #3211
closedRedesign of remote prefix registration
100%
Description
rename Remote Registration to Automatic Prefix Propagation.
REASON: the term "Remote" may confuse others, while "Automatic Propagation" impresses what this feature works.eliminate two interfaces: registerPrefix / uregisterPrefix.
REASON: registration and unregistration processes are triggered by corresponding signals of Rib automatically, their entrances should not be exposed.select the shortest available identity to register remotely, rather than the longest one.
REASON: to reduce the number of registered entries.
NOTE: no registration flag will be inherited from local RIB entries. The default setting (i.e, CHILD INHERIT) takes effect.introduce a resendRegCommand method shared by refreshing, retrying or redoing (after hub connect) registrations and improve the mechanism.
REASON1: refreshing, retrying, redoing registrations all require to resend the registration commands.
REASON2: before resending commands, there may be new identities inserted or existing identities erased. This scenario was not covered before.introduce a RemoteRegisteredEntry class and a state machine to maintain registered entries.
maintain potential registered entries when there is no connectivity (fix #2413)
correct the action when registration succeeds but the registered entry does not exist.
adopt an exponential back-off strategy as the retry policy after registration fails, instead of performing limited number of retries.
cover the case when unregistration succeeds but an entry with the same name exists.
redesign the test suite.
Files