summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-09-102005-09-06 Paul Jakma <paul@dishone.st>paul
* aspath_test.c: Test bgp_aspath functionality. * Makefile.am: build aspathtest * ChangeLog: Fix date of previous commit
2005-09-102005-09-10 Paul Jakma <paul.jakma@sun.com>paul
* Makefile.am: bgpd shouldn't list libgp's sources as its own. Use LDADD. * bgp_aspath.h: (struct assegment) New struct, abstract representation of a list of AS_PATH segments and the contained ASNs. (struct aspath) Remove the raw-data related fields, reference the abstract struct assegment instead. Remove several other computed fields, it's just a headache to maintain them and they're cheap to compute from struct assegment. (aspath_parse) parse a stream, not a pointer to raw data. (aspath_count_{hops,confeds,size}) helpers to access information formerly directly contained in struct aspath. (aspath_snmp_pathseg) Helper for SNMP, BGP MIB wants to be able to output hex representation of raw data. * bgp_aspath.c: (general) partial-rewrite. Store aspath data as an abstract singly-linked list of abstract segments, rather than storing the raw data, and parsing it each and every time. Remove several count/size fields which are cheap to compute from the abstract segment structure. (global) Include stream.h, needed for aspath_parse, and others. Couple of helper macros added. (struct assegment_header) Just the header, and only the header. (assegment_data_{new,free}) convenience functions for AS_SEG_DATA allocation, the dynamic, per-segment array of ASNs. (assegment_{new,free,free_all,dup,dup_all}) convenience functions for creating struct assegments. The _all forms will follow the entire chain of segments from the given segment. (assegment_prepend_asns) new function, prepend an ASN N times to segment. (assegment_append_asns) Append a list (array) of ASNs to segment. (int_cmp) convenience function for the aspath hash. (assegment_normalise) new function. Normalise the given segment chain to meet expectations of Quagga, and to eliminate differing raw representations of the same paths. Merge 'runs' of SEQUENCEs into one segment as our internal segment is not limited by the protocol AS_PATH segment length. Sort ASNs in SETs. (aspath_new) Take void argument to quell warnings. Use the assegment convenience functions. (assegment_count_{asns,confeds,hops}) new functions to compute at runtime values previously held in struct aspath. (aspath_size) ditto. (aspath_make_str_count) rewritten to stringify new representation, and to be slightly easier to understand hopefully. (aspath_str_update) convenience function, update the aspath str. Should investigate removing maintained string from struct aspath, just run-time compute it, as per other fields. It's just a maintenance headache, would save noticeable amount of RAM with possibly not much extra run-time cost. (aspath_dup) use the assegment dup functions. (aspath_hash_alloc) Take void * argument to satisfy gcc. Use the proper helper functions to dup data. (assegments_parse) new function. parse raw AS_PATH data into struct assegments. Normalise and return the head of the list. (aspath_parse) Parse a stream, not pointer to raw data and use assegments_parse to do it. (assegment_data_put) Write out a single segment data in protocol form to stream. (assegment_header_put) ditto but for segment header. (aspath_put) new function. As per previous but for an entire struct aspath. (aspath_snmp_pathseg) wrapper around aspath_put for bgp_snmp.c. Uses a static buffer sadly. (aspath_aggregate_as_set_add) rewritten to use assegments. (aspath_aggregate) ditto (aspath_{firstas,loop,private_as}_check) ditto (aspath_{merge,prepend,add_one_as}) ditto (aspath_cmp_left{_confed}) ditto (aspath_delete_confed_seq) ditto, plus fixed to properly delete all leading confed segments. (aspath_as_add) Just use assegment_append_asns. (aspath_segment_add) updated to use assegments. (enum as_token) Add values for confeds (aspath_gettoken) Add support for confeds (aspath_str2aspath) ditto (aspath_key_make) updated to use as_segments. Also, add segment type into the hash value as appropriate. (aspath_cmp) updated to use as_segments. (aspath_print) don't segfault on NULL argument. * bgp_attr.c: (bgp_attr_aspath) aspath_parse wants the stream now. No need for manual forwarding of stream. (bgp_packet_attribute) empty aspath is now denoted by NULL segment field, length is gone. Use aspath_size() to determine size. (bgp_attr_init) Fix declaration, explicitely specify void arg. (bgp_dump_routes_attr) Use aspath_size() to determine size. * bgp_route.c: (bgp_info_cmp) use the aspath_count_* functions. (bgp_rib_withdraw) remove unused variable. Use aspath_count_hops. * bgp_snmp.c: (bgp4PathAttrTable) raw data is gone, use aspath_snmp_pathseg to get the representation.
2005-09-092005-09-10 Paul Jakma <paul.jakma@sun.com>paul
* bgp_vty.c: (bgp_vty_init) gcc 4 compile fix. static function declarations shouldn't be inside functions. * bgp_dump.c: (bgp_dump_interval_add) ditto.
2005-09-08* Thu Sep 12 2005 Paul Jakma <paul@dishone.st>paul
- Steal some changes from Fedora spec file: - Add with_rtadv variable - Test for groups/users with getent before group/user adding - Readline need not be an explicit prerequisite - install-info delete should be postun, not preun
2005-09-062004-09-06 Paul Jakma <paul@dishone.st>paul
* test-buffer.c: include memory.h (main) call memory_init().
2005-09-052004-09-05 Paul Jakma <paul@dishone.st>paul
* heavy-wq.c: (slow_func_del,slow_func_err) make them take void * argument to shut up silly gcc warning.
2005-09-052005-09-05 Paul Jakma <paul.jakma@sun.com>paul
* command.c: (install_element) be more robust. Eg, cmd_init need not have been called, some applications may use other library subsystems, which call install_element, without the application wanting commands and hence not calling cmd_init.
2005-09-04 * *.c: Try to be less verbose by default (without any debug optionshasso
on). * isis_lsp.c (lsp_build_nonpseudo): Use stream_reset() instead of touching endp directly. * isis_lsp.c (lsp_build_pseudo): Ditto.
2005-09-03 * isis_lsp.c: Yet another regression introduced by stream cleanup.hasso
Similar fix to the one commited to lsp_build_nonpseudo() some days ago.
2005-09-02 * isis_lsp.c: Less TLV leaking.hasso
2005-09-01 * random.c, spgrid.[ch]: Fix warnings with hope that I didn't brokehasso
anything. These floats to longs and vice versa casts are starnge indeed. * isis_pdu.c: As we don't use %z for size_t for now because we support older compilers, cast them to unsigned long. Also fix previous changelog entry. Isisd compiles cleanly now again.
2005-09-01 * isis_adjacency.c, isis_lsp.c, isisd.c: Replace XMALLOC && memsethasso
with XCALLOC. * isis_lsp.c (lsp_build_pseudo): Fix adding ES neighbour. * isis_tlv.c: More compact free_tlvs() function. * isis_lsp.c (lsp_build_nonpseudo) : Try to fix one more regression introduced by stream cleanup. Seek enp to the right place before starting to fill stream with TLVs.
2005-08-27 * ripng_zebra.c, ripngd.[ch]: Pass metric info to the zebra daemon.hasso
Forwardport from stable branch.
2005-08-27 * zebra_rib.c, rib.h: Add distance and metric arguments to thehasso
rib_add_ipv6() function so that IPv6 routes in RIB can have correct metric. No IPv6 routing daemon uses distance yet though. * zserv.c, connected.c, kernel_socket.c, rt_netlink.c, rtread_proc.c,zserv.c: Pass metric and distance info to the rib_add_ipv6(). Forwardport from stable branch.
2005-08-26 * bgp_route.c: Third (?) attempt to fix best selection breakagehasso
introduced long time ago with route server patch. Hopefully it's last case to fix - route-server client not in peer group. [backport candidate]
2005-08-252005-08-25 Paul Jakma <paul@jakma.org>paul
* configure.ac: Add -fno-omit-frame-pointer after -Os in default cflags, just to be sure. Fedora's readline library does not itself link to termcap, hence we must pass the result of termcap tests in via OTHER-LIBRARIES argument, otherwise the test of main in readline will fail due to missing termcap systems. On systems like Debian, -ltermcap is not needed for the readline test, because libreadline already links to it.
2005-08-25 * configure.ac, vtysh/Makefile.am: Only vtysh needs to be linkedhasso
against libreadline and friends.
2005-08-222005-08-22 Hugo Santos <hsantos@av.it.pt>paul
* vtysh.c: Add support for BGP_IPV6M_NODE
2005-08-222005-08-22 Hugo Santos <hsantos@av.it.pt>paul
* bgp_vty.c: (general) Add support for BGP IPv6 Multicast SAFI commands and BGP_IPV6M_NODE.
2005-08-222005-08-22 Hugo Santos <hsantos@av.it.pt>paul
* command.h: (enum node_type) Add BGP_IPV6M_NODE * command.c: (node_parent) Handle BGP_IPV6M_NODE node (config_exit, config_end) ditto * vty.c: (vty_end_config) Handle BGP_IPV6M_NODE node
2005-08-222005-08-22 Paul Jakma <paul.jakma@sun.com>paul
* bgp_route.h: (struct bgp_info) add a new flag, BGP_INFO_REMOVED. BGP_INFO_VALID is already overloaded, don't care to do same thing to STALE or HISTORY. * bgpd.h: (BGP_INFO_HOLDDOWN) Add INFO_REMOVED to the macro, as a route which should generally be ignored. * bgp_route.c: (bgp_info_delete) Just set the REMOVE flag, rather than doing actual work, so that bgp_process (called directly, or indirectly via the scanner) can catch withdrawn routes. (bgp_info_reap) Actually remove the route, what bgp_info_delete used to do, only for use by bgp_process. (bgp_best_selection) reap any REMOVED routes, other than the old selected route. (bgp_process_rsclient) reap the old-selected route, if appropriate (bgp_process_main) ditto (bgp_rib_withdraw, bgp_rib_remove) make them more consistent with each other. Don't play games with the VALID flag, bgp_process is async now, so it didn't make a difference anyway. Remove the 'force' argument from bgp_rib_withdraw, withdraw+force is equivalent to bgp_rib_remove. Update all its callers. (bgp_update_rsclient) bgp_rib_withdraw and force set is same as bgp_rib_remove. (route_vty_short_status_out) new helper to print the leading route-status string used in many command outputs. Consolidate. (route_vty_out, route_vty_out_tag, damp_route_vty_out, flap_route_vty_out) use route_vty_short_status_out rather than duplicate. (route_vty_out_detail) print state of REMOVED flag. (BGP_SHOW_SCODE_HEADER) update for Removed flag.
2005-08-21 * ospf_vty.c: Make "show ip ospf neighbor xxx" commands work.hasso
Interface should be specified by name now. [backport candidate]
2005-08-17 * ospf_vty.c: Check carefully if interface exists before trying tohasso
print info about it. Fixes bugzilla #213. [backport candidate]
2005-08-16 * isis_misc.[ch]: Fix some warnings, making some strings const.hasso
2005-08-162005-08-16 Paul Jakma <paul.jakma@sun.com>paul
* README.txt: point to the opensolaris.org sources for the SMF manifest class scripts. Make step 3 slightly more explicit about what 'this directory' is.
2005-08-162005-08-16 Paul Jakma <paul.jakma@sun.com>paul
* ripd.c: (general) Fix previous commit, broke multicast bind and hence setting of source port, which broke communication with non-borken ripd. Fix removes more stuff from rip_interface.c than it adds to ripd.c ;) (rip_create_socket) the to argument really is a from argument, rename it. Set the source port to RIP port unconditionally, it's required. (rip_send_packet) Set from address correctly for multicast. (rip_output_process) trivial: num can be BSS specified, rather than in body. * rip_interface.c: (rip_interface_multicast_set) strip out redundant stuff related to bind, which rip_create_socket does. Just make it set the multicast socket option, as per the interface concerned, no more.
2005-08-132005-08-13 Paul Jakma <paul@jakma.org>paul
* Makefile.am: (EXTRA_DIST) Add the trailing slash back in which greg left out - tools bits weren't being included in dist, which broke rpm builds :).
2005-08-102005-08-09 Paul Jakma <paul.jakma@sun.com>paul
* ospf6_asbr.c: (ospf6_asbr_redistribute_add) Fix sense of testing of route_map_apply return code, it can return many things other than RMAP_MATCH which do not indicate DENY. Should test explicitly for equality to RMAP_DENYMATCH instead. [backport candidate]
2005-08-10add INSTALL.quagga.txt to the distribution, so that people who applygdt
patches and lose because of old autoconf/automake versions have the opportunity to find tout what to do.
2005-08-10 * topology/spgrid.c: MAXLONG is deprecated, use LONG_MAX instead.hasso
values.h, where MAXLONG is defined, is deprecated as well. Thanks to Greg for noticing and to Rivo for fix.
2005-08-10reworkgdt
clarify make (BSD make not working is a bug, and GNU make not working is a really serious bug) declare POSIX.2 as a semi-requirement, with notion that workarounds for non-posix must be clean. list OS versions for which not working is a bug. add instructions for using info and emacs/info, and remove admonition to use pinfo add note about GNU awk (really needed? BSD awk) Note that NetBSD 2.99.15 has texinfo 4.7
2005-08-102005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com>gdt
* getopt.h: Don't declare getopt (rather than getopt_long), since quagga doesn't need it. * getopt.c (getopt): Don't define getopt. Fixes build breakage on NetBSD, and seems likely to work on most platforms since it avoids the entire issue of system getopt declarations and whether they conform to POSIX.2. Note that this change doesn't address system getopt_long declarations, but also doesn't change anything about getopt_long.
2005-08-05 * ospf_zebra.c: Don't assert/stop before type == ZEBRA_ROUTE_MAX ifhasso
dealing with routemaps. There is ospf->route_map[ZEBRA_ROUTE_MAX] for default-information. Fixes bugzilla #208. [backport candidate]
2005-08-03 * bgp_routemap.c: Revert part of leaking communities fix commited inhasso
2005-05-27. While ecommunity fix seems to be correct, community case isn't. Fixes bugzilla #209. [backport candidate]
2005-07-292005-07-29 Paul Jakma <paul.jakma@sun.com>paul
* interface.c: (if_delete_update) should always be available, not just on RTM_IFANNOUNCE/NETLINK systems. * kernel_socket.c: (ifan_read) only call if_delete_update when interface departs, dont if_delete, because we wish to retain interface configuration state even when interfaces are removed. (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning to down state is only chance we have to clean up interface in case it is deleted (eg Solaris down -> unplumb -> plumb up). * redistribute.c: (zebra_interface_delete_update) should always be available, we /will/ call it now on all systems, via if_delete_update. * zserv.c: (zsend_interface_delete) ditto (zsend_interface_address) Update the call-flow diagramme, to reflect that if_delete_update /is/ now called on all systems, potentially. * zserv.h: (zsend_interface_delete) unconditionally exported, as above.
2005-07-262005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* prefix.c: (prefix_ipv4_new, prefix_ipv6_new): Call prefix_new to allocate the memory to make sure that all struct prefix pointers point to objects of the same length (avoids memory overruns on struct prefix assignments). (prefix_ipv4_free, prefix_ipv6_free): Simply call prefix_free. It is interesting to note that these functions are never actually called anywhere in the code. Instead prefix_free was already being called directly, despite the previous MTYPE incompatibility. [backport candidate]
2005-07-262005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>ajs
* prefix.c: (ip_masklen) While loop should test that 'pnt' pointer is in range before dereferencing it. [backport candidate]
2005-07-262005-07-26 Paul Jakma <paul.jakma@sun.com>paul
* ospf_abr.c: (ospf_abr_announce_network_to_area) SET_FLAG should be on lsa not old, which may be freed for one thing, obviously.
2005-07-122005-07-12 Paul Jakma <paul.jakma@sun.com>paul
* ospfd.h: add OSPF_ABR_DEFAULT for convenience, make OSPF_ABR_CISCO be the default ABR type. * ospfd.c: (ospf_new) initialise abr_type to OSPF_ABR_DEFAULT * ospf_vty.c: (no_ospf_abr_type_cmd) add standard as a negatable abr_type. default abr_type should be OSPF_ABR_DEFAULT. (ospf_config_write) test whether default abr_type against OSPF_ABR_DEFAULT, rather than any specific ABR_TYPE.
2005-07-12- Fix ChangeLog entry to properly refer to problem being Linux/ARM, notpaul
ARM in general.
2005-07-122005-07-12 Christian Hammers <ch@debian.org>paul
* vtysh_user.c: rename struct user to struct vtysh_user to avoid clashes with sys/user.h on ARM.
2005-06-30 * configure.ac: Actually test whether libc has IPv6 support.hasso
[backport candidate]
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* kernel_socket.c: (RTA_{ADDR,ATTR}_GET) fix mistake, NULL check should be on DEST argument
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* (global) Extern and static'ification, with related fixups of declarations, ensuring files include their own headers, etc. if_ioctl.c: (interface_info_ioctl) fix obvious arg mis-order in list loop
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* (global) The great bgpd extern and static'ification. * bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison warnings. * bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these used by various files which had their own private declarations, in the case of mplsvpn - incorrect.
2005-06-282005-06-28 Paul Jakma <paul.jakma@sun.com>paul
* INSTALL.quagga.txt: GNU make is required now, because of manual automatic rules in solaris/Makefile.am. (If someone knows how to do these in a better way..). GNU AWK is required for CVS checkout builds.
2005-06-24 * ospf6_abr.[ch], ospf6_area.[ch]: Add area filter-list (in|out)hasso
support and area import and export lists support.
2005-06-24 * ospf6_message.c: Changed to be insensitive to changes of neighbors'hasso
IP source address in the OSPF packets. It was sometimes problematic in actual operation (needed some operational cost: restarting all-neighbor routers when I/F NIC was changed). Due to this change, a previously safe case, attaching multiple interface to the same link will now be dengerous and will not work. Remedy to that should be applied later. [port from GNU Zebra]
2005-06-24 * ospf6_interface.c: fix the way inactivity_timer is called. Becausehasso
inactivity_timer() deletes the neighbor from the neighbor_list, it cannot be called by thread_execute() from inner side of the neighbor_list for-loop. (Although crash was already fixed in Quagga, it's better follow the GNU Zebra logic). [port from GNU Zebra]
2005-06-242005-06-24 Pawel Worach <pawel.worach@gmail.com>paul
* getopt.h: add further tests for full getopt declaration on various systems.