--------------------- PatchSet 1531 Date: 2006/01/30 14:08:51 Author: paul Branch: HEAD Tag: (none) Log: [zebra] Fix pauls zebra_rib/rib_process commit mistakes, again. 2006-01-30 Paul Jakma * zebra_rib.c: (rib_process) Fourth time lucky on this jinxed commit, last commit had a hole that could allow connected route selection to escape beyond the connected route logic. This time I cross-checked with Gunnar first. ;) Members: zebra/ChangeLog:1.122->1.123 zebra/zebra_rib.c:1.28->1.29 --------------------- PatchSet 1532 Date: 2006/01/30 18:12:42 Author: vincent Branch: HEAD Tag: (none) Log: ripd.c: correct bug that allowed route learnt through RIP to take precedence over connected routes Members: ripd/ChangeLog:1.56->1.57 ripd/ripd.c:1.54->1.55 --------------------- PatchSet 1533 Date: 2006/01/31 10:09:27 Author: paul Branch: HEAD Tag: (none) Log: [build system] cleanup --enable-snmp by removing ucd-snmp cruft 2006-01-31 Paul Jakma * configure.ac: Cleanup the hideous {net,ucd}-snmp section by removing ucd-snmp. Hence fixing detection where net-snmp is installed in /usr/local (Boris Kovalenko reported the problem). Members: ChangeLog:1.140->1.141 configure.ac:1.117->1.118 --------------------- PatchSet 1534 Date: 2006/02/02 17:27:13 Author: paul Branch: HEAD Tag: (none) Log: [zebra] Display flags on their line in 'show interface'. 2006-02-02 Paul Jakma * interface.c: (if_dump_vty) move flags to their line, neater. Members: zebra/ChangeLog:1.123->1.124 zebra/interface.c:1.31->1.32 --------------------- PatchSet 1535 Date: 2006/02/02 17:50:19 Author: paul Branch: HEAD Tag: (none) Log: [lib/workqueue] remove the useless 'delay' factor. 2006-02-02 Paul Jakma * workqueue.h: (struct work_queue) Remove the delay field. It served no purpose and just introduced bad behaviour. Should be excised before its allowed to escape into 1.0. This removes need for the 'flood' and runs_since_clear fields. * workqueue.c: (general) excise delay factor between queue runs, hence the 'flood' crap too.. See above. * bgp_route.c: (bgp_{clear_node,process}_queue_init) delay field is removed from workqueue spec. Members: bgpd/ChangeLog:1.82->1.83 bgpd/bgp_route.c:1.38->1.39 lib/ChangeLog:1.236->1.237 lib/workqueue.c:1.6->1.7 lib/workqueue.h:1.6->1.7 --------------------- PatchSet 1536 Date: 2006/02/05 17:51:19 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Fix peer prefix counts and make it slightly more robust 2006-02-05 Paul Jakma * bgp_route.h: Add BGP_INFO_COUNTED to track whether prefix has been counted or not. * bgp_route.c: (bgp_pcount_{inc,dec}rement) new helpers, to centralise inc/dec of prefix-count, (bgp_rib_remove) Remove pcount decrement, use helper. (bgp_rib_withdraw) ditto, additionally use previous function too. (bgp_update_main) Use pcount helpers. (bgp_clear_route_node) ditto, aslo REMOVED routes don't need clearing. Members: bgpd/ChangeLog:1.83->1.84 bgpd/bgp_route.c:1.39->1.40 bgpd/bgp_route.h:1.11->1.12 --------------------- PatchSet 1537 Date: 2006/02/05 17:55:35 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] trivial fix for gcc warning 2006-02-05 Paul Jakma * bgp_aspath.c: (aspath_gettoken) fix gcc warning about possible uninitialised usage. Members: bgpd/ChangeLog:1.84->1.85 bgpd/bgp_aspath.c:1.11->1.12 --------------------- PatchSet 1538 Date: 2006/02/18 10:49:04 Author: paul Branch: HEAD Tag: (none) Log: [bug #89] Fix leak of community when set community is used 2006-02-18 Paul Jakma * bgp_routemap.c: (route_set_community) Quick, very hacky, fix for the set-community leak, bug #89. True fix will be to detangle the web of *_intern caching and provide saner object caching for Quagga, future work. Members: bgpd/ChangeLog:1.85->1.86 bgpd/bgp_routemap.c:1.20->1.21 --------------------- PatchSet 1539 Date: 2006/02/18 10:52:09 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] trivial readability fix 2006-02-18 Paul Jakma * bgp_route.c: (bgp_announce_check) trivial, move declaration of two local variables into the only block where they are used, to aid the reader. Members: bgpd/ChangeLog:1.86->1.87 bgpd/bgp_route.c:1.40->1.41 --------------------- PatchSet 1540 Date: 2006/02/19 07:16:25 Author: paul Branch: HEAD Tag: (none) Log: [doc] Credit Jeroen Simonetti for contributing snmptrap.texi 2006-02-19 Paul Jakma * quagga.info: update auto-built file. * ChangeLog: Fix old, existing entry for snmptrap.texi addition to credit the author, who got in touch with me. * snmptrap.texi: Add comment line with author's details. Members: doc/ChangeLog:1.54->1.55 doc/quagga.info:1.18->1.19 doc/snmptrap.texi:1.1->1.2 --------------------- PatchSet 1541 Date: 2006/02/19 18:59:26 Author: paul Branch: HEAD Tag: (none) Log: [solaris] version depend files, auto-generate. Start zebra when needed. 2006-02-19 Paul Jakma * depend.*: renamed to depend.*.in. * depend.*.in: Add version dependency. * Makefile.am: Generate depend.* from depend.*.in Distribute the depend.*.in files rather than the depend.* files. * quagga.init.in: Enable zebra if one of the link-state daemons is started. Restart method is not required - SMF handles that. * quagga.xml.in: Remove restart method details. Members: solaris/ChangeLog:1.13->1.14 solaris/Makefile.am:1.6->1.7 solaris/depend.daemons:1.1->1.2(DEAD) solaris/depend.daemons.in:INITIAL->1.1 solaris/depend.dev:1.1->1.2(DEAD) solaris/depend.dev.in:INITIAL->1.1 solaris/depend.doc:1.1->1.2(DEAD) solaris/depend.doc.in:INITIAL->1.1 solaris/depend.libs:1.1->1.2(DEAD) solaris/depend.libs.in:INITIAL->1.1 solaris/depend.smf:1.1->1.2(DEAD) solaris/depend.smf.in:INITIAL->1.1 solaris/quagga.init.in:1.4->1.5 solaris/quagga.xml.in:1.4->1.5 --------------------- PatchSet 1542 Date: 2006/02/21 01:09:01 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Record afi/safi in bgp_table. Serialise peer clear with FSM. 2006-02-21 Paul Jakma * bgpd.h: move the clear_node_queue to be peer specific. Add a new peer status flag, PEER_STATUS_CLEARING. * bgp_table.h: (struct bgp_table) Add fields to record afi, safi of the table. (bgp_table_init) Take afi and safi to create table for. * bgp_table.c: (bgp_table_init) record the afi and safi. * bgp_nexthop.c: Update all calls to bgp_table_init. * bgp_vty.c: ditto. * bgpd.c: ditto. * bgp_fsm.c: (bgp_timer_set) dont bring up a session which is clearing. * bgp_route.c: (general) Update all bgp_table_init calls. (bgp_process_{rsclient,main}) clear_node is serialised via PEER_STATUS_CLEARING and fsm now. (struct bgp_clear_node_queue) can be removed. struct bgp_node can be the queue item data directly, as struct peer can be kept in the new wq global user data and afi/safi can be retrieved via bgp_node -> bgp_table. (bgp_clear_route_node) fix to get peer via wq->spec.data, afi/safi via bgp_node->bgp_table. (bgp_clear_node_queue_del) no more item data to delete, only unlock the bgp_node. (bgp_clear_node_complete) only need to unset CLEARING flag and unlock struct peer. (bgp_clear_node_queue_init) queue attaches to struct peer now. record peer name as queue name. (bgp_clear_route_table) If queue transitions to active, serialise clearing by setting PEER_STATUS_CLEARING rather than plugging process queue, and lock peer while queue active. Update to pass only bgp_node as per-queue-item specific data. Members: bgpd/ChangeLog:1.87->1.88 bgpd/bgp_fsm.c:1.14->1.15 bgpd/bgp_nexthop.c:1.15->1.16 bgpd/bgp_route.c:1.41->1.42 bgpd/bgp_table.c:1.3->1.4 bgpd/bgp_table.h:1.5->1.6 bgpd/bgp_vty.c:1.29->1.30 bgpd/bgpd.c:1.29->1.30 bgpd/bgpd.h:1.25->1.26 --------------------- PatchSet 1543 Date: 2006/02/21 01:14:13 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Add Clrng description to bgp summary state. 2006-02-21 Paul Jakma * bgp_vty.c: (bgp_show_summary) Add a 'Clrng' sub-description to state of peer while it's suppressed due to clearing. Members: bgpd/ChangeLog:1.88->1.89 bgpd/bgp_vty.c:1.30->1.31 --------------------- PatchSet 1544 Date: 2006/02/21 01:37:14 Author: paul Branch: HEAD Tag: (none) Log: [lib/sockunion] trivial: use XSTRDUP. 2006-02-21 Paul Jakma * sockunion.c: (sockunion_{su2str,log}) Use XSTRDUP. Particularly with _su2str, as that string gets XFREEd, which can be annoying if run debug code in memory.c. Members: lib/ChangeLog:1.237->1.238 lib/sockunion.c:1.11->1.12 --------------------- PatchSet 1545 Date: 2006/03/06 18:06:53 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Start off FSM again once clearing finishes. 2006-03-03 Paul Jakma * bgp_route.c: (bgp_clear_node_complete) Doh. When clearing is complete we need to kick off FSM again. Members: bgpd/ChangeLog:1.89->1.90 bgpd/bgp_route.c:1.42->1.43 --------------------- PatchSet 1546 Date: 2006/03/06 18:18:37 Author: paul Branch: HEAD Tag: (none) Log: [lib] export show_address_cmd debug command in if.h 2006-03-06 Paul Jakma * if.h: export show_address_cmd, for anyone who wishes to use it. Members: lib/ChangeLog:1.238->1.239 lib/if.h:1.22->1.23 --------------------- PatchSet 1547 Date: 2006/03/30 14:20:48 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] rearrange some structs for less padding, stats for table/attrs. 2006-03-12 Paul Jakma * bgp_attr.h: (struct attr) rearrange fields to avoid wasted padding between them as much as possible. (attr_count,attr_unknown_count) export new functions to return number of counts of cached attributes. * bgp_attr.c: (attr_count,attr_unknown_count) new functions to return number of counts of cached attributes. * bgp_route.h: (struct bgp_info) rearrange fields to avoid wasted padding. * bgp_table.h: (struct bgp_table) Add a count field, of number of nodes in the table. (struct bgp_node) rearrange fields to avoid wasted padding between them, though I don't think there was any in this case. * bgp_table.c: (bgp_node_{delete,get}) Maintain the table node count. (bgp_table_count) new function to access the table count. Members: bgpd/ChangeLog:1.90->1.91 bgpd/bgp_attr.c:1.14->1.15 bgpd/bgp_attr.h:1.6->1.7 bgpd/bgp_route.h:1.12->1.13 bgpd/bgp_table.c:1.4->1.5 bgpd/bgp_table.h:1.6->1.7 --------------------- PatchSet 1548 Date: 2006/03/30 14:25:52 Author: paul Branch: HEAD Tag: (none) Log: [lib/privs] Changing user IDs should be done before dropping privileges 2006-03-14 Paul Jakma * privs.c: (zprivs_caps_init) Change user IDs before lowering privileges, while this seems to work on Linux, on Solaris it rightfully refuses due to PRIV_PROC_SETID having been dropped. Members: lib/ChangeLog:1.239->1.240 lib/privs.c:1.9->1.10 --------------------- PatchSet 1549 Date: 2006/03/30 14:32:09 Author: paul Branch: HEAD Tag: (none) Log: [zebra] arrange structs in padding-efficient manner and remove unused field 2006-02-09 Paul Jakma * rib.h: (struct {rib,nexthop}) Rearrange fields to avoid needless padding. (struct rib) Remove the indirect pointer, not used anywhere! Members: zebra/ChangeLog:1.124->1.125 zebra/rib.h:1.10->1.11 --------------------- PatchSet 1550 Date: 2006/03/30 14:38:28 Author: paul Branch: HEAD Tag: (none) Log: [solaris] SMF manifest, method and depend updates. 2006-03-13 Alan Maguire * quagga.xml.in: Change the naming of services and instances. network/routing/quagga: may be neat and tidy, but it's at odds with SMF convention elsewhere that demands the service be named for what it does, and the instance name describe the implementation (e.g. network/smtp:sendmail). Remove call to method script for 'stop', SMF can do that itself. Enumerate the privileges required in the SMF manifest, with the method_credential element. Dont try provide seperate properties for each argument, it's just tedious, particularly when they can no longer be inherited from a common quagga service - use a single "daemon-args" property, defaulting to -P 0. Specify authorisation for the 'routeadm' utility and for RBAC. 2006-03-13 Paul Jakma * quagga.init.in: Update to match SMF manifest changes. If run from an SMF environment, assume method is start. Offer a more tradition init script interface for pre-SMF. Enable zebra for the link-state daemons. Don't allow daemons to start in non-global zones, except for bgpd - it doesn't have to care about underlying networking much. Remove all the svcprop calls, SMF or the user will supply any arguments on the command-line. * depend.smf.in: Add dependency on SUNWroute, which provides routeadm, which provides /var/svc/manifest/network/routing * prototype.smf.in: Install manifest to var/svc/manifest/network/routing. Members: solaris/ChangeLog:1.14->1.15 solaris/depend.smf.in:1.1->1.2 solaris/prototype.smf.in:INITIAL->1.2 solaris/quagga.init.in:1.5->1.6 solaris/quagga.xml.in:1.5->1.6 --------------------- PatchSet 1551 Date: 2006/03/30 14:42:50 Author: paul Branch: HEAD Tag: (none) Log: [tests] fix heavy-wq, add redundant AS_SET test and statics to aspath_test 2006-03-16 Paul Jakma * heavy-wq.c: (heavy_wq_init) delay is gone from workqueue spec. * aspath_test.c: (test_segments) Add an AS_SET with redundant ASNs. ({empty_prepend,prepend,parse}_test) add static qualifiers Members: tests/ChangeLog:1.13->1.14 tests/aspath_test.c:1.4->1.5 tests/heavy-wq.c:1.2->1.3 --------------------- PatchSet 1552 Date: 2006/03/30 14:46:23 Author: paul Branch: HEAD Tag: (none) Log: [solaris] revert previous update of manifest install path 2006-03-16 Paul Jakma * prototype.smf.in: Oops, continue to install manifest to var/svc/manifest/network for now. * Changelog: fix lack of trailing newline Members: solaris/ChangeLog:1.15->1.16 solaris/prototype.smf.in:1.2->1.3 --------------------- PatchSet 1553 Date: 2006/03/30 14:53:59 Author: paul Branch: HEAD Tag: (none) Log: [lib/memory] Add mallinfo support 2006-02-15 Paul Jakma * configure.ac: Check for mallinfo, being careful to link test so we can detect things like umem being used (which doesn't provide a mallinfo). * lib/memory.c: (mtype_memstr) new helper function to return human friendly string for a byte count. (mtype_stats_alloc) new function, for users to retrieve number of objects allocated. (show_memory_mallinfo) New function, show mallinfo statistics if available. (show_memory_all_cmd) Call show_memory_mallinfo, if mallinfo is available. * lib/memory.h: Export mtype_memstr and mtype_stats_alloc. Provide a define for a reasonable buffer size for mtype_memstr. Members: ChangeLog:1.141->1.142 configure.ac:1.118->1.119 lib/ChangeLog:1.240->1.241 lib/memory.c:1.15->1.16 lib/memory.h:1.13->1.14 --------------------- PatchSet 1554 Date: 2006/03/30 14:58:05 Author: paul Branch: HEAD Tag: (none) Log: [lib] fix libtool version argument in Makefile.am 2006-03-16 Paul Jakma * Makefile.am: Fix -version-info argument. Members: lib/ChangeLog:1.241->1.242 lib/Makefile.am:1.25->1.26 --------------------- PatchSet 1555 Date: 2006/03/30 15:01:14 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Include header dependency in bgp_nexthop.h 2006-03-19 Paul Jakma * bgp_nexthop.h: Include if.h as a dependent header, for struct connected. Members: bgpd/ChangeLog:1.91->1.92 bgpd/bgp_nexthop.h:1.3->1.4 --------------------- PatchSet 1556 Date: 2006/03/30 15:05:23 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Add 'show bgp memory' for stats on fixed-size allocations in bgpd 2006-03-19 Paul Jakma * bgpd/bgp_vty.c: Add includes to get several structs we want to provide usage statistics on. (show_bgp_memory_cmd) Show memory usage stats for various notable fixed size objects. Using mtype_stats_alloc and mtype_memstr recently added to memory.c. (bgp_show_summary) Report some additional stats specific to the given BGP instance and/or AFI/SAFI such as table counts, peers, rsclients and peer-groups. (bgp_vty_init) Install show_bgp_memory_cmd. Members: bgpd/ChangeLog:1.92->1.93 bgpd/bgp_vty.c:1.31->1.32 --------------------- PatchSet 1557 Date: 2006/03/30 15:09:38 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] trivial: use a distinct memtype for struct bgp_synchronize 2006-03-19 Paul Jakma * memtypes.c: Add MTYPE_BGP_SYNCHRONISE. * bgp_advertise.c: Use a distinct memory type for struct bgp_synchronize. Members: bgpd/ChangeLog:1.93->1.94 bgpd/bgp_advertise.c:1.5->1.6 lib/ChangeLog:1.242->1.243 lib/memtypes.c:1.10->1.11 --------------------- PatchSet 1558 Date: 2006/03/30 15:12:38 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] release peer specific clear queue in peer_free 2006-03-22 Paul Jakma * bgpd.c: (peer_free) release the per-peer workqueue when freeing the peer. Members: bgpd/ChangeLog:1.94->1.95 bgpd/bgpd.c:1.30->1.31 --------------------- PatchSet 1559 Date: 2006/03/30 15:16:11 Author: paul Branch: HEAD Tag: (none) Log: [ospfd] Fix incorrect byte-order conversion of OSPF_MAX_SEQUENCE_NUMBER 2006-03-23 Steve Lawson * ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order conversion of OSPF_MAX_SEQUENCE_NUMBER Members: ospfd/ChangeLog:1.168->1.169 ospfd/ospf_lsa.c:1.42->1.43 --------------------- PatchSet 1560 Date: 2006/03/30 15:20:00 Author: paul Branch: HEAD Tag: (none) Log: [ospfd] ignore loopbacks for received interface validation 2006-03-25 Paul Jakma * ospf_interface.c: (ospf_if_lookup_recv_if) Ignore loopbacks, we can never ever receive packets on those. Should fix case where CARP is run with address in same subnet as real interface. Problem report and diagnosis thanks to: Landon Fuller . However, ospf_read() still can't deal deterministically with multiple interfaces in same subnet. Members: ospfd/ChangeLog:1.169->1.170 ospfd/ospf_interface.c:1.39->1.40 --------------------- PatchSet 1561 Date: 2006/03/30 15:25:24 Author: paul Branch: HEAD Tag: (none) Log: [lib] status field/flags no longer used in struct workqueue 2006-03-25 Paul Jakma * workqueue.h: (struct work_queue) Remove status field and state flag, no longer used. Members: lib/ChangeLog:1.243->1.244 lib/workqueue.h:1.7->1.8 --------------------- PatchSet 1562 Date: 2006/03/30 15:30:19 Author: paul Branch: HEAD Tag: (none) Log: [lib] fix gensub call in memtypes.awk to pass "g", not g. 2006-03-27 Paul Jakma * memtypes.awk: Fix gensub call, g should be a string.. Members: lib/ChangeLog:1.244->1.245 lib/memtypes.awk:1.3->1.4 --------------------- PatchSet 1563 Date: 2006/03/30 15:34:31 Author: paul Branch: HEAD Tag: (none) Log: [ospfd] Fix failure of Fletcher checksum with certain compilers 2006-03-27 Paul Jakma * ospf_lsa.c: (ospf_lsa_checksum) Add an explicit cast to avoid the ambiguities of ANSI and C99 C with respect to type conversion. Detailed problem report and test case with example data supplied by Dmitry Ivanov . Members: ospfd/ChangeLog:1.170->1.171 ospfd/ospf_lsa.c:1.43->1.44 --------------------- PatchSet 1564 Date: 2006/03/30 15:36:23 Author: paul Branch: HEAD Tag: (none) Log: [TODO] Note MED functionality we should implement 2006-03-30 Paul Jakma * TODO: Add reminder for useful MED functionality we should implement. Members: ChangeLog:1.142->1.143 TODO:1.6->1.7 --------------------- PatchSet 1565 Date: 2006/03/30 15:39:35 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Fix infinite loop in community_str2com 2006-03-30 Paul Jakma * bgp_community.c: (community_gettoken) Unknown token should return NULL, to give a strong indication to callers that the token no longer can be parsed, otherwise callers looping on this function may have a hard time ending their loop. (community_str2com) While loop around community_gettoken appears to have been coded thinking that break statement would break from the while{}, hence it could never exit for unknown token case. Fix it to do..while, so it can use the NULL result from community_gettoken easily. Members: bgpd/ChangeLog:1.95->1.96 bgpd/bgp_community.c:1.5->1.6 --------------------- PatchSet 1566 Date: 2006/03/30 15:43:17 Author: paul Branch: HEAD Tag: (none) Log: [lib] Mark most arguments in DEFUN_CMD_FUNC_TEXT as potentially unused 2006-03-30 Paul Jakma * command.h: (DEFUN_CMD_FUNC_TEXT) Annotate arguments as potentially being unused. Members: lib/ChangeLog:1.245->1.246 lib/command.h:1.21->1.22 --------------------- PatchSet 1567 Date: 2006/03/30 15:45:47 Author: paul Branch: HEAD Tag: (none) Log: [lib] Trivial: fix line lengths of a comment in workqueu.c 2006-03-30 Paul Jakma * workqueue.c: (work_queue_run) fix line length of comment Members: lib/ChangeLog:1.246->1.247 lib/workqueue.c:1.7->1.8 --------------------- PatchSet 1568 Date: 2006/03/30 16:00:30 Author: paul Branch: HEAD Tag: (none) Log: [lib] command.c exports host global, add it to header. 2006-03-14 Paul Jakma * privs.c: (zprivs_caps_init) Change user IDs before lowering privileges, while this seems to work on Linux, on Solaris it rightfully refuses due to PRIV_PROC_SETID having been dropped. * command.h: Add the struct host global exported from command.c Members: lib/ChangeLog:1.247->1.248 lib/command.h:1.22->1.23 --------------------- PatchSet 1580 Date: 2006/04/03 22:24:27 Author: paul Branch: HEAD Tag: (none) Log: [doc] document version zserv header, add txt figures, make pdf figs nicer 2006-03-31 Paul Jakma * fig*.txt: New files, txt versions of the diagrammes for the info file. * protocol.texi: Document the new version 1 header. * routeserver.texi: Explicitly specify scaling widths for the figures, only way to make them look reasonable, sadly. Try fix some formatting and explicitely note lists as being bulleted. * Makefile.am: convert seems to do png to pdf just fine. No need for intermediate eps. Add txt figure expansions and list as dependencies and EXTRA_DIST files. Members: doc/ChangeLog:1.55->1.56 doc/Makefile.am:1.16->1.17 doc/fig-normal-processing.txt:INITIAL->1.1 doc/fig-rs-processing.txt:INITIAL->1.1 doc/fig_topologies_full.txt:INITIAL->1.1 doc/fig_topologies_rs.txt:INITIAL->1.1 doc/protocol.texi:1.2->1.3 doc/routeserver.texi:1.3->1.4 --------------------- PatchSet 1581 Date: 2006/04/03 22:25:32 Author: paul Branch: HEAD Tag: (none) Log: [ospfd] Fix virtual-link handling in nbrs route-table, exposed by bug#234 fix 2006-04-03 Paul Jakma * (general) Fix issues with handling of Vlinks and entries in the nbrs route-table which were highlighted by the nsm/nbr_self fixes from bug #234. Many thanks to Juergen Kammer for his help and efforts in testing out debug patches to pinpoint the issue. * ospf_interface.c: (ospf_vl_new) Add nbr_self for Vlink. * ospf_neighbor.c: (ospf_nbr_key) new static function, helper to create key in nbrs table for a given nbr. (ospf_nbr_delete) Use ospf_nbr_key. Add an assert() to document an expected state. (ospf_nbr_add_self) Ditto. (ospf_nbr_lookup_by_addr) Add an assert. * ospf_nsm.c: (nsm_kill_nbr) Can never kill the nbr_self psuedo-neighbour. Members: ospfd/ChangeLog:INITIAL->1.172 ospfd/ospf_interface.c:INITIAL->1.41 ospfd/ospf_neighbor.c:INITIAL->1.10 ospfd/ospf_nsm.c:1.13->1.14 --------------------- PatchSet 1582 Date: 2006/04/03 22:27:20 Author: paul Branch: HEAD Tag: (none) Log: [solaris] Manifest referenced non-existent services, fix. 2006-04-03 Paul Jakma * quagga.xml.in: oops, ipvX-routing services don't exist yet in any Solaris builds. Members: solaris/ChangeLog:1.16->1.17 solaris/quagga.xml.in:1.6->1.7 --------------------- PatchSet 1583 Date: 2006/04/28 17:22:36 Author: ajs Branch: HEAD Tag: (none) Log: [ripd] Fix logic to send updates on all connected addresses. 2006-04-28 Andrew J. Schorr * 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. Members: ripd/ChangeLog:1.57->1.58 ripd/ripd.c:1.55->1.56 --------------------- PatchSet 1584 Date: 2006/05/04 08:32:57 Author: paul Branch: HEAD Tag: (none) Log: [ospfd] Fix SPF of virtual-links 2006-04-24 Paul Jakma * (general) More Virtual-link fixes, again with much help in testing / debug from Juergen Kammer. Primarily in SPF. * ospf_spf.h: Add guard. ospf_interface.h will include this header. * ospf_interface.h: Modify ospf_vl_lookup definition to take struct ospf as argument, so as to allow for NULL area argument. (struct ospf_vl_data) Remove out_oi, instead add a struct vertex_nexthop, to use as initial nexthop for backbone paths through a vlink. * ospf_interface.c: (ospf_vl_lookup) Modified to allow NULL area to be passed to indicate "any" (first) area. Add extra debug. (ospf_vl_set_params) vl_oi -> nexthop. Add extra debug. (ospf_vl_up_check) Fix debug, inet_ntoa returns a static buffer.. * ospf_route.c: (ospf_intra_add_router) Vlinks dont go through backbone, don't bother checking. * ospf_spf.c: (static struct list vertex_list) Record vertices that will need to be freed. (cmp) Order network before router vertices, as required, wasn't implemented. (vertex_nexthop_free) Mild additional robustness check. (vertex_parent_free) Take void argument, as this function is passed as list deconstructor for vertex parent list. (ospf_vertex_new) More debug. Set deconstructor for parent list. Track allocated vertices on the vertex_list. (ospf_vertex_free) Get rid of the tricky recursive cleanup of vertices. Now frees only the given vertex. (ospf_vertex_add_parent) Fix assert. (ospf_nexthop_calculation) Fix calculation of nexthop for VLink vertices, lookup the vl_data and use its previously recorded nexthop information. (ospf_spf_calculate) Vertices are freed simply by deleting vertex_list nodes and letting ospf_vertex_free as deconstructor work per-node. (ospf_spf_calculate_timer) Trivial optimisation, leave backbone SPF calculation till last to reduce SPF churn on VLink updates. * ospf_vty.c: (ospf_find_vl_data) update call to ospf_vl_lookup (no_ospf_area_vlink_cmd) ditto. (show_ip_ospf_interface_sub) For Vlinks, the peer address is more interesting than the output interface. Members: ospfd/ChangeLog:1.172->1.173 ospfd/ospf_interface.c:1.41->1.42 ospfd/ospf_interface.h:1.13->1.14 ospfd/ospf_route.c:1.15->1.16 ospfd/ospf_spf.c:1.24->1.25 ospfd/ospf_spf.h:1.7->1.8 ospfd/ospf_vty.c:INITIAL->1.51 --------------------- PatchSet 1585 Date: 2006/05/04 08:36:34 Author: paul Branch: HEAD Tag: (none) Log: [ripd] bugs #261, #262: Fix RIPv1 info-leak and unauthenticated route updates 2006-05-04 Paul Jakma * (general) Fixes for bugs #261 and 262. Thanks to Konstantin V. Gavrilenko 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. Members: ripd/ChangeLog:1.58->1.59 ripd/rip_interface.c:1.34->1.35 ripd/ripd.c:1.56->1.57 --------------------- PatchSet 1586 Date: 2006/05/04 08:37:37 Author: paul Branch: HEAD Tag: (none) Log: [docs] Update ripd docs on version and authentication, see bugs #261,#262 2006-05-04 Paul Jakma * ripd.texi: Add Version Control as a distinct section. Expand Version Control section with overview text, touching on insecurity of RIPv1 and referencing authentication section, cleanup text of various version commands. RIP Authentication: Add overview text, refer to RIPv1 version control, which is required to completely secure RIP. Members: doc/ChangeLog:1.56->1.57 doc/ripd.texi:1.6->1.7 --------------------- PatchSet 1587 Date: 2006/05/04 08:52:12 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] bug #210: Enable crucial VPNv4 code which was disabled 2006-05-04 Paul Jakma * (general) VPNv4 fixes. Certain VPNv4 code was not enabled. See bug #210. * bgp_attr.{c,h}: (bgp_packet_{withdraw,attribute}) Tag should be u_char really. * bgp_packet.c: (bgp_{update,withdraw}_packet) Enable some VPNv4 code which inexplicably was ifdef'd out. comments from a tester on IRC suggest this fixes bug #210. Members: bgpd/ChangeLog:INITIAL->1.97 bgpd/bgp_attr.c:1.15->1.16 bgpd/bgp_attr.h:1.7->1.8 bgpd/bgp_packet.c:1.23->1.24 --------------------- PatchSet 1588 Date: 2006/05/04 09:08:15 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Fix bug where FSM can stay hung forever in Idle/Clrng 2006-05-04 Paul Jakma * bgp_route.c: (general) Fix logical bug in clearing, noted by Chris Caputo in [quagga-users 6728] - clearing depended on at least one route being added to workqueue, in order for workqueue completion function to restart FSM. However, if no routes are cleared, then the completion function never is called, it needs to be called manually if the workqueue didn't get scheduled. Finally, clearing is per-peer-session, not per AFI/SAFI, so the FSM synchronisation should be in bgp_clear_route_table. (bgp_clear_route_table) Wrong place for FSM/clearing synchronisation, move to.. (bgp_clear_route) FSM/clearing synchronisation should be here. If no routes were cleared, no workqueue scheduled, call the completion func to ensure FSM kicks off again. Members: bgpd/ChangeLog:1.97->1.98 bgpd/bgp_route.c:1.43->1.44 --------------------- PatchSet 1596 Date: 2006/05/08 15:25:09 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] CID#62 fix double-free, use-after-free in community_str2com 2006-05-08 Paul Jakma * bgp_community.c: (community_str2com) Coverity CID#62, fix double-free, use-after-free. Members: bgpd/ChangeLog:1.98->1.99 bgpd/bgp_community.c:INITIAL->1.7 --------------------- PatchSet 1597 Date: 2006/05/08 15:32:07 Author: paul Branch: HEAD Tag: (none) Log: [ripngd] bug #242, fix crash in routemap, ipv6 stored in in_addr. 2006-05-08 Paul Jakma * ripng_routemap.c: (route_set_ipv6_nexthop_local_compile) bug #242, s/in_addr/in6_addr to fix crash. Thanks to jithinvachery+quagga@gmail.com. Members: ripngd/ChangeLog:1.28->1.29 ripngd/ripng_routemap.c:1.6->1.7 --------------------- PatchSet 1598 Date: 2006/05/08 15:37:17 Author: paul Branch: HEAD Tag: (none) Log: [bgpd] Bug #240, Fix route-server crash when static routes are configured 2006-05-08 Paul Jakma * bgp_route.c: (bgp_afi_node_get) given table should never be NULL, check/assert this. (bgp_static_update) Bug #240. Rsclients should only be passed the static update if they are configured for the afi,safi. Members: bgpd/ChangeLog:1.99->1.100 bgpd/bgp_route.c:1.44->1.45 --------------------- PatchSet 1599 Date: 2006/05/08 15:40:39 Author: paul Branch: HEAD Tag: (none) Log: [doc] bug #245, remove reference to non-existent log_mode argument 2006-05-08 Paul Jakma * main.texi: --log_mode does not exist, remove, bug #245. Members: doc/ChangeLog:INITIAL->1.58 doc/main.texi:1.3->1.4