After a first read, it looks like a pretty complete implementation of RFC 6126. I have't checked in detail, but it looks like you got both the loop avoidance and the blackhole avoidance mechanisms right. You're also doing bidirectional reachability detection and fairly reasonable route selection.
> - I implemented it like ‘zeroconf IS-IS’ works, that is, without useful > cost function. It fully interoperates with more comprehensive > implemenations though. You're doing a little better than that -- you're taking txcost into account, so if the neighbour is performing link quality estimation, you're going to use his value. For consistency with Appendix A.2.2 of RFC 6126, please change your cost function to: cost = rxcost * MAX(txcost, 256) / 256 where rxcost is some value no smaller than 256, instead of the current cost = rxcost + txcost which will cause pybabels to be too strongly preferred. > - IPv6 only (who wants legacy IP?) Well, you already parse and honour the Next-Hop TLV, so adding IPv4 support would be trivial. (NH is needed to advertise an IPv4 route when speaking over IPv6.) > - No source [specific] routing Since the source-specific protocol interoperates with plain RFC 6126, that's probably not as big a deal as it sounds. We'll want to modify the default OpenWRT configuration to make sure that it announces a high metric (non-specific) default route towards each source-specific edge router. You should be using a multiplier of the interval as a hold time, rather than a fixed value (is Section 3.4.1 unclear?). Interestingly, you already do the right thing with IHUs (is Section 3.4.2 any clearer than 3.4.1?). See also Appendix B. I think you should always be preferring redistributed routes to learned ones. Oh, one last thing -- I don't understand the comment on line 367. How can the source table entry be a historic copy? -- Juliusz _______________________________________________ homenet mailing list [email protected] https://www.ietf.org/mailman/listinfo/homenet
