summaryrefslogtreecommitdiffstats
path: root/zebra
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge branch 'glendale' into hollisterStephen Hemminger2008-04-292-5/+58
|\|
| * Two passes on update (ipv4 and ipv6)Stephen Hemminger2008-04-291-3/+13
| | | | | | | | | | | | | | | | When interface comes down, need two passes over the rib to correctly process rib updates. If interface has both ipv6 and ipv4 routes and comes down, need to do it as a two step process. Not sure exactly why, but suspect it has to do with the the work queue and the flagging of activity to the head of the list.
| * Check nexthop statusStephen Hemminger2008-04-281-20/+20
| | | | | | | | | | | | Need to check if next hop is interface and if so then only mark route active is interface is active. This addresses some of the problems with static routes when interface goes down.
| * Check nexthop for internal routesStephen Hemminger2008-04-261-0/+22
| | | | | | | | | | | | Check if nexthop is active when doing RIB update. This should fix issues with static routes staying active after link going down.
| * mark static routes as inactive when link is downStephen Hemminger2008-04-241-2/+23
| | | | | | | | | | | | When link becomes unavailable, unselect any routes that use that link as the next hop. This keeps routing protocols from propogating routes these routes and greating black holes.
* | Merge branch 'glendale' into hollywoodrbalocca2008-04-211-1/+1
|\|
| * Fix packet filter state machineStephen Hemminger2008-04-151-1/+1
| | | | | | | | | | | | | | The filter rules were incorrect (jump to wrong offset), so the kernel would not accept them. Fixes: 2570
* | Merge branch 'upstream' into hollywoodTom Grennan2008-04-105-0/+133
|\ \ | |/ |/| | | | | | | | | Conflicts: ChangeLog zebra/zebra_rib.c
| * + fix bug#326 by rib_lookup_and_pushup()pilot2008-02-264-0/+64
| |
| * [link-detect] Improve BSD support.ajs2008-01-113-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | 2008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * lib/zebra.h: Revert previous change, no need to include <net/if_media.h> here. * zebra/ioctl.c: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h> (if_get_flags) Remove debug messages about BSD link state. * zebra/kernel_socket.c: (bsd_linkdetect_translate) If link state is unknown, we should set the IFF_RUNNING flag.
| * [link-detect] Try to get BSD link-detect to work properly.ajs2008-01-103-0/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-10 Ingo Flaschberger <if@xip.at> * configure.ac: Define HAVE_BSD_LINK_DETECT if <net/if_media.h> is present. * lib/zebra.h: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h>. * zebra/ioctl.c: (if_get_flags) If HAVE_BSD_LINK_DETECT, use the SIOCGIFMEDIA ioctl to ascertain link state. * zebra/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.
| * [link-detect] Static interface routes should behave properly with link-detect.ajs2008-01-082-3/+9
| | | | | | | | | | | | | | | | 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.
* | Filter unwanted netlink messagesStephen Hemminger2008-03-311-1/+32
| | | | | | | | | | | | Use socket filter to drop unwanted messages on the netlink listen socket. This prevents problems where the listener socket buffer gets overrruns with echos of the new route update that occurs when link changes.
* | bumped up netlink recv buffer limits for zebra--should alleviate netlink ↵Michael Larson2008-03-201-2/+2
| | | | | | | | | | | | error msgs that occur under large routing tables when layer 2 event occurs.
* | Bugfix: 2845Bob Gilligan2008-03-051-2/+0
| | | | | | | | Re-enable handling of RTM_DELLINK.
* | fix for bug 2570. increased buffer length from 4096 to 8192root2008-01-151-1/+2
| |
* | fix for static interface and static nexthop routes for quagga. Now respects ↵Michael Larson2008-01-043-11/+12
|/ | | | | | cable pull (IFF_RUNNING) events and admin (IFF_UP) events. On false for either event pulls routes from rib, and on true reinserts these back into kernel fib.
* + fixed bug #418 (changing address on an existing interface doesn't cause ↵pilot2007-11-122-0/+22
| | | | existing static routes to be revalidated)
* + fix the bug reported by Milan Kocian (IPv6 route handling was broken by ↵pilot2007-10-242-0/+11
| | | | | | the RIB debug changeset). after
* + rib_process() speedup for multi-nexthop route nodespilot2007-10-042-2/+8
|
* + Minor bugfix: IPv6 prefixes were logged incorrectly in RIB debugging ↵pilot2007-10-032-11/+17
| | | | calls. Fixed.
* + sayonara old_pid!pilot2007-09-145-11/+6
|
* + fixed bug #402: now the second zebra process doesn't destroy routespilot2007-09-142-5/+20
| | | | | | | of the first one before dying + we are not going to receive routing messages originated by old_pid, because rib_sweep_route() is called after damon() now. This will allow to drop old_pid completely soon.
* Switch from LOOKUP() to lookup() for rtm_type (see bug #401 for details).pilot2007-09-144-13/+19
|
* * rt_socket.c: (kernel_rtm_ipv4) prefix_buf could be passedpilot2007-09-122-0/+8
| | | | to zlog_err() uninitialized with debug disabled. Fixed.
* + fixed bug #400: adjusted rtread_sysctl.c:route_read()pilot2007-09-062-0/+8
|
* Looks like bug #320 is finally fixed now.pilot2007-08-212-0/+11
|
* Fixed ioctl_solaris.c:if_get_mtu() for IPv6'less operationpilot2007-08-212-14/+16
|
* Fixed bug #394 "RTF_DONE is ignored in rtm_read()"pilot2007-08-172-2/+7
|
* Merged own patch for bug #390 (rewrite ↵pilot2007-08-142-12/+22
| | | | zebra/zebra_rib.c:nexthop_active_update())
* Merged own patch for the bug #391 (debugging and comments mostly).pilot2007-08-136-48/+412
|
* Use the proper field length for the peer's address (netlink_interface_addr)vize2007-08-102-5/+6
|
* [zebra] Add extra debug logging for RIB and RIB queueingpaul2007-08-062-19/+56
| | | | | | | 2007-08-06 Denis Ovsienko * zebra_rib.c: (general) Add extra debug logging for RIB and RIB queue.
* Add comment questioning part of previous change (Denis?).gdt2007-08-021-26/+31
| | | | Fix indentation to match accumulated changes.
* Bugzilla #384.gdt2007-08-022-8/+13
| | | | | | | | | | | 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. http://bugzilla.quagga.net/attachment.cgi?id=235&action=view
* [zebra] rib loop check for RIB_ENTRY_REMOVED checks wrong varpaul2007-06-272-1/+8
| | | | | | | | | 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.
* [zebra] Trivial patches so we can compile when IPv6 is not enabledajs2007-05-303-29/+45
| | | | | | | | | | | 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.
* [PtP] Fix BSD problems with PtP interfaces: must treat RTA_BRD as peer addressajs2007-05-172-14/+45
| | | | | | | | | | | 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.
* [autoconf] bugs 162,303,178: Fix 'present but can not be compiled' warningspaul2007-05-108-59/+59
| | | | | | | | | | | | | | | | | | | | | | | | 2007-05-09 Paul Jakma <paul.jakma@sun.com> * configure.ac: sys/conf.h depends on sys/param.h, at least on FBSD 6.2. (bug #363) Should check for in_pktinfo for IRDP 2006-05-27 Paul Jakma <paul.jakma@sun.com> * configure.ac: General cleanup of header and type checks, introducing an internal define, QUAGGA_INCLUDES, to build up a list of stuff to include so as to avoid 'present but cant be compiled' warnings. Misc additional checks of things missing according to autoscan. Add LIBM, for bgpd's use of libm, so as to avoid burdening LIBS, and all the binaries, with libm linkage. Remove the bad practice of using m4 changequote(), just quote the []'s in the case statements properly. This should fix bugs 162, 303 and 178. * */*.{c,h}: Update all HAVE_* to the standard autoconf namespaced HAVE_* defines. I.e. HAVE_SA_LEN -> HAVE_STRUCT_SOCKADDR_SA_LEN, * bgpd/Makefile.am: Add LIBM to bgpd's LDADD, for pow().
* [zebra] Add zebra_routemap.cpaul2007-05-041-0/+709
| | | | | * zebra_routemap.c should have been in the commit of Steven's routemap patch.
* [zebra] Routemap support on received routes, with 'set src' command (linux)paul2007-05-0213-47/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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). * doc/main.texi: added route-map, prefix-list, ip protocol and set src documentation * lib/command.h: added PROTOCOL_NODE type * lib/log.c: (proto_name2num) new function, protocol name to number translation. * lib/routemap.c: (vty_show_route_map) fixed "show route-map" without route-map name * lib/routemap.h: added RMAP_ZEBRA type * lib/zebra.h: added proto_name2num() prototype * vtysh/extract.pl.in: added VTYSH_ZEBRA flag for route-map and plist * vtysh/Makefile.am: added zebra_routemap.c * vtysh/vtysh.h: added VTYSH_ZEBRA flag to VTYSH_RMAP * zebra/connected.c: (connected_up_ipv4) added src preference argument to rib_add_ipv4() * zebra/kernel_socket.c: (rtm_read) ditto * zebra/main.c: added prefix list initialization * zebra/Makefile.am: added zebra_routemap.c source file * zebra/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. * zebra/rt_netlink.c: (netlink_routing_table) set preferred source on netlink messages. (netlink_route_change) ditto (netlink_route_multipath) ditto. * zebra/rtread_getmsg.c: (handle_route_entry) added (NULL) src to rib_add_ipv4() call. * zebra/rtread_proc.c: (proc_route_read) ditto * zebra/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/zebra_routemap.c: new file for zebra route-map commands. * zebra/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. * zebra/zserv.c: (zread_ipv4_add) added (NULL) src arg (zebra_init) init zebra route-maps. * zebra/zserv.h: add zebra_route_map_init
* [zebra/solaris] fix if_get_index passing wrong arg to lifreq_set_namepaul2007-04-292-1/+3
| | | | | | | 2007-04-29 Paul Jakma <paul.jakma@sun.com> * if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed to lifreq_set_name().
* [zebra] Fix merge error in previous solaris changesetpaul2007-04-292-1/+5
| | | | | | 2007-04-29 Paul Jakma <paul.jakma@sun.com> * ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit.
* Only suppress adding a connected route to the kernel if it isdyoung2007-04-161-1/+1
| | | | | already marked "real" (ZEBRA_IFC_REAL), i.e., "in kernel." According to Paul Jakma, this probably fixes Quagga bug #202.
* [zebra] MTU change should propogate to zserv client on BSD/Solarispaul2007-04-103-1/+19
| | | | | | | 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.
* [zebra] Retain configured IPv4 address upon removal by kernelpaul2007-04-102-14/+24
| | | | | | | | 2007-04-08 Paul Jakma <paul.jakma@sun.com> * interface.c: (if_delete_update) Address removal triggered by kernel shouldn't remove configured IPv4 address from connected list.
* [testzebra] stubs should call kernel_address_add on IP address installpaul2007-04-103-6/+37
| | | | | | | | 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.
* [zebra] Bug #351: Don't redistribute routes to ipv4 link-local prefixespaul2007-04-104-11/+19
| | | | | | | | | | | 2007-04-07 Paul Jakma <paul.jakma@sun.com> * lib/prefix.h: Add define to match IPv4 Link-Local addresses * zebra/redistribute.c: (zebra_check_addr) Don't redistribute routes to IPv4 link-local prefixes, fixes bug #351. * zebra/redistribute.h: Export zebra_check_addr. * zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr rather than implementing similar logic.
* [zebra] Fix interface metric bug on BSDpaul2007-03-062-1/+15
| | | | | | | | | 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.
* [zebra] IRDP should ignore non-IPv4 addressespaul2007-02-262-0/+10
| | | | | | | | 2007-02-26 Robert Olsson <Robert.Olsson@data.slu.se> * irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses, i.e. do not try interpret IPv6 addresses as IPv4 addresses to broadcast in IRDP announcements..