Hello, On 27-07-2015 20:57, Ondrej Zajicek wrote: > The problem here is that Linux IPv6 multipath API is different from the > IPv4 multipath API and very inconvenient for our purposes. > > AFAIK people from Cumulus Networks are trying to fix this issue directly > in Linux kernel to have more reasonable API, which would probably make > BIRD work with some minimal fixes. > > For more details, see slides 15+ in: > https://www.netdev01.org/docs/prabhu-linux_ipv4_ipv6_inconsistencies_talk_slides.pdf
I see. Indeed there can be some nuisances, especially in cases with multiple concurrent insertions/deletions, where there might apparently be duplicate netlink messages. I found a paper by the same author on this subject, which goes into a bit more detail on the suggested solutions: http://people.netfilter.org/pablo/netdev0.1/papers/The-case-for-eliminating-inconsistencies-between-IPv4-and-IPv6-kernel-User-API.pdf Do you happen to know what is the status of this proposal in the Linux kernel? I would imagine that it will take a while for these changes to be available in production, if they are accepted at all. May I suggest that it might be worthwhile the effort to attempt tackling this problem in user space, at least for now? The multipath feature does help a lot, and as it is now we can't really use it (routes are constantly being added and deleted). As I understand the problem, this would require some work of keeping the internal route table in sync with the kernel notifications: detecting when a notification relates to an already existing prefix and add to to the internal table as a multihop route, etc. I am not familiar with the BIRD codebase other than through a cursory glance, but I could try to think about it a bit. Of course, it would be much easier with your guidance. I haven't seen how others implemented this, for example the Quagga people, but they must have had to deal with it somehow. Regards, -- Israel G. Lugo Núcleo de Redes e Comunicações Direção de Serviços de Informática Instituto Superior Técnico
signature.asc
Description: OpenPGP digital signature