Hello list! There are several improvements that can be applied to OSPF: 1) At the moment TTL is not explicitly set in per-interface sockets, so multicast messages are sent with default OS ttl (which is 255 on *BSD). This is clearly wrong: RFC 2328 states in A.1: To ensure that these packets will not travel multiple hops, their IP TTL must be set to 1. The same(but less strict) for RFC 5340 (A.1): As such, the multicast addresses have been chosen with link-local scope and packets sent to these addresses should have their IPv6 Hop Limit set to 1. There is also RFC 3171 which states that 3. Local Network Control Block (224.0.0/24) Addresses in the Local Network Control block are used for protocol control traffic that is not forwarded off link. so another possiblility is to implement such behavior in sk_setup_multicast() 2) At the moment bird totally ignores neighbor MTU. We should at least print warning (or error) if neighbor MTU differs. This greatly simplifies debugging procedures.