Hi ospf WG,
since most of the stuff being presented in the WG is beyond what I can do for Quagga, I've used the time to type up an overview for E-LSA compatibility scenarios. Quite possibly I've made a lot of mistakes. Anyway here it goes. -David Compatibility mechanic A - 3 states, mixed LSA use ================================================== Assumes "fallback" LSA lookups, where routers may use the combined set of E-LSAs and LSAs for calculation. (E-LSAs should probably supersede equivalent LSAs in that case, just to get determinism.) - 0 (old) 1 (mixed) 2 (new) - - use use E-LSAs advertise advertise - - - - - - - - - - - - - - - - - - - - - - - - - - - LSAs advertise advertise - use use The only invalid combination is 0/1/2. This is detectable by all routers when they see both a Router LSA without a matching E-LSA _and_ a Router E-LSA without a matching LSA. (Except in the multi-area case.) The routers detecting this could exclude themselves from the domain on detecting this, but they can only detect this after getting the entire database. On the adjacency level, 0 - 1 - 1 - 2 cannot be detected as each router only sees a valid combination. If there is distributed knowledge about mode-1 capability, automatically degrading the OSPF domain from mode-2 to mode-1 after seeing a mode-0 router is possible. (If this downgrade capability is enabled and signaled by all routers.) Use of the U bit in this case allows other mode-1 routers to get (and use) the E-LSA versions of LSAs even if they're isolated by mode-0 routers from the originator. The downside is that mixing LSA types opens really nice ways of messing it all up with mismatching E-LSAs/LSAs, either by bugs or maliciously. Also, race conditions may start popping up if LSAs arrive from flooding before E-LSAs. Either way, if a router is identified as E-LSA capable, LSAs originated by it should never be used by mode-1 routers. It may also make sense to specify that mode-1 routers must flood associated LSAs and E-LSAs simultaneously. Compatibility mechanic B - 4 states, no mixed LSA use ===================================================== Assumes strict restriction to using only one type of LSAs on any single particular router. Different routers may be in different modes and therefore be using different LSA types in their calculations. - 0 (old) 1 (degraded) 2 (mixed) 3 (new) - - use use E-LSAs advertise advertise advertise - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LSAs advertise advertise advertise - use use A valid, working combination is composed of two neighboring of those modes. 0/1/2 doesn't work because mode-2 routers won't see mode-0 routers, similarly 1/2/3 won't work because mode-1 routers won't see mode-3 routers. Folding up modes 1 & 2 into one mode isn't possible without mixing LSA types in calculations. Enforcing valid, working combinations at the adjacency level can't detect misconfigurations like 1 - 2 - 2 - 3. The simplest thing to make this detectable on all "new" routers is probably including a TLV in the Router E-LSA that indicates modes 1 or 2. (Mode 0 is a plain old Router LSA and mode-3 is a Router E-LSA without the TLV.) Combination 0,1,2 can also be detected by mode-2 routers (and mode-2 routers only) when they see a Router LSA without a matching Router E-LSA. Combination 1,2,3 can be detected by mode-1 routers (only) when they see a Router E-LSA without a matching Router LSA. The routers detecting this could exclude themselves from the domain on detecting this, but they can only detect this after getting the entire database. NB: mode-3 routers can _not_ assume misconfiguration on seeing old-style LSAs since they might be originated by mode-2 routers, which is a valid configuration. Any router can detect a 0/1/2/3 mixture/misconfiguration. (Again, except in a multi-area case.) [no suggestions on what to do after detecting the misconfiguration, a red blinking LED and a buzzer seem appropriate to me. Automatic downgrades are certainly possible, but quite a bit more complicated than in case A before.] Note that use of the U bit on E-LSAs is not neccessary in this case. Either the domain consists of routers in modes 0/1 and it doesn't matter if the E-LSAs get distributed or not (because they're not used), or there are no mode-0 routers, meaning all routers distribute E-LSAs anyway. It does affect misconfiguration detection though. Overall, this seems more complex, but then again it provides robustness against accidental or malicious LSA<>E-LSA mismatches. _______________________________________________ OSPF mailing list [email protected] https://www.ietf.org/mailman/listinfo/ospf
