summaryrefslogtreecommitdiffstats
path: root/ripd
Commit message (Collapse)AuthorAgeFilesLines
* Merge Quagga master branch -- as of 1-Mar-2012 -- into euro_ix_bex21bChris Hall2012-03-174-27/+14
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Version 0.99.20ex21b This brings us up to date with: commit 48f99b0c2bfed8d3880732d188e1d5964f575ee4 Date: Thu Sep 29 16:55:23 2011 +0400 release: 0.99.20 and the subsequent: commit dc00d2bb56aa6a84dd2328133f69db3c3e6d9dc7 Date: Sun Jan 8 14:47:06 2012 +0000 Marker merge for 'RE-0.99.17.6' This marker merge (i.e. an 'ours' strategy merge) is a placeholder to show that all commits in Quagga-RE stable, to its release RE-0.99.17.6 tag, have been reviewed and merged into 'master'. and then further commits (in descending date order) commit b51a3a31500133e3e26f12e7639f297c655bc735 commit ef2d5d100431031c32ea35b3c834b46cff16f511 commit 4c78376f96cd2ca56f1c6476b76fd659654431f5 commit e854095932260b3e6187902aa9a7baa0e96b9428 commit e6b03b77766dce8009ad7b4a2392e14addf4ab0f commit c25eaffdb2190149e768dc4ee4efc913c6d02992 commit d034aa027ef44d0a74805c27ad2a4d8ea20395d1 commit 907fd95e502e10334e5390c73cc57588b88b8171 commit 7fd6cd819ff98f0580b745ba637990df9c20ef0f commit 4c0cf00afc4340a429a9c4830f638b4593d7c3af commit 4afa50b393ff1fb34dd577888a05b81dfdced5af commit 6eb0c5ab1d43bcf9edd4fefd19031f2b96ded728 commit aca43b656623f38dfa6ea835dacbdfec51d03a67 commit 6bb1273e83c29b3aeff9584bc8f6272e773294ad commit d660f698427277ce695a5b756f3143c8304274ea commit 6134b875f39986564aced5e2d7329fcd852f17f4 commit b4e45f67057be22133b6bec88cdf285d5c8214db commit 6eac79a6fed4842e00607c00c445213b51bba377 commit cb32fd690a957819865219a847e3c21a53a0f419 commit 73bfe0bd9adb8e4dfcee7239e56a425c6d58f4e9 commit f768f367bcd1f37a53c563495176a5a134caf234 commit c7ec179a95c1ed4fcd3d3be3f981c8c20dce534a commit cddf391bf6839e9f093cef15508669c1f3f92122 commit 5a616c08ce089e25dc0e8da920727af4d11279bf commit 6ae93c058725991df5a9ae35cefec368919b5fea commit fc98d16ea77372f4ab4231e8904f8467e8d1ef71 A summary of the changes that relate to bppd, zebra and the lib follows. bgpd changes * attribute handling: (a) now checks the flag byte for all attributes and issues suitable log messages and notifications, (b) reports some length issues that previously let slide (local pref). Tighten End-of-RIB detection -- now iff an MP_UNREACH is the *only* attribute and no ordinary update or withdraw. * added --socket/-z option -- sets zebra socket name * sets IPv6 tclass as required * improved next hop handling and added "show ip bgp scan" and "show ip bgpd scan detail" commands. see commits: fc98d16ea77372f4ab4231e8904f8467e8d1ef71 0e8032d69961ae196c11ba6ead856084c7acf7c2 b64bfc1c4a552fc0b4dd024d5f77171ec848a5df 318f0d8a7f5e8e87086bbf2a9e7c4b35638951ac 8e80bdf20f493a71bcf74262ed3aa3a2437f4df6 f04a80a5d209dbb54f6fec5d0149b7c0e489d29e * removed SAFI_UNICAST_MULTICAST * fiddled with SAFI_MPLS_LABELED_VPN -- unsure if this is now complete -- stuff here TODO ! * support for multicast SAFI see commits: 73bfe0bd9adb8e4dfcee7239e56a425c6d58f4e9 5a616c08ce089e25dc0e8da920727af4d11279bf * added "match probability" commands * uses "route_types.txt" more effectively -- which affects the implementation of "redistribute" commands see commit: e0ca5fde7be5b5ce90dae78c2477e8245aecb8e9 * "nexthop-local unchanged" included in configuration. zebra changes * some whitespace change clutter :-( * ZEBRA_HELLO and mopping up routes (BZ#448) * implement route_types.h * support for SAFI_MULTICAST commit f768f367bcd1f37a53c563495176a5a134caf234 IPv6 MP-BGP Routes addition and deletion commit cddf391bf6839e9f093cef15508669c1f3f92122 IPv4 MP-BGP Routes addition and deletion * brought up to date with RFC6275 * add --socket/-z option * add "ipv6 nd mtu <1-65535>" commands lib changes * filter-list handling -- does not free the filter-list before calling the delete_hook(). However, unlike commit 6a2e0f36b103386e57dbe3a6ee4716e809111198 *does* remove the filter-list from the name look-up, before calling the delete_hook() -- which I believe works better. * md5.c now includes RFC 2104 HMAC However fixed to remove compiler warning, by replacing use of caddr_t by unsigned char*. Some phantom whitespace changes elsewhere * prefix.c: commits d171bf58ef12ace43d48565e6870722dece1e6ed 051954f574b9c26458518a7029aeed118f0da620 9663386f16e6285a322747514527fdf1d19788e4 - optimise masklen2ip() and apply_mask_ipv4() -- the version here should work on a Big-Endian machine as well. - optimise ip_masklen() -- the version here should (a) work on a Big-Endian machine, (b) give the same result as before if the netmask is not, in fact, valid, and (c) uses just 256 bytes of table -- not 64K. Version here is probably not quite as fast as the previous patch... but certainly faster that what was there before. * zclient.c: introduced zclient_serv_path, for general zclient and for bgpd zlookup. Added ZEBRA_HELLO to client start. Added safi to ipv4 and ipv6 route add/delete.
| * fix zebra protocol after MP-BGP changesDenis Ovsienko2012-01-231-0/+2
| | | | | | | | | | | | The previous commits modified both zebra and bgpd for additional SAFI field, but not any other routing daemon, which led to zebra daemon crashing with failed assertion.
| * build: delete .cvsignore filesDenis Ovsienko2011-12-131-14/+0
| |
| * quagga: option "-z" ("--socket <path>") addedVyacheslav Trushkin2011-12-131-1/+7
| | | | | | | | | | | | | | | | | | | | | | All daemons modified to support custom path to zserv socket. lib: generalize a zclient connection zclient_socket_connect added. zclient_socket and zclient_socket_un were hidden under static expression. "zclient_serv_path_set" modified.
| * lib: simplify interface of setsockopt_multicast_ipv4().Dmitrij Tejblum2011-09-271-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | * sockopt.[ch] (setsockopt_ipv4_multicast): ifindex is now mandatory (all non-ancient OSes can use it anyway), and if_addr parameter (the address of the interface) is now gone. (setsockopt_ipv4_multicast_if): IP_MULTICAST_IF processing moved to this new function * ospf_network.c (ospf_if_add_allspfrouters, ospf_if_drop_allspfrouters, ospf_if_add_alldrouters, ospf_if_drop_alldrouters, ospf_if_ipmulticast), rip_interface.c (ipv4_multicast_join, ipv4_multicast_leave, rip_interface_new): adapt to the new interface
* | Merge with main Quagga source as of 29-Jul-2011.ex17Chris Hall2011-08-121-210/+194
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create euro_ix branch. Update version to: 0.99.18ex17 Of particular note: * includes support for GTSM: neighbor ... ttl-security hops X no neighbor ... ttl-security hops X where X is 1-254. For usual case of immediately connected peer, X == 1. Cannot set ttl-security while ebgp-multihop is set, and vice-versa. If underlying O/S does not support GTSM, then will set ttl as per ebgp-multihop. In passing, have fixed various bugs in the main Quagga branch. * initial support for draft-ietf-idr-optional-transitive Does not yet support "neighbor-complete" flag. * main Quagga now uses TCP_CORK and permanent non-blocking Do not beleive TCP_CORK to be necessary for euro_ix code... which has a different buffering strategy. The euro_ix code already runs sockets permanently non-blocking. * various fixes to attribute intern/unintern Trying to remove memory leaks. Nobody seems convinced that this has been perfected, yet. * fixes for ospfd and ospf6d issues. Up to date with master branch up to: commit 538cb284864c17de66152a5236db4cd80e3e7639 Merge: 036a6e6 8ced4e8 Author: Paul Jakma <paul@quagga.net> Date: Fri Jul 29 18:21:50 2011 +0100
| * ripd: resolve debug statements issue (bug 442)Andrew J. Schorr2011-02-242-16/+9
| | | | | | | | | | | | ...A nasty bug, if you forgot to disable debugging, stored the config and reboot your machine - if you really depend on ripd, then the machine will not fully come back on the network, because ripd fails.
* | Bring "ex" version up to date with 0.99.18ex14Chris Hall2011-03-292-16/+9
| | | | | | | | | | | | | | | | Release: 0.99.18ex14 Also fixes issue with unknown attributes -- does not release them prematurely. Contains the "bgpd: New show commands for improved view and address family support", which is post 0.99.18. (But not RFC 5082 GTSM.)
* | Removing compiler warnings.Chris Hall2010-04-164-4/+21
| | | | | | | | | | | | | | | | Removed nearly 100 compiler warnings in the various routing daemons which now clean compile. Removed one warning in vty.c, which was obscured by the other warnings. SO... this commit corrects the previous one.
* | Compile all daemons, except vtysh, clean but with warnings.Chris Hall2010-04-161-0/+1
|/ | | | | | | | Now compiles with all daemons enabled. Split command.h to separate out the functions whish are only used durring command execution -- that is, those used in vty.c and family and in vtysh.
* ripd: fix compiler warningsStephen Hemminger2009-12-104-8/+17
| | | | | | | | | | | | | | | | | | * ripd/rip_interface.c * rip_request_neighbor(): comment out, unused * rip_request_neighbor_all(): idem * rip_interface_up(): Cast flags otherwise compiler complains about %lld not matching uint64_t on 64 bit x86. Print in hex since flags are bit field. * rip_interface_add(): idem * rip_interface_delete(): idem * ripd/rip_zebra.c * rip_redistribute_set(): comment out, unused * ripd/ripd.h * rip_redistribute_check(): move prototype here so compiler can check function against prototype * ripd/ripd.c * rip_update_default_metric(): comment out, unused
* all: check return value from daemon() callStephen Hemminger2009-08-131-2/+5
| | | | | | * */*main.c: (main) Current versions of Gcc warn if the return value for daemon() is not checked. So add a simple test and exit on failure.
* [global] interface flags format warningsStephen Hemminger2009-07-281-5/+6
| | | | | */*: ifp->flags is 64 bit unsigned which can not be handled by %l on 32 bit architectures - requires %ll and the appropriate cast.
* ripd: set IP TOS for control socketStephen Hemminger2009-07-271-0/+3
| | | | | * ripd.c: (rip_create_socket) RIP packets should go out with Type Of Service (DSCP) set to Internet control (like OSPF and BGP).
* [ripd] Ignore non-running interfaces in rip statusStephen Hemminger2009-06-181-0/+3
| | | | Vyatta Bug 3999
* [cleanup] Make command nodes staticStephen Hemminger2009-06-124-4/+4
| | | | | The cmd_nodes used to configure vty, can mostly be static so (basic data hiding 101).
* [cleanup] Convert XMALLOC/memset to XCALLOCStephen Hemminger2009-06-124-24/+7
| | | | Simple conversion of XMALLOC/memset to XCALLOC
* [snmp] Compiler warning fixes for when "--enable-snmp" is configured.Chris Caputo2009-06-021-5/+9
| | | | | Compiled on 32-bit and 64-bit linux gcc 4.1.2 platforms. No run-time testing on 32-bit and limited run-time testing on 64-bit.
* [ripd] Fix metrix in call to rip_zebra_ipv4_deleteKrisztian Kovacs2009-06-021-1/+1
| | | | | | | Fix a potential problem (most probably not triggering a real problem, at least on Linux). When an interface goes down and ripd tries to delete the corresponding route it errorneously passes the interface's index instead of the metric to zebra.
* Make --enable-snmp cross compile and make libcrypto optional with ↵Joakim Tjernlund2008-08-251-1/+3
| | | | | | | --without-crypto Autoconfig work by me, the rest was done by "Kirill K. Smirnov" <lich@math.spbu.ru>
* [administrivia] Update gitignore filesPaul Jakma2008-08-221-1/+1
| | | | - Add more stuff, archive libraries, etc..
* [administrivia] Git should ignore backup files and .loT filesPaul Jakma2008-08-221-0/+3
|
* [trivia] Remove ChangeLog files, as this data is now maintained in SCMPaul Jakma2008-08-221-1217/+0
|
* [lib] mes_lookup string lookup table argument should be marked constStephen Hemminger2008-08-221-2/+3
| | | | | | | | | 2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com> * lib/log.{c,h}: struct message argument should point to const * */*.c: adjust to suit, Signed-off-by: Paul Jakma <paul@quagga.net>
* [build] Test for GNU-style PIE support in toolchain and enablePaul P Komkoff Jr2008-08-221-0/+3
| | | | | | | | | | | 2008-08-13 Paul P Komkoff Jr <i@stingr.net> * configure.ac: add a configure flag and autoconf macro, which will determine if your toolchain supports PIE. * */Makefile.am: add corresponding CFLAGS and LDFLAGS into appropriate places. Signed-off-by: Paul Jakma <paul@quagga.net>
* [administrivia] Add .gitignore files, based on .cvsignores.Paul Jakma2008-08-221-0/+14
|
* [ripd] Fix mistaken empty string testPaul Jakma2008-05-292-1/+5
| | | | | | 2008-05-29 Stephen Hemminger <stephen.hemminger@vyatta.com> * ripd.c: (rip_auth_md5) fix bogus empty string test
* [daemons] Sanity check port number arguments before usePaul Jakma2008-05-291-1/+2
| | | | | | 2008-05-29 Martin Nagy <mnagy@redhat.com> * */*main.c: Sanity check port numbers before using.
* [ripd] remove unnecessary 0 entries from struct message'sPaul Jakma2008-03-133-2/+6
| | | | | | | | 2008-03-13 Paul Jakma <paul.jakma@sun.com> * ripd.c/rip_interface.c: Remove 0 entries from rip_msg ri_version_msg struct message's, not needed with recent fixes to mes_lookup.
* [autoconf] bugs 162,303,178: Fix 'present but can not be compiled' warningsPaul Jakma2007-05-101-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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().
* [ripd, ripngd] Remove useless code in rip_vty_out_uptime functionAndrew J. Schorr2007-04-272-3/+4
| | | | | | | | 2007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ripd/ripd.c: (rip_vty_out_uptime) Remove unused variable timer_now. * ripngd/ripngd.c: (ripng_vty_out_uptime) Remove unused variable timer_now.
* Fix the display of route timeout in "show ip rip". (Use ↵Vincent Jardin2007-04-112-2/+7
| | | | thread_timer_remain_second)
* [ripd] Fix "show ip rip status" display of time until next updateAndrew J. Schorr2007-03-212-13/+9
| | | | | | | | | 2007-03-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ripd.c: (show_ip_rip_status) Use new thread_timer_remain_second function instead of rip_next_thread_timer to display the time until next update properly. (rip_next_thread_timer) Remove obsolete function.
* [PtP over ethernet] New peer flag allows much more addressing flexibilityAndrew J. Schorr2006-12-123-14/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating whether a peer address has been configured. Comment now shows the new interpretation of the destination addr: if ZEBRA_IFA_PEER is set, then it must contain the destination address, otherwise it may contain the broadcast address or be NULL. (CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete macros that were specific to IPv4 and not fully general. (CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag. (CONNECTED_PREFIX) New macro giving the prefix to insert into the RIB: if CONNECTED_PEER, then use the destination (peer) address, else use the address field. (CONNECTED_ID) New macro to come up with an identifying address for the struct connected. * if.c: (if_lookup_address, connected_lookup_address) Streamline logic with new CONNECTED_PREFIX macro. * prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros for better performance than the general prefix_copy function. * zclient.c: (zebra_interface_address_read) For non-null destination addresses, set prefixlen to equal the address prefixlen. This is needed to get the new CONNECTED_PREFIX macro to work properly. * connected.c: (connected_up_ipv4, connected_down_ipv4, connected_up_ipv6, connected_down_ipv6) Simplify logic using the new CONNECTED_PREFIX macro. (connected_add_ipv4) Set prefixlen in destination addresses (required by the CONNECTED_PREFIX macro). Use CONNECTED_PEER macro instead of testing for IFF_POINTOPOINT. Delete invalid warning message. Warn about cases where the ZEBRA_IFA_PEER is set but no destination address has been supplied (and turn off the flag). (connected_add_ipv6) Add new flags argument so callers may set the ZEBRA_IFA_PEER flag. If peer/broadcast address satisfies IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning. Set prefixlen in destination address so CONNECTED_PREFIX will work. * connected.h: (connected_add_ipv6) Add new flags argument so callers may set the ZEBRA_IFA_PEER flag. * interface.c: (connected_dump_vty) Use CONNECTED_PEER macro to decide whether the destination address is a peer or broadcast address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT). * if_ioctl.c: (if_getaddrs) Instead of setting a peer address only when the IFF_POINTOPOINT is set, we now accept a peer address whenever it is available and not the same as the local address. Otherwise (no peer address assigned), we check for a broadcast address (regardless of the IFF_BROADCAST flag). And must now pass a flags value of ZEBRA_IFA_PEER to connected_add_ipv4 when a peer address is assigned. The same new logic is used with the IPv6 code as well (and we pass the new flags argument to connected_add_ipv6). (if_get_addr) Do not bother to check IFF_POINTOPOINT: just issue the SIOCGIFDSTADDR ioctl and see if we get back a peer address not matching the local address (and set the ZEBRA_IFA_PEER in that case). If there's no peer address, try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set. * if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl without bothering to check the IFF_POINTOPOINT flag. And if no peer address was found, just try the SIOCGLIFBRDADDR ioctl without checking the IFF_BROADCAST flag. Call connected_add_ipv4 and connected_add_ipv6 with appropriate flags. * if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to connected_add_ipv6. * kernel_socket.c: (ifam_read) Must pass new flags argument to connected_add_ipv6. * rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2 to determine local and possible peer address (so there's no longer a test for IFF_POINTOPOINT). Set ZEBRA_IFA_PEER flag appropriately. Pass new flags argument to connected_add_ipv6. (netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast to determine whether the connected destination address is a broadcast address. * bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete) Simplify logic by using new CONNECTED_PREFIX macro. * ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix, ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX macro. * ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX macro, both options collapse into the same code. * ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new CONNECTED_ID macro. (ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX macro. * ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro instead of testing the IFF_POINTOPOINT flag. * ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro instead of testing with if_is_pointopoint. And add commented-out code to implement alternative (in my opinion) more elegant behavior that has no special-case treatment for PtP addresses. (ospf_network_run) Use new CONNECTED_ID macro to simplify logic. * rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID macro to simplify logic. (rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does not give a useful result if prefixlen is 32 (we require a peer address in such cases). * ripd.c: (rip_update_interface) Fix same bug as above.
* [daemon startup] Add --dry-run/-C argument to daemons, to check config file ↵Paul Jakma2006-10-151-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [ripd] bug #293: routemap set metric doesn't check for underflow correctlyPaul Jakma2006-09-112-1/+4
| | | | | | | | 2006-09-11 Paul Jakma <paul.jakma@sun.com> * rip_routemap.c: (route_set_metric) underflow check needs to use signed, problem identified and diagnosed by Pavel Nikiforov in bug #293.
* [ripd] bug #278: remove gratuitous use of mid-function declarationPaul Jakma2006-09-112-2/+8
| | | | | | | 2006-09-11 Paul Jakma <paul.jakma@sun.com> * ripd.c: (rip_read) remove gratuitous use of mid-function declaration of vrecv, bug #278.
* [ripd] update to use auto-generated redistribute route-type defsPaul Jakma2006-06-302-56/+30
| | | | | | | 2006-06-29 Paul Jakma <paul.jakma@sun.com> * rip_zebra: (general) convert redistribute commands to use the auto-generated defines.
* [ripd] bugs #261, #262: Fix RIPv1 info-leak and unauthenticated route updatesPaul Jakma2006-05-043-108/+131
| | | | | | | | | | | | | | | | | | 2006-05-04 Paul Jakma <paul.jakma@sun.com> * (general) Fixes for bugs #261 and 262. Thanks to Konstantin V. Gavrilenko <kos@arhont.com> for the problem reports, testing of a series of proposed patches and comment on the proposed changes in behaviour. * rip_interface.c: (ip_rip_authentication_mode_cmd) Parse all of the command before making any changes to configured state. * ripd.c: (rip_read) RIP version control should be absolute and always apply, fixes bug #261 by allowing RIPv1 to be disabled. Fix bug #262: If authentication is enabled, then unauthenticated packets should not be accepted. We do however make an exception for RIPv1 REQUEST packets, to which we will reply as RIPv1 can now be disabled fully, to allow ripd to still provide routing /information/ to simple devices.
* [ripd] Fix logic to send updates on all connected addresses.Andrew J. Schorr2006-04-282-31/+28
| | | | | | | | | | | | | 2006-04-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu> * ripd.c: (rip_update_process) Try to fix the logic for sending an updated on each connected network. The new code will attempt to send the update on each connected network, whereas the previous code seemed to be attempting to avoid sending more than one RIPv1 update on a given interface, but was coded incorrectly. The actual effect of the old code was to send an update only on the first connected address in the cases where the interface is not multicast, or RIPv2 is not being used.
* ripd.c: correct bug that allowed route learnt through RIP to take precedence ↵vincent2006-01-302-1/+8
| | | | over connected routes
* [compiler] miscellaneous trivial compiler warning fixespaul2006-01-192-1/+5
| | | | | | | | | | | | | 2006-01-19 Paul Jakma <paul.jakma@sun.com> * (general) various miscellaneous compiler warning fixes. Remove redundant break statements from switch clauses which return. return from main, not exit, cause it annoys SOS. Remove stray semi-colons which cause empty-statement warnings. * zebra/main.c: (sighup) remove private declaration of external function.
* [ripd] Fix verification of received MD5 authenticated packetspaul2006-01-172-23/+33
| | | | | | | | | | | | | | | | | | 2006-01-17 Paul Jakma <paul.jakma@sun.com> * ripd.c: (rip_auth_md5) remove pdigest, not needed. Use a local buffer for the auth_str, where it can be properly nul padded. Do so, hence fixing MD5 authentication. Key looked up via key ring should be used in preference to the RIPv1 simple password, not other way around. No need to copy around digests, we can reference them directly. The auth_len received can't be trusted, some implementations lie (e.g. older ripd). (rip_auth_md5_ah_write) rename len local variable to doff to be consistent with other functions. (rip_auth_header_write) add the missing return. (rip_auth_md5_set) use the proper constructs to access stream.
* 2005-10-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs2005-10-304-56/+11
| | | | | | | | | * ripd.c: (rip_response_process) Instead of calling rip_interface.c:if_valid_neighbor(), call the equivalent library function if_lookup_address(). * rip_interface.c: (if_valid_neighbor) Remove function, since it is essentially equivalent to the if_lookup_address() library function. * ripd.h: (if_valid_neighbor) Remove function declaration.
* 2005-10-28 Paul Jakma <paul.jakma@sun.com>paul2005-10-282-1/+6
| | | | | * Makefile.am: Add rip_interface.h, or else it doesn't get included in dists.
* 2005-10-26 Paul Jakma <paul.jakma@sun.com>paul2005-10-252-6/+8
| | | | | * ripd.c: Update couple more functions to specify void explicitely.
* 2005-10-26 Paul Jakma <paul.jakma@sun.com>paul2005-10-2512-233/+267
| | | | | | * (general) static/extern functions and definitions. * rip_interface.h: new file, export the public functions from rip_interface.c
* 2005-10-17 Vincent Jardin <vincent.jardin@6wind.com>jardin2005-10-192-0/+8
| | | | | | * ripd.c: rip_create_socket() for each packet, it does not bind to the proper interfaces because we forget to use the from address when it is specified.
* 2005-10-06 Alain Ritoux <alain.ritoux@6wind.com>vincent2005-10-062-1/+24
| | | | | | * rip_interface.c: Now the command "no ip rip split-horizon poisoned-reverse" just inhibates the poisoned-reverse effects but keep spli-horizon activ.
* 2005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs2005-10-013-30/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * zebra.h: Declare new functions zebra_route_string() and zebra_route_char(). * log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New functions to map zebra route numbers to strings. * zebra_vty.c: (route_type_str) Remove obsolete function: use new library function zebra_route_string() instead. Note that there are a few differences: for IPv6 routes, we now get "ripng" and "ospf6" instead of the old behavior ("rip" and "ospf"). (route_type_char) Remove obsolete function: ues new library function zebra_route_char() instead. Note that there is one difference: the old function returned 'S' for a ZEBRA_ROUTE_SYSTEM route, whereas the new one returns 'X'. (vty_show_ip_route_detail,vty_show_ipv6_route_detail) Replace route_type_str() with zebra_route_string(). (vty_show_ip_route,vty_show_ipv6_route) Replace route_type_char() with zebra_route_char(). * bgp_vty.c: (bgp_config_write_redistribute) Use new library function zebra_route_string instead of a local hard-coded table. * ospf6_asbr.c: Remove local hard-coded tables zroute_name and zroute_abname. Change the ZROUTE_NAME macro to use new library function zebra_route_string(). Remove the ZROUTE_ABNAME macro. (ospf6_asbr_external_route_show): Replace ZROUTE_ABNAME() with a call to zebra_route_char(), and be sure to fix the format string, since we now have a char instead of a char *. * ospf6_zebra.c: Remove local hard-coded tables zebra_route_name and zebra_route_abname. Note that the zebra_route_name[] table contained mixed-case strings, whereas the zebra_route_string() function returns lower-case strings. (ospf6_zebra_read_ipv6): Change debug message to use new library function zebra_route_string() instead of zebra_route_name[]. (show_zebra): Use new library function zebra_route_string() instead of zebra_route_name[]. * ospf_dump.c: Remove local hard-coded table ospf_redistributed_proto. (ospf_redist_string) New function implemented using new library function zebra_route_string(). Note that there are a few differences in the output that will result: the new function returns strings that are lower-case, whereas the old table was mixed case. Also, the old table mapped ZEBRA_ROUTE_OSPF6 to "OSPFv3", whereas the new function returns "ospf6". * ospfd.h: Remove extern struct message ospf_redistributed_proto[], and add extern const char *ospf_redist_string(u_int route_type) instead. * ospf_asbr.c: (ospf_external_info_add) In two messages, use ospf_redist_string instead of LOOKUP(ospf_redistributed_proto). * ospf_vty.c: Remove local hard-coded table distribute_str. (config_write_ospf_redistribute,config_write_ospf_distribute): Use new library function zebra_route_string() instead of distribute_str[]. * ospf_zebra.c: (ospf_redistribute_set,ospf_redistribute_unset, ospf_redistribute_default_set,ospf_redistribute_check) In debug messages, use ospf_redist_string() instead of LOOKUP(ospf_redistributed_proto). * rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded table str[]. Replace str[] with calls to new library function zebra_route_string(). * ripd.c: Remove local hard-coded table route_info[]. (show_ip_rip) Replace uses of str[] with calls to new library functions zebra_route_char and zebra_route_string. * ripng_zebra.c: (ripng_redistribute_write) Remove local hard-coded table str[]. Replace str[i] with new library function zebra_route_string(i). * ripngd.c: Remove local hard-coded table route_info[]. (show_ipv6_ripng) Use new library function zebra_route_char() instead of table route_info[].