+2008-07-01 Paul Jakma <paul.jakma@sun.com>
+
+ * ioctl.c: (if_get_flags) Deal more gracefully with failure
+ of the BSD link-state SIOCGIFMEDIA ioctl, as some interfaces
+ apparently don't implement it (e.g. tun).
+ Also, make BSD link-state checking be conditional on the
+ 'link-detect' interface configuration flag, as it should be.
+ Fixes bug #465.
+
+2008-06-02 Denis Ovsienko
+
+ * connected.c: (connected_up_ipv4, connected_down_ipv4,
+ connected_up_ipv6, connected_down_ipv6): don't call
+ work_queue_aim_head()
+ * rib.h: adjust RIB_ROUTE_QUEUED macro for meta_queue,
+ declare meta_queue structure
+ * zebra_rib.c: (process_subq, meta_queue_process, rib_meta_queue_add,
+ meta_queue_new) new functions; (rib_queue_add) don't try checking
+ RIB_QUEUE_ADDED flag, rib_meta_queue_add() does it better, take care
+ of the meta queue instead; (rib_queue_init) initialize the meta queue
+ as well; (rib_lookup_and_pushup) don't call work_queue_aim_head();
+ (rib_process) only do actual processing, don't do deallocation;
+ * zserv.h: include meta_queue field into zebra_t structure
+
+2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com>
+
+ * rt_netlink.c: (netlink_install_filter) BPF filter to catch and
+ drop responses to zebra's own route messages.
+ (kernel_init) add BPF filter on the netlink socket.
+
+2008-02-26 Denis Ovsienko
+ * zebra_rib.[ch]: (rib_lookup_and_pushup) New function, which makes sure,
+ that if_set_prefix() has nothing in its way of assigning an address.
+ * ioctl.c: (if_set_prefix) Use rib_lookup_and_pushup() to resolve
+ bug #326.
+
+2008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+ * ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h>
+ (if_get_flags) Remove debug messages about BSD link state.
+ * kernel_socket.c: (bsd_linkdetect_translate) If link state
+ is unknown, we should set the IFF_RUNNING flag.
+
+2008-01-10 Ingo Flaschberger <if@xip.at>
+
+ * ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the SIOCGIFMEDIA
+ ioctl to ascertain link state.
+ * kernel_socket.c: (bsd_linkdetect_translate) New function to
+ map the ifm_data.ifi_link_state value into the IFF_RUNNING flag.
+ (ifm_read) Call bsd_linkdetect_translate to fix the IFF_RUNNING
+ flag before calling if_flags_update.
+
+2008-01-08 Michael Larson <mike@vyatta.com>
+
+ * zebra_rib.c: (nexthop_active_check) Replace if_is_up with
+ if_is_operative to solve problems with static interface
+ routes not behaving properly with link-detect.
+
+2007-11-12 Denis Ovsienko
+
+ * connected.c: (connected_up_ipv4, connected_down_ipv4,
+ connected_up_ipv6, connected_down_ipv6) Collect all changed
+ connected routes closest possible to the RIB work queue, so
+ that the rest can be revalidated correctly.
+
+2007-10-24 Denis Ovsienko
+
+ * kernel_socket.c: (rtm_read) we used to ignore own messages,
+ but the RIB debug commit broke it for IPv6 case (reported
+ by Milan Kocian). Fixed.
+
+2007-10-04 Denis Ovsienko
+
+ * zebra_rib.c: (rib_process) escape from the nexthop
+ iteration cycle earliest possible to save CPU time.
+
+2007-10-03 Denis Ovsienko
+
+ * zebra_rib.c: (rib_process, rib_link, rib_addnode,
+ rib_unlink, rib_delnode) log IPv6 prefixes same well
+ as IPv4 ones are logged.
+
+2007-09-14 Denis Ovsienko
+
+ * rt_socket.c: (kernel_rtm_ipv4) Use lookup() instead of
+ LOOKUP/mes_lookup() for rtm_type_str, as this is more
+ appropriate for sparse code-spaces (#401).
+ * kernel_socket.c: (rtm_read, rtmsg_debug): Idem.
+ * kernel_socket.[ch]: We don't need rtm_type_str_max any more.
+ * main.c: (main) Don't call rib_sweep_route() before the
+ pidfile is acquired, this fixes bug #402.
+ * zserv.h: Dropped old_pid, since it's useless now. This
+ fixes bug #381.
+ * main.c: (main) Idem.
+ * test_main.c: (main) Idem.
+ * kernel_socket.c: (rtm_read) Idem.
+
+2007-09-12 Denis Ovsienko
+
+ * rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passed
+ to zlog_err() uninitialized with debug disabled. Fixed.
+
+2007-09-06 Denis Ovsienko
+
+ * rtread_sysctl.c: (route_read) Set RTF_DONE on the routing
+ messages when fetching initial kernel FIB, so rtm_read()
+ doesn't skip them.
+
+2007-08-21 Denis Ovsienko
+
+ * ioctl_solaris.c: (if_get_mtu) Don't break things if either
+ IPv6 was disabled at compile time or the current interface
+ hasn't it enabled.
+ * kernel_socket.c: (ifm_read) Don't forget to call if_get_mtu()
+ for updated interfaces.
+
+2007-08-17 Denis Ovsienko
+
+ * kernel_socket.c: (rtm_read) Ignore any routing socket messages
+ without RTF_DONE flag set, as they are just noise for us.
+
+2007-08-14 Denis Ovsienko
+
+ * zebra_rib.c: (nexthop_active_update) Added a comment
+ and rewrote nexthop iteration.
+
+2007-08-13 Denis Ovsienko
+
+ * kernel_socket.c: normalize rtm_type_str so it can be handled
+ by LOOKUP macro
+ * kernel_socket.c: (rtm_read) don't ignore self-generated
+ routing messages, so we can debug them; make use of
+ ZEBRA_ERR_RTNOEXIST; output more details in debug log.
+ * kernel_socket.c: (rtmsg_debug) make use of LOOKUP macro
+ * kernel_socket.h: let the world know about rtm_type_str[_max]
+ * rib.h: 3 more debugging functions and 5 return codes
+ * rt_socket.c: (kernel_rtm_ipv4) dump IP prefix and masklen;
+ complain about strange rtm_write() return values
+ * zebra_rib.c: (rib_lookup_ipv4_route, rib_dump,
+ rib_lookup_and_dump) --- new functions; more comments;
+ more debug logging
+
+2007-08-10 Emmanuel Vize <emmanuel.vize@6wind.com>
+
+ * rt_netlink.c: (netlink_interface_addr) Use the appropriate field length for the address
+ (acknowledge Andy's comment).
+
+2007-08-06 Denis Ovsienko
+
+ * zebra_rib.c: (general) Add extra debug logging for RIB and
+ RIB queue.
+
+2007-08-02 Denis Ovsienko
+
+ * rt_socket.c (kernel_rtm_ipv4): Only call rtm_write when changes
+ are intended. Don't set FIB flag on failed additions (such as
+ occur with multiple paths.
+
+2007-06-25 Denis Ovsienko
+
+ * zebra_rib.c: (rib_add_ipv4_multipath) Loop through RIB
+ is using 'same' variable, but RIB_ENTRY_REMOVED check
+ is testing the constant 'rib' variable, fix. Impact
+ unknown at this point.
+
+2007-05-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+ * zebra_routemap.c: (route_set_src_compile) Use '#ifdef HAVE_IPV6'
+ as needed.
+ * zebra_vty.c: (vty_show_ip_route_detail, vty_show_ip_route) Use
+ '#ifdef HAVE_IPV6' as needed.
+ (show_ip_protocol) Move function definition outside of
+ '#ifdef HAVE_IPV6' section.
+
+2007-05-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+ * kernel_socket.c: (ifam_read_mesg) Grab RTA_DST and RTA_GATEWAY
+ addresses from the message (if present, which seems unlikely on
+ current BSD platforms), and show them in the debug messages.
+ Also, add ifam_flags to the debug messages.
+ (ifam_read) If the interface is point-to-point, then the RTA_BRD
+ address should be treated as a peer address.
+
+2007-05-01 David L Stevens <dlstevens@us.ibm.com>
+
+ * (general) These changes collectively add route-map and
+ prefix-list support to zebra and fix a bug in "show
+ route-map" (with no argument).
+ * connected.c: (connected_up_ipv4) added src preference argument
+ to rib_add_ipv4()
+ * kernel_socket.c: (rtm_read) ditto
+ * main.c: added prefix list initialization
+ * Makefile.am: added zebra_routemap.c source file
+ * rib.h: added generic address union "g_addr" and use in
+ existing places that had an explicit union.
+ Added "src" to struct nexthop.
+ Added preferred src arg to nexthop_ipv4_add and rib_add_ipv4.
+ * rt_netlink.c: (netlink_routing_table) set preferred source on
+ netlink messages.
+ (netlink_route_change) ditto
+ (netlink_route_multipath) ditto.
+ * rtread_getmsg.c: (handle_route_entry) added (NULL) src to
+ rib_add_ipv4() call.
+ * rtread_proc.c: (proc_route_read) ditto
+ * zebra_rib.c: (nexthop_ipv4_add) add src argument.
+ (nexthop_ipv4_ifindex_add) ditto
+ (rib_add_ipv4) ditto
+ (nexthop_active_check) Add route-map processing.
+ * zebra_routemap.c: new file for zebra route-map commands.
+ * zebra_vty.c: (ip_protocol_cmd) Apply route-map to protocol
+ (vty_show_ip_route_detail) added "src" printing
+ (vty_show_ip_route) ditto
+ (show_ip_protocol_cmd) new command, list routemaps.
+ (config_write_protocol) write out routemap protocl config.
+ (zebra_vty_init) Install the new routemap protocol commands.
+ * zserv.c: (zread_ipv4_add) added (NULL) src arg
+ (zebra_init) init zebra route-maps.
+ * zserv.h: add zebra_route_map_init
+
+2007-04-29 Paul Jakma <paul.jakma@sun.com>
+
+ * ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit.
+ * if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed
+ to lifreq_set_name().
+
+2007-04-10 Paul Jakma <paul.jakma@sun.com>
+
+ * ioctl{_solaris,}.c: (if_get_mtu) Ping clients via
+ zebra_interface_up_update if MTU is changed.
+
+2007-04-08 Paul Jakma <paul.jakma@sun.com>
+
+ * {ioctl,kernel}_null.c: Install of IP address should
+ reflect back to zebra via kernel_address_add..., makes
+ testzebra more useful.
+ * interface.c: (if_delete_update) Address removal triggered
+ by kernel shouldn't remove configured IPv4 address from connected
+ list.
+
+2007-04-07 Paul Jakma <paul.jakma@sun.com>
+
+ * redistribute.c: (zebra_check_addr) Don't redistribute routes
+ to IPv4 link-local prefixes, fixes bug #351.
+ * redistribute.h: Export zebra_check_addr.
+ * router-id.c: (router_id_bad_address) re-use zebra_check_addr
+ rather than implementing similar logic.
+
+2007-03-06 Paul Jakma <paul.jakma@sun.com>
+
+ * kernel_socket.c: (ifam_read) Do not update interface metric on
+ receipt of NEW/DEL ADDR messages, bogus as: a) some systems
+ dont include iface metric for address events b) we didn't
+ update clients either. Initial diagnosis by Eugene Grosbein.
+
2007-02-26 Robert Olsson <Robert.Olsson@data.slu.se>
* irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses,