K 10 svn:author V 3 hrs K 8 svn:date V 27 2010-03-07T09:02:52.124615Z K 7 svn:log V 1751 * Support RTM_IFANNOUNCE message. route6d now works even when an interface is added or removed dynamically. * Improve data structures for the prefix filter: - struct ifc (for interfaces) and struct iff (for filters) are now separated from each other; struct iff is now a separated singly-linked list which contains if_name in each entry. Linear search is used for the prefix matching. - interface specifier in filtering rule now accepts non-existent interfaces at boot time and glob characters like gif* or fxp[012]. (this is based on fnmatch(3)) * Add a new flags: - -P num: ignore routes marked as RTF_PROTO. - -Q num: set RTF_PROTO for routes added by route6d. - -p pidfile: specify the PID file. * Increase retry count for NET_RT_DUMP to 15. * Usage: These fix a typical issue when using route6d + other routing daemon. For example, net/openbgpd which uses RTF_PROTO1 for its routing entries. However, route6d adds/removes routing entries regardless of the RTF_PROTO* flags, it happens that routes added by openbgpd is removed by route6d, and vice versa. Adding "-P 1" solves this situation. This is applied to net/quagga, too. Also, the glob character support greatly simplifies your command line options like this: [before] route6d_flags="\ -N bge0,bge1,re0,gif0,gif1,gif4,gre0,gre1,gre2,gre3,gre4,gre5,gre6,\ gre7,gre8,gre9,gre10,gre11,gre12,gre13,gre14,bridge0 \ -T gif2 \ -O 2001:db8:705:ef00::/56,gif3 \ -A 2001:db8:705:ef00::/56,gif3 \ -L 2001:db8:19:ff::/64,gif3 \ " [after] route6d_flags="\ -P 1 \ -N bge*,re0,gif[014],gre*,bridge* \ -T gif2 \ -O 2001:db8:705:ef00::/56,gif3 \ -A 2001:db8:705:ef00::/56,gif3 \ -L 2001:db8:19:ff::/64,gif3 \ " END