---------------------
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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * quagga.xml.in: Change the naming of services and instances.
         network/routing/quagga:<daemon> 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>.
         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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>.

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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * (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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * (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 <[email protected]>

       * (general) Fixes for bugs #261 and 262. Thanks to
         Konstantin V. Gavrilenko <[email protected]> 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 <[email protected]>

       * 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 <[email protected]>

       * (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 <[email protected]>

       * 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 <[email protected]>

       * 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 <[email protected]>

       * ripng_routemap.c: (route_set_ipv6_nexthop_local_compile) bug
         #242, s/in_addr/in6_addr to fix crash.
         Thanks to [email protected].

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 <[email protected]>

       * 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 <[email protected]>

       * main.texi: --log_mode does not exist, remove, bug #245.

Members:
       doc/ChangeLog:INITIAL->1.58
       doc/main.texi:1.3->1.4