Hi Ondrej,
Using the old RIP protocol implementation as a basis is a problem - that code has several design problems, some of these seems to be shared by the Babel code. Not to mention its idiosyncratic coding conventions are far from ones used in the rest of BIRD. We are currently finishing rewrite of BIRD RIP code to eliminate these problems from RIP. I will send you the new RIP code for inspiration.
since yours *very welcome* RIP re-design is it late now to ask you to implement on it the IPIP (IP version 4) protocol? Our worldwide hamradio community (about 500 gateways around the world) named 44-net mesh based on 44.x.x.x IP numbers could benefit of that feature and directly manage (I hope) that RIP broadcast (coming from the central router at ucsd.edu (University of San Diego - California) through a dedicated 'tunl0' interface in our linux systems. Actually we use two types of 44ripd servers to manage/decode that RIP protocol and everything works very OK... but having that feature implemented in native mode on BIRD may simplify the thing and revamps the old good RIP protocol too :) many thanks gus