Hi. I'm trying to get rid of quagga on most of my routers. When they run BGP/OSPF everything is fine, but when it comes to RIP, bird crashes. I run bird on a set of VPN tunnels, mostly gre. I need RIP because Cisco marketoids keep on manufacturing small boxes that cannot run OSPF, only RIP is available. Bird crashes as soon as the protocol exchange is started.
Here's a backtrace along with some info about the setup: ===Cut=== [emz@moscow-alpha:~/bird.cores]# gdb /usr/local/sbin/bird bird.core GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Core was generated by `bird'. Program terminated with signal 6, Aborted. Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x00000008007a3abc in kill () from /lib/libc.so.7 (gdb) bt full #0 0x00000008007a3abc in kill () from /lib/libc.so.7 No symbol table info available. #1 0x00000008007a28bb in abort () from /lib/libc.so.7 No symbol table info available. #2 0x000000000044ef49 in bug (msg=Could not find the frame base for "bug". ) at log.c:254 args = Could not find the frame base for "bug". (gdb) bt #0 0x00000008007a3abc in kill () from /lib/libc.so.7 #1 0x00000008007a28bb in abort () from /lib/libc.so.7 #2 0x000000000044ef49 in bug (msg=Could not find the frame base for "bug". ) at log.c:254 #3 0x0000000000437aa6 in advertise_entry (p=0x800a1f920, b=0x800a5b004, whotoldme=2886730539, iface=0x0) at ../../../proto/rip/rip.c:330 #4 0x0000000000437d07 in process_block (p=0x800a1f920, block=0x800a5b004, whotoldme=2886730539, iface=0x0) at ../../../proto/rip/rip.c:386 #5 0x0000000000438054 in rip_process_packet (p=0x800a1f920, packet=0x800a5b000, num=1, whotoldme=2886730539, port=520, iface=0x0) at ../../../proto/rip/rip.c:449 #6 0x0000000000438349 in rip_rx (s=0x800a0e400, size=20) at ../../../proto/rip/rip.c:504 #7 0x00000000004497ef in sk_read (s=0x800a0e400) at io.c:1493 #8 0x0000000000449fe4 in io_loop () at io.c:1707 #9 0x00000000004504fd in main (argc=3, argv=0x7fffffffed48) at main.c:745 (gdb) ===Cut=== ===Cut=== [emz@moscow-alpha:~/bird.cores]# uname -a FreeBSD moscow-alpha 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #1: Thu Mar 29 16:14:11 MSK 2012 emz@moscow-alpha:/usr/obj/usr/src/sys/MOSCOW amd64 ===Cut=== ===Cut=== /* would be nice to have named lists for these ! :) */ filter importripv4 { if net ~ [ 94.159.37.112/29, 192.168.21.0/24, 172.16.0.95/32, 172.16.3.4/32, 172.16.3.26/32, 172.16.3.28/32, 172.16.3.32/32, 172.16.3.36/32, 172.16.3.42/32, 172.16.3.48/32, 172.16.3.50/32, 172.16.3.66/32, 172.16.3.68/32, 172.16.3.106/32, 172.16.3.108/32, 172.16.3.116/32, 172.16.3.132/32, 172.16.3.136/32, 172.16.3.142/32, 172.16.3.144/32, 172.16.3.146/32, 172.16.3.154/32, 172.16.3.174/32, 172.16.3.184/32, 172.16.3.188/32, 172.16.3.252/32, 172.16.5.0/32, 172.16.5.2/32, 172.16.5.4/32, 172.16.5.8/32, 172.16.0.94/32, 172.16.3.5/32, 172.16.3.27/32, 172.16.3.29/32, 172.16.3.33/32, 172.16.3.37/32, 172.16.3.43/32, 172.16.3.49/32, 172.16.3.51/32, 172.16.3.67/32, 172.16.3.69/32, 172.16.3.107/32, 172.16.3.109/32, 172.16.3.117/32, 172.16.3.133/32, 172.16.3.137/32, 172.16.3.143/32, 172.16.3.145/32, 172.16.3.147/32, 172.16.3.155/32, 172.16.3.175/32, 172.16.3.185/32, 172.16.3.189/32, 172.16.3.253/32, 172.16.5.1/32, 172.16.5.3/32, 172.16.5.5/32, 172.16.5.9/32 ] then reject; accept; } filter exportripv4 { if source = RTS_BGP then reject; if net ~ [ 94.159.37.112/29 ] then reject; accept; } protocol rip ripv4 { interface "gre21", "gre25", "gre6"; honor neighbor; import filter importripv4; export filter exportripv4; } ===Cut=== ===Cut=== [emz@moscow-alpha:/]# ifconfig gre21 gre21: flags=b051<UP,POINTOPOINT,RUNNING,LINK0,LINK1,MULTICAST> metric 0 mtu 1476 tunnel inet 94.159.37.114 --> 188.133.159.62 inet 172.16.3.184 --> 172.16.3.185 netmask 0xffffffff [emz@moscow-alpha:/]# ifconfig gre25 gre25: flags=b051<UP,POINTOPOINT,RUNNING,LINK0,LINK1,MULTICAST> metric 0 mtu 1476 tunnel inet 94.159.37.114 --> 178.219.36.237 inet 172.16.5.2 --> 172.16.5.3 netmask 0xffffffff [emz@moscow-alpha:/]# ifconfig gre6 gre6: flags=b051<UP,POINTOPOINT,RUNNING,LINK0,LINK1,MULTICAST> metric 0 mtu 1476 tunnel inet 94.159.37.114 --> 213.33.223.158 inet 172.16.3.42 --> 172.16.3.43 netmask 0xffffffff ===Cut=== Thanks. Eugene.