summaryrefslogtreecommitdiffstats
path: root/zebra
Commit message (Collapse)AuthorAgeFilesLines
* Remove routes from FIB.Stephen Hemminger2008-07-171-17/+37
| | | | | | | | Earlier commit for Bug 3434 caused removed routes not to be marked as SELECTED. This caused them not to be removed. Fix is to always check both flags. Bugfix 3479
* Handle state transistions when there are multiple nexthopsStephen Hemminger2008-07-171-63/+53
| | | | | When multipath is being used, the state of one nexthop maybe down, but another one may be up.
* Update recursive route when nexthop changesStephen Hemminger2008-07-161-4/+7
| | | | | | | | This includes two fixes. First entries that are marked for removal should not be used (clear SELECTED flag). Also, when recursive route changes, the CHANGED flag needs to be set to force update. Bugfix 3434
* Merge extreme:vyatta/hollywood/vyatta-quagga into hollywoodStephen Hemminger2008-07-161-1/+1
|\
| * Minor typo in zebra debuggingStephen Hemminger2008-07-161-1/+1
| | | | | | | | The command to turn off zebra rib debugging was wrong.
* | Go back to hiding connected routes from down interfacesStephen Hemminger2008-07-161-1/+1
| | | | | | | | | | | | Revert "Revert "Only announce connected routes if link is detected"" This reverts commit 38701029fe978ca18645408771414a91588413d3.
* | Handle races with add/delete of routesStephen Hemminger2008-07-161-27/+20
|/ | | | | Adding a route that already exists, or deleting a route that is already gone, should not be an error.
* Revert "Only announce connected routes if link is detected"Stephen Hemminger2008-07-161-1/+1
| | | | | | Want to remember connected routes even if they aren't active at the current time. This reverts commit 84cc940a9b74d5a867a5598f4b0f6c657eb61c9c.
* Update RIB/FIB on recursive route state changesStephen Hemminger2008-07-151-37/+50
| | | | | | | | If a link state change event causes a different nexthop, then the RIB (and FIB) need to be updated. Solved by forcing the CHANGED flag. This code could be rearranged to be cleaner in future. Bugfix 3434
* Rescan for next hops after static route changeStephen Hemminger2008-07-091-0/+9
| | | | | Bugfix 3433, 3434 Need to rescan for recursive routes after any change to static route.
* active static route changes for ipv6Stephen Hemminger2008-07-071-11/+17
| | | | | This is the IPV6 analog to earlier changes to IPV4 static route management.
* Correctly identify/manage all connected static routesStephen Hemminger2008-07-051-10/+17
| | | | | | | Need to handle all the different flavors of connected routes in linkstate management Bugfix: 2904, 3416
* Make some rib data structures privateStephen Hemminger2008-07-051-2/+2
| | | | | The route_info table can be static const, and the vrf_table can be static.
* Only announce connected routes if link is detectedStephen Hemminger2008-07-051-1/+1
| | | | | Need to check both IFF_UP and IFF_RUNNING if link-detect is enabled, before announcing routes.
* Revert "Backout all changes related to using kernel for linkdetect"Stephen Hemminger2008-06-205-3/+154
| | | | | This reverts commit a182091782d22218942466b062c5ef2406853491. More changes that should NOT go into hollywood
* Revert "Use if_flags_update"Stephen Hemminger2008-06-201-1/+15
| | | | | This reverts commit 17cf20dabb137205497d81f7c55efa45a4e50748. Stuff for next release snuck into hollywood branch
* Use if_flags_updateStephen Hemminger2008-06-201-15/+1
|
* Backout all changes related to using kernel for linkdetectStephen Hemminger2008-06-205-154/+3
| | | | | | | | Having kernel cleanup FIB was not ideal for a couple reasons: 1. It still generates lots of netlink events if there are lots of static routes. 2. Kernel changes were not accepted in mainline kernel "do it in userspace"
* netlink interface minor stuffStephen Hemminger2008-05-283-23/+20
| | | | Add more prototypes and make some functions static
* get rid of duplicate includesStephen Hemminger2008-05-281-3/+0
| | | | included same file twice
* Fix compiler warningsStephen Hemminger2008-05-284-5/+14
| | | | | | | | To eliminate compiler warnings * comment out unused code * fix printf formats * remove always true expression * initialize variables
* Add ipv6 link detect hooksStephen Hemminger2008-05-284-4/+44
| | | | Enable ipv6 link detect in kernel if needed.
* Change how link-detect is configured in buildStephen Hemminger2008-05-271-2/+1
| | | | | Rather that looking for /proc/sys/net/ipv4/conf, use --enable-linkdetect flag to configure.
* Turn on kernel link-detectStephen Hemminger2008-05-225-3/+118
| | | | | If interface has link-detect enabled, try and turn on link-detect in the kernel.
* only set non-blocking on netlink socketStephen Hemminger2008-05-191-133/+50
| | | | | | There is no need to increase buffer size or set non-blocking on the netlink command socket. This reduces the number of system calls per transaction.
* remove unneeded privledge changesStephen Hemminger2008-05-191-12/+3
| | | | | | Netlink recvmsg always succeeds, there are no permission checks in the kernel on receive, only on send and bind. This reduces the number of system calls and any potential security vulnerabilty in recvmsg().
* Merge branch 'hollywood' of suva.vyatta.com:/git/vyatta-quagga into hollywoodStephen Hemminger2008-05-152-29/+34
|\
| * Merge branch 'glendale' into hollywoodrbalocca2008-05-151-8/+8
| |\
| | * Merge branch 'glendale' of suva.vyatta.com:/git/vyatta-quagga into glendaleStephen Hemminger2008-05-121-1/+7
| | |\
| | * | set/check nl port id on messagesStephen Hemminger2008-05-021-8/+8
| | | | | | | | | | | | | | | | | | | | The talk netlink socket should set it's own pid value, so they can be ignored in listener.
| * | | Manage link state on non-connected static routesStephen Hemminger2008-05-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For static routes, go through same logic to check the state of the nexthop to see if the route should be activated or not. Bug fix for 2708
| * | | Ignore netlink interface events that don't change stateStephen Hemminger2008-05-131-20/+24
| | | | | | | | | | | | | | | | | | | | Netlink can notify us about changes that don't affect operative state of the interface. So ignore these type of events.
* | | | Rearrange RIB structures to save memoryStephen Hemminger2008-05-151-29/+30
|/ / / | | | | | | | | | | | | | | | The RIB data structures have lots of "holes" due to compiler alignment. Since Quagga has to deal with large route tables, rearrange the elements to save space.
* | | Merge branch 'hollywood' of suva.vyatta.com:/git/vyatta-quagga into hollywoodStephen Hemminger2008-05-071-15/+25
|\ \ \
| * \ \ Merge branch 'glendale' into hollywoodrbalocca2008-05-071-15/+25
| |\ \ \ | | | |/ | | |/|
| | * | quiet noisy errors from zebraStephen Hemminger2008-05-021-1/+7
| | |/ | | | | | | | | | It is a harmless event when BGP tries to delete already deleted routes.
| | * filter out all route change responses on listen socketStephen Hemminger2008-05-021-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When zebra changes routes it uses the netlink cmd socket, but these also show up on the netlink listen socket. Use more kernel level socket filtering so that any changes that happend because of command socket are ignored. Uses the netlink port id (pid) to identify the changes from the command socket.
* | | Add interface state change loggingStephen Hemminger2008-05-071-2/+11
|/ / | | | | | | Fix bug 487 by adding logging into quagga/zebra.
* | 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.