Partial vs Full tables

These are the first steps to optimization. Hysteresis is another.
They work in ideal cases. However, when coding, we need to consider
all cases. How do you set the timer?
The timer has to anticipate the future. It's like an automatic
transmission. It can't anticipate the future. However, the worst
that can happen if the automatic transmission anticipates
incorrectly is that it hunts.


FIB compression comes with some risks.
When routes churn, there are certain cases when you have to decompress the FIB.
Then, the FIB must have the space, or else OOPS.
If a set of compressed routes has to change to decompress some and compress a
different set to improve overall compression, there is a lot of FIB
programming going on. This can cause very long convergence times.

The easy solution is to introduce some delay before programming the FIB.
Or even process RIB updates as a separate thread, such that the FIB
update thread does not try to program every step the RIB might go
through. Instead the FIB update thread would take a snapshot of where we
are now and where do we want to be and only program the diff.

Given the concept is a smaller FIB size, this might actually end up
being less FIB programming.