summaryrefslogtreecommitdiffstats
path: root/zebra
Commit message (Collapse)AuthorAgeFilesLines
...
| | * [zebra] Changes of nexthops of static routes didnt take effectPaul Jakma2006-12-082-10/+18
| | | | | | | | | | | | | | | | | | | | | | | | 2006-12-08 Piotr Chytla <pch@packetconsulting.pl> * zebra_rib.c: (static_install_ipv{4,6}) Case where existing RIB is updated must explicitely rib_addqueue the route_node, to ensure the update actually takes effect.
| | * [daemon startup] Add --dry-run/-C argument to daemons, to check config file ↵Paul Jakma2006-10-151-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | syntax 2006-10-04 Oliver Hookins <ohookins@gmail.com> * bgpd/bgp_main.c: Add configuration check option, with '-C' rather than '-c' for consistency between daemons. * isisd/isis_main.c: ditto * ospf6d/ospf6_main.c: ditto * ospfd/ospf_main.c: ditto * ripngd/ripng_main.c: ditto * vtysh/vtysh_main.c: ditto * ripd/rip_main.c: Change the config check option to '-C' and tidy up the code. * zebra/main.c: ditto 2006-10-04 Stergiakis Alexandros <astergiakis@antcor.com> * ripd/rip_main.c: This trivial patch introduces a new command-line option '-c', which instructs zebra/ripd to check its configuration file for validity, print any error message, and then exit. This is useful when the configuration file is edited by hand or otherwise, and you simply want to validate it without any other effect. * zebra/main.c: ditto
| | * 2006-09-13 Tom Everett <tom@khubla.com>Greg Troxel2006-09-132-0/+9
| | | | | | | | | | | | | | | * kernel_socket.c (rtm_type_str): ifdef RTM_OLD{ADD,DEL} to compile on systems that no longer define them.
| | * [zebra] trivial: rtadv.h depends on interface.hPaul Jakma2006-08-062-0/+3
| | | | | | | | | | | | | | | | | | 2006-08-06 Paul Jakma <paul.jakma@sun.com> * rtadv.h: depends on interface.h, so should include it.
| | * [zebra] fix inconsistencies in ifstat_update_* declarations and definitionsPaul Jakma2006-08-064-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-08-06 Paul Jakma <paul.jakma@sun.com> * interface.h: (ifstat_update_proc) declaration should match ifstat_update_sysctl really, which is to not return status, as such status is not used anywhere. * if_{proc,sysctl}.c: Make ifstat_update_* definitions and return values consistent with each other and their declarations, ie: (void) (*) (void).
| | * [zebra] IRDP: Move stream_free to where its created, probably fixing a leakPaul Jakma2006-08-043-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-08-01 Paul Jakma <paul.jakma@sun.com> * irdp_main.c: (irdp_advertisement) free the stream here, when done, right under where it was allocated so it's blindingly obvious it's correct. This possibly fixes a very slow leak of streams in zebra. * irdp_packet.c: (send_packet) don't free the stream here as it's hard to tell if right, plus an error case seemed to returning before free anyway.
| | * [zebra] add more stuff to misc_null to avoid compile breakagesPaul Jakma2006-08-042-0/+7
| | | | | | | | | | | | | | | | | | | | | 2006-08-04 Paul Jakma <paul.jakma@sun.com> * misc_null.c: Add ifstat_update_sysctl, add another required header.
| | * [testzebra] Patch to misc_null.c to get older gcc to recognize #pragma tricksAndrew J. Schorr2006-08-022-0/+10
| | | | | | | | | | | | | | | | | | | | | 2006-08-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * misc_null.c: Must include header files to get older versions of gcc to process the #pragma statements properly.
| | * [zebra] Bug #268, Fix race between add/delete of routes, sanitise rib queueingPaul Jakma2006-07-273-176/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-07-27 Paul Jakma <paul.jakma@sun.com> * rib.h: (struct rib) Add a route_node rn_status flag field, this has to be copied every time head RIB of a route_node changes. Remove the rib lock field, not needed - see below. Add a status field for RIB-private flags. * zebra_rib.c: Add a global for the workqueue hold time, useful for testing. (general) Fix for bug #268. Problem originally detailed by Simon Bryden in [quagga-dev 4001]. Essentially, add/delete of a RIB must happen /before/ the queue. Best-path selection (ie rib_process) and reaping of freed RIBs can then be done after queueing. Only the route_node is queued - no important RIB state (i.e. whether a RIB is to be deleted) is queued. (struct zebra_queue_node_t) Disappears, no longer need to track multiple things on the queue, only the route_node. (rib_{lock,unlock}) removed, RIBs no longer need to be refcounted, no longer queued. (rib_queue_qnode_del) Removed, deleted RIBs no longer deleted via the queue. (rib_queue_add_qnode) deleted (rib_queue_add) Only the route_node is queued for best-path selection, we can check whether it is already queued or not and avoid queueing same node twice - struct rib * argument is not needed. (rib_link/unlink) (un)link RIB from route_node. (rib_{add,del}node) Front-end to updates of a RIB. (rib_process) Reap any deleted RIBs via rib_unlink. Unset the route_node 'QUEUED' flag. (General) Remove calls to rib_queue_add where add/del node was called - not needed, update calls where not. Ignore RIB_ENTRY_REMOVEd ribs in loops through route_nodes
| | * [zebra] Add 'debug zebra rib' commandsPaul Jakma2006-07-273-0/+82
| | | | | | | | | | | | | | | | | | 2006-07-27 Paul Jakma <paul.jakma@sun.com> * debug.{c,h}: Add 'debug zebra rib' and 'debug zebra rib queue'.
| | * [zebra] Add test rig code, for testing the zebra RIBPaul Jakma2006-07-278-0/+453
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-07-27 Paul Jakma <paul.jakma@sun.com> * {ioctl,kernel}_null.c: Dummy/Null kernel method implementations, useful for testing zebra code that calls such methods. * {redistribute,misc}_null.c: Dummy/Null methods, as above. But for zclient, and for various misc functions. * test_main.c: Test harness for zebra, currently just to test the RIB. * Makefile.am: Build testzebra using above. * zebra_rib.c: Add a global for the workqueue hold time, useful for testing.
| | * [zebra] Connected routes must always be added to main tablePaul Jakma2006-07-274-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-07-27 Rumen Svobodnikov <rumen@telecoms.bg> * connected.c: (connected_up_ipv4) interface connected routes always go to table main (or otherwise they cannot be used by linux as nexthops) * zserv.c: (zread_ipv4_add) send route to the correct routing table * zebra_rib.c (static_install_ipv4) set routing table
| | * [zebra] Fix CID #104, check addr for null, and #18, check nexthop type argsPaul Jakma2006-07-023-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-07-02 Paul Jakma <paul.jakma@sun.com> * rt_netlink.c: (netlink_interface_addr) Fix CID #104, can not proceed if addr is NULL. * zebra_rib.c: (static_add_ipv6) Fix CID #18, double check required arguments are supplied for the given nexthop type.
| | * [zebra] Fix forgetfulness wrt configured address on FreeBSDPaul Jakma2006-06-153-21/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-06-15 Paul Jakma <paul.jakma@sun.com> * (general) The key fixes are actually Andrew Schorr's. * interface.c: (ip_address_uninstall) Unset the configured flag. * connected.c: (connected_same) new helper, check whether two connected are same. (connected_implicit_withdraw) new helper, consolidation of existing code in connected_add_ipv{4,6}. Try filter out unneeded Zserv address delete/adds when address is exact same. Where old address is implicitely removed, be sure to preserve the IFC_CONFIGURED flag if set, fixes bug where configured addresses were being lost on FreeBSD.
| | * [zebra] remove internal if_flag_dump, use libzebras version.Paul Jakma2006-06-152-45/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-06-15 Paul Jakma <paul.jakma@sun.com> * lib/if.c: (if_flag_dump) remove the whitespace indentation, callers should provide. * zebra/interface.c: (if_flag_dump_vty) redundant code, remove. (if_dump_vty) use libzebra if_flag_dump.
| | * [interface configuration] Try to avoid losing address info after shutdown.Andrew J. Schorr2006-05-212-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-05-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * if.h: (struct connected) Document the meaning of the ZEBRA_IFC_REAL and ZEBRA_IFC_CONFIGURED flags. * connected.c: (connected_withdraw) Do not delete the connected address if the ZEBRA_IFC_CONFIGURED flag is set. (connected_add_ipv4,connected_add_ipv6) Before calling connected_withdraw, unset the ZEBRA_IFC_CONFIGURED flag on the superseded connected structure.
| | * [interface configuration] Preserve flag indicating address was set by quagga.Andrew J. Schorr2006-05-192-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-05-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * connected.c: (connected_add_ipv4,connected_add_ipv6) If the new struct connected matches an already existing one (that will consequently be removed by connected_withdraw), then be sure to preserve the ZEBRA_IFC_CONFIGURED flag.
| | * [debug] Improve zebra kernel socket debug message to include IP addresses.Andrew J. Schorr2006-05-172-3/+45
| | | | | | | | | | | | | | | | | | | | | 2006-05-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * kernel_socket.c: (ifam_read_mesg) Improve debug message to show the IP address.
| | * [zebra] Remove private command string tablePaul Jakma2006-05-152-29/+6
| | | | | | | | | | | | | | | | | | | | | 2006-05-15 Paul Jakma <paul.jakma@sun.com> * zserv.c: (general) Remove the private zebra_command_str in favour of newly added libzebra zserv_command_string.
| | * [zebra] CID #31, guard against potential NULL return of route_node_lookupPaul Jakma2006-05-112-2/+7
| | | | | | | | | | | | | | | | | | | | | 2006-05-11 Paul Jakma <paul.jakma@sun.com> * interface.c: (if_delete_update) route_node_lookup may return NULL, should fix Coverity CID #31.
| | * [zebra] arrange structs in padding-efficient manner and remove unused fieldPaul Jakma2006-03-302-18/+23
| | | | | | | | | | | | | | | | | | | | | | | | 2006-02-09 Paul Jakma <paul.jakma@sun.com> * rib.h: (struct {rib,nexthop}) Rearrange fields to avoid needless padding. (struct rib) Remove the indirect pointer, not used anywhere!
* | | Notify on MTU changesStephen Hemminger2008-10-081-36/+45
| | | | | | | | | | | | | | | Bugfix 3732 Notify routing protocols about MTU changes
* | | netlink message signed/unsigned cleanupStephen Hemminger2008-10-081-6/+6
| | | | | | | | | | | | | | | Avoid possible problems where netlink message is being formatted with unsigned 32 bit value, which was being read as int.
* | | fix ipv6 typo in recursive route update codeStephen Hemminger2008-09-181-1/+1
| | |
* | | remove incorrect debug messageStephen Hemminger2008-09-181-2/+0
| | |
* | | Add delete interface cleanoutStephen Hemminger2008-09-181-4/+4
| | | | | | | | | | | | | | | | | | | | | Quagga needs to fully cleanout state when interface is deleted from system. Bugfix: 3962, 3693
* | | Set metric in RIB for connected routesStephen Hemminger2008-09-171-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Set metric in RIB to keep OSPF happy, but don't set the metric in the kernel since the kernel portion of connected route has metric=0. Bugfix 3668
* | | Handle device renames correctlyStephen Hemminger2008-09-171-8/+13
| | | | | | | | | | | | | | | | | | Bugfix 3658 If inactive device is renamed, just do it. If active device is renamed, update RIB if needed.
* | | Set proper protocol for routes from command lineStephen Hemminger2008-09-171-2/+10
| | | | | | | | | | | | | | | | | | Bugzilla 3681 fix. Routes from 'ip route' default to protocol boot. Need to use this same value when deleting or udpating.
* | | Fix up filtering of netlink pidStephen Hemminger2008-08-181-10/+11
| | | | | | | | | | | | | | | | | | There are two distinct pid's in netlink message. The one in the receive address is the pid of the sender (ie kernel), the other in the netlink message is the originator (ie quagga or ip command).
* | | Revert "Filter messages so that only netlink messages from kernel are allowed."Stephen Hemminger2008-08-181-19/+27
| | | | | | | | | | | | This reverts commit e5d63369e1f3fdc1c22ae15fe477de1f97022703.
* | | Use XCALLOCStephen Hemminger2008-08-183-32/+13
| | | | | | | | | | | | Replace calls to XMALLOC followed by memset with XCALLOC.
* | | Filter messages so that only netlink messages from kernel are allowed.Stephen Hemminger2008-08-181-27/+19
| | | | | | | | | | | | | | | This is a refinement of the socket filter, and also closes a security hole that would allow non-kernel messages to confuse quagga.
* | | Manage system routes with zebraStephen Hemminger2008-08-1511-128/+139
| | | | | | | | | | | | | | | | | | This adds a new flag to the zebra daemon that causes it to add and remove system routes (ie connected and kernel routes). This causes user space (zebra) to do what the kernel was doing in hollwood.
* | | Cleanup meta-queue codeStephen Hemminger2008-08-111-64/+70
| | | | | | | | | | | | | | | | | | | | | | | | Do some cleanup work on recently added meta-queue code: * use table rather than switch * indent with quagga standard indentation * since meta_queue_new is only used at initialization allocation failure should be fatal.
* | | Make command nodes staticStephen Hemminger2008-08-112-4/+4
| | | | | | | | | | | | | | | The cmd_nodes used to configure vty, can mostly be static so (basic data hiding 101).
* | | Realign rib code with upstreamStephen Hemminger2008-08-011-33/+31
| | | | | | | | | | | | May also fix one issue with ipv6 static routes.
* | | Make metaqueue functions staticStephen Hemminger2008-08-011-5/+5
| | | | | | | | | | | | This stuff is only used in RIB code
* | | Make log message lookup function use const tablesStephen Hemminger2008-08-012-3/+3
| | | | | | | | | | | | Message tables should be unaltered.
* | | Fix merge problemsStephen Hemminger2008-07-311-1/+1
| | | | | | | | | | | | Get rid of some conflicts / overlaps from merge of upstream.
* | | Merge branch 'upstream' into islavistaStephen Hemminger2008-07-3110-59/+205
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: ChangeLog NEWS bgpd/ChangeLog bgpd/bgp_attr.c bgpd/bgp_network.c bgpd/bgp_packet.c bgpd/bgp_vty.c bgpd/bgpd.c bgpd/bgpd.h lib/sockopt.c lib/sockopt.h lib/zebra.h mkinstalldirs zebra/rib.h zebra/rt_netlink.c
| * | [zebra] Make BSD link-state deal more gracefully with GIFMEDIA ioctl errorpaul2008-07-012-15/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | + initial edition of meta-queue for RIB updates processing (bug #431)pilot2008-06-025-41/+164
| | |
| * | [daemons] Sanity check port number arguments before usepaul2008-05-291-1/+2
| | | | | | | | | | | | | | | | | | 2008-05-29 Martin Nagy <mnagy@redhat.com> * */*main.c: Sanity check port numbers before using.
| * | [zebra/linux] Use BPF to filter out responses, to try avoid netlink overrunspaul2008-05-292-1/+60
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | + 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.
| * | + fixed bug #418 (changing address on an existing interface doesn't cause ↵pilot2007-11-122-0/+22
| | | | | | | | | | | | existing static routes to be revalidated)