summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-04-03[doc] document version zserv header, add txt figures, make pdf figs nicerPaul Jakma
2006-03-31 Paul Jakma <paul.jakma@sun.com> * 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.
2006-03-30Sync rebuild of cvs_headPaul Jakma
2006-03-30[lib] command.c exports host global, add it to header.Paul Jakma
2006-03-14 Paul Jakma <paul.jakma@sun.com> * 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
2006-03-30[lib] Trivial: fix line lengths of a comment in workqueu.cPaul Jakma
2006-03-30 Paul Jakma <paul.jakma@sun.com> * workqueue.c: (work_queue_run) fix line length of comment
2006-03-30[lib] Mark most arguments in DEFUN_CMD_FUNC_TEXT as potentially unusedPaul Jakma
2006-03-30 Paul Jakma <paul.jakma@sun.com> * command.h: (DEFUN_CMD_FUNC_TEXT) Annotate arguments as potentially being unused.
2006-03-30[bgpd] Fix infinite loop in community_str2comPaul Jakma
2006-03-30 Paul Jakma <paul.jakma@sun.com> * 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.
2006-03-30[TODO] Note MED functionality we should implementPaul Jakma
2006-03-30 Paul Jakma <paul.jakma@sun.com> * TODO: Add reminder for useful MED functionality we should implement.
2006-03-30[ospfd] Fix failure of Fletcher checksum with certain compilersPaul Jakma
2006-03-27 Paul Jakma <paul.jakma@sun.com> * 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 <dimss@telecentrs.lv>.
2006-03-30[lib] fix gensub call in memtypes.awk to pass "g", not g.Paul Jakma
2006-03-27 Paul Jakma <paul.jakma@sun.com> * memtypes.awk: Fix gensub call, g should be a string..
2006-03-30[lib] status field/flags no longer used in struct workqueuePaul Jakma
2006-03-25 Paul Jakma <paul.jakma@sun.com> * workqueue.h: (struct work_queue) Remove status field and state flag, no longer used.
2006-03-30[ospfd] ignore loopbacks for received interface validationPaul Jakma
2006-03-25 Paul Jakma <paul.jakma@sun.com> * 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 <landonf@opendarwin.org>. However, ospf_read() still can't deal deterministically with multiple interfaces in same subnet.
2006-03-30[ospfd] Fix incorrect byte-order conversion of OSPF_MAX_SEQUENCE_NUMBERPaul Jakma
2006-03-23 Steve Lawson <steve.lawson@aheadcomusa.com> * ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order conversion of OSPF_MAX_SEQUENCE_NUMBER
2006-03-30[bgpd] release peer specific clear queue in peer_freePaul Jakma
2006-03-22 Paul Jakma <paul.jakma@sun.com> * bgpd.c: (peer_free) release the per-peer workqueue when freeing the peer.
2006-03-30[bgpd] trivial: use a distinct memtype for struct bgp_synchronizePaul Jakma
2006-03-19 Paul Jakma <paul.jakma@sun.com> * memtypes.c: Add MTYPE_BGP_SYNCHRONISE. * bgp_advertise.c: Use a distinct memory type for struct bgp_synchronize.
2006-03-30[bgpd] Add 'show bgp memory' for stats on fixed-size allocations in bgpdPaul Jakma
2006-03-19 Paul Jakma <paul.jakma@sun.com> * 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.
2006-03-30[bgpd] Include header dependency in bgp_nexthop.hPaul Jakma
2006-03-19 Paul Jakma <paul.jakma@sun.com> * bgp_nexthop.h: Include if.h as a dependent header, for struct connected.
2006-03-30[lib] fix libtool version argument in Makefile.amPaul Jakma
2006-03-16 Paul Jakma <paul.jakma@sun.com> * Makefile.am: Fix -version-info argument.
2006-03-30[lib/memory] Add mallinfo supportPaul Jakma
2006-02-15 Paul Jakma <paul.jakma@sun.com> * 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.
2006-03-30[solaris] revert previous update of manifest install pathPaul Jakma
2006-03-16 Paul Jakma <paul.jakma@sun.com> * prototype.smf.in: Oops, continue to install manifest to var/svc/manifest/network for now. * Changelog: fix lack of trailing newline
2006-03-30[tests] fix heavy-wq, add redundant AS_SET test and statics to aspath_testPaul Jakma
2006-03-16 Paul Jakma <paul.jakma@sun.com> * 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
2006-03-30[solaris] SMF manifest, method and depend updates.Paul Jakma
2006-03-13 Alan Maguire <alan.maguire@sun.com> * 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 <paul.jakma@sun.com> * 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.
2006-03-30[zebra] arrange structs in padding-efficient manner and remove unused fieldPaul Jakma
2006-02-09 Paul Jakma <paul.jakma@sun.com> * rib.h: (struct {rib,nexthop}) Rearrange fields to avoid needless padding. (struct rib) Remove the indirect pointer, not used anywhere!
2006-03-30[lib/privs] Changing user IDs should be done before dropping privilegesPaul Jakma
2006-03-14 Paul Jakma <paul.jakma@sun.com> * 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.
2006-03-30[bgpd] rearrange some structs for less padding, stats for table/attrs.Paul Jakma
2006-03-12 Paul Jakma <paul.jakma@sun.com> * 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.
2006-03-06[lib] export show_address_cmd debug command in if.hPaul Jakma
2006-03-06 Paul Jakma <paul.jakma@sun.com> * if.h: export show_address_cmd, for anyone who wishes to use it.
2006-03-06[bgpd] Start off FSM again once clearing finishes.Paul Jakma
2006-03-03 Paul Jakma <paul.jakma@sun.com> * bgp_route.c: (bgp_clear_node_complete) Doh. When clearing is complete we need to kick off FSM again.
2006-03-06[bgpd] Start off FSM again once clearing finishes.Paul Jakma
2006-03-03 Paul Jakma <paul.jakma@sun.com> * bgp_route.c: (bgp_clear_node_complete) Doh. When clearing is complete we need to kick off FSM again.
2006-02-21[lib/sockunion] trivial: use XSTRDUP.Paul Jakma
2006-02-21 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-21[lib/sockunion] trivial: use XSTRDUP.Paul Jakma
2006-02-21 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-21[bgpd] Add Clrng description to bgp summary state.Paul Jakma
2006-02-21 Paul Jakma <paul.jakma@sun.com> * bgp_vty.c: (bgp_show_summary) Add a 'Clrng' sub-description to state of peer while it's suppressed due to clearing.
2006-02-21[bgpd] Add Clrng description to bgp summary state.Paul Jakma
2006-02-21 Paul Jakma <paul.jakma@sun.com> * bgp_vty.c: (bgp_show_summary) Add a 'Clrng' sub-description to state of peer while it's suppressed due to clearing.
2006-02-21[bgpd] Record afi/safi in bgp_table. Serialise peer clear with FSM.Paul Jakma
2006-02-21 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-21[bgpd] Record afi/safi in bgp_table. Serialise peer clear with FSM.Paul Jakma
2006-02-21 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-19[solaris] version depend files, auto-generate. Start zebra when needed.Paul Jakma
2006-02-19 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-19[doc] Credit Jeroen Simonetti for contributing snmptrap.texiPaul Jakma
2006-02-19 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-18[bgpd] trivial readability fixPaul Jakma
2006-02-18 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-18[bug #89] Fix leak of community when set community is usedPaul Jakma
2006-02-18 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-05[bgpd] trivial fix for gcc warningpaul
2006-02-05 Paul Jakma <paul.jakma@sun.com> * bgp_aspath.c: (aspath_gettoken) fix gcc warning about possible uninitialised usage.
2006-02-05[bgpd] Fix peer prefix counts and make it slightly more robustpaul
2006-02-05 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-02[lib/workqueue] remove the useless 'delay' factor.paul
2006-02-02 Paul Jakma <paul.jakma@sun.com> * 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.
2006-02-02[zebra] Display flags on their line in 'show interface'.paul
2006-02-02 Paul Jakma <paul.jakma@sun.com> * interface.c: (if_dump_vty) move flags to their line, neater.
2006-01-31[build system] cleanup --enable-snmp by removing ucd-snmp cruftpaul
2006-01-31 Paul Jakma <paul.jakma@sun.com> * 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).
2006-01-30ripd.c: correct bug that allowed route learnt through RIP to take precedence ↵vincent
over connected routes
2006-01-30[zebra] Fix pauls zebra_rib/rib_process commit mistakes, again.paul
2006-01-30 Paul Jakma <paul.jakma@sun.com> * 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. ;)
2006-01-25[zebra] Fix incorrect changes made in RIB metric selection patchpaul
2006-01-25 Gunnar Stigen <gunnar.stigen@axxessit.no> * zebra_rib.c: (rib_process) Application of Gunnar's earlier metric selection RIB change included incorrect tidy-ups made by commiter. Fix. (NB: any errors here are again due to paul).
2006-01-25[zebra/solaris] Interface state fixups for Solaris.paul
2006-01-25 Paul Jakma <paul.jakma@sun.com> * (general) More solaris PF_ROUTE hacks. The IFF_UP mangling for solaris was incomplete on the PF_ROUTE side. fix it. This changeset generally uglifies things. For some future work I'd like to see the state changes seperated out from the details of the code. Differences between systems might then be slightly easier to implement without convoluted hacks. Changes should be specific to Solaris mostly, however also tested on FreeBSD 6. * if_ioctl_solaris.c: (interface_list_ioctl) ignore ~IFF_UP interfaces, we'll hear about them when/if interface goes up through NEWADDR. Update flags explicitely at end of it to kick mangling. * ioctl_solaris.c: (if_mangle_up) removed to interface.c, in kind. (lifreq_set_name) more convenient to take the string, than the ifp. (if_get_flags_direct) new convenience function, returns the actual flags. Used during bootstrap in if_ioctl_solaris.c to peek at flags of logical interfaces to see whether or not to ignore them. (if_get_flags) ENXIO means it's gone, poke out IFF_UP and kick flags update. (if_{un,}set_flags) flags argument should be 64bit. * ioctl.{c,h}: flags argument should be 64bit. * interface.h: Add a 'primary_state' flag to struct zebra_if on SUNOS_5. Export if_flags_update. * interface.c: (if_flags_mangle) moved over in kind from ioctl_solaris.c. Nasty kludge to try get IFF_UP right, as much as is possible. Also keep track of the actual IFF_UP value for the primary interface, so we can know when the ifp must be deleted. (if_flags_update) Take a new interface flags value, apply it to the interface, and take whatever actions are required due to flag transitions. (if_refresh) flag state change logic is moved out to previous. Just call if_get_flags, which will end up using previous to effect the update of flags. (if_flag_dump_vty) IFF_IPV{4,6} aren't interesting, VIRTUAL and NOXMIT are though. * kernel_socket.c: (ifm_read) Down->Down transitions shouldn't create ifp, for non-IFANNOUNCE systems. Use if_flags_update to update flags. flag transition logic is now handled automatically through if_flags_update. (ifam_read) Better to call if_refresh *after* adding connected addresses, as connected count affects IFF_UP on IFF_UP-mangled systems. On Solaris, Up->Down due to DELADDR means we need to delete the ifp - the IFINFO might already have been and gone. * rt.h: include other dependent headers.
2006-01-19[cvs] update cvsignore file.paul
2006-01-19[version] bump configure.ac version number to 0.99.3paul
2006-01-19 Paul Jakma <paul.jakma@sun.com> * configure.ac: Bump to 0.99.3 * doc/quagga.info: update auto-built file.
2006-01-19[lib/stream] small compile fix, use uint64_t, not u_int64_t.paul
2006-01-19 Paul Jakma <paul.jakma@sun.com> * stream.c: (stream_getq_from) should use POSIX uint64_t not u_int64_t. Latter is neither a traditional BSD type, nor a POSIX type.
2006-01-19[compiler] miscellaneous trivial compiler warning fixespaul
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.