| Age | Commit message (Collapse) | Author | 
|---|
|  | * sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},
          functions to change byte order between system IP_HDRINCL order
          and host order. | 
|  |  | 
|  | adding FIXME's. | 
|  |  | 
|  |  | 
|  |  | 
|  | * zebra.h: Add WANT_OSPF_WRITE_FRAGMENT for ospfd
	  to try to fragment oversized packets. Enabled only for Linux.
	  Add HAVE_IP_HDRINCL_BSD_ORDER to define struct ip byte order,
	  to consolidate various ad-hoc platform defines for same thing. | 
|  |  | 
|  |  | 
|  | * sockopt.c: Add missing bracket | 
|  | * ripngd/ripngd.c: move setsockopt_so_recvbuf to lib.
        * lib/sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.
        * ripd/ripd.c: set receive buffer to a decent size, some systems
          have low defaults. Problem noted and fix suggested by Stephan
          Schweizer in [zebra 20967]. | 
|  | * configure.ac: capitalise the package name. autoconf lowercases
          it for PACKAGE_TARNAME.
        * lib/command.c: Update the copyright string in the default motd. | 
|  | (at Technical University of Madrid as part of Euro6ix Project)
        Enhanced Route Server functionality and Route-Maps:
        * bgpd/bgpd.h: Modified 'struct peer' and 'struct bgp_filter' to
        support rs-clients. A 'struct bgp_table *rib' has been added to the
        first (to mantain a separated RIB for each rs-client) and two new
        route-maps have been added to the last (for import/export policies).
        Added the following #defines: RMAP_{IN|OUT|IMPORT|EXPORT|MAX},
        PEER_RMAP_TYPE_{IMPORT|EXPORT} and BGP_CLEAR_SOFT_RSCLIENT.
        * bgpd/bgpd.c: Modified the functions that create/delete/etc peers in
        order to consider the new fields included in 'struct peer' for
        supporting rs-clients, i.e. the import/export route-maps and the
        'struct bgp_table'.
        * bgpd/bgp_route.{ch}: Modified several functions related with
        receiving/sending announces in order to support the new Route Server
        capabilities.
        Function 'bgp_process' has been reorganized, creating an auxiliar
        function for best path selection ('bgp_best_selection').
        Modified 'bgp_show' and 'bgp_show_route' for displaying information
        about any RIB (and not only the main bgp RIB).
        Added commands for displaying information about RS-clients RIBs:
        'show bgp rsclient (A.B.C.D|X:X::X:X)', 'show bgp rsclient
        (A.B.C.D|X:X::X:X) X:X::X:X/M', etc
        * bgpd/bgp_table.{ch}: The structure 'struct bgp_table' now has two
        new fields: type (which can take the values BGP_TABLE_{MAIN|RSCLIENT})
        and 'void *owner' which points to 'struct bgp' or 'struct peer' which
        owns the table.
        When creating a new bgp_table by default 'type=BGP_TABLE_MAIN' is set.
        * bgpd/bgp_vty.c: The commands 'neighbor ... route-server-client' and
        'no neighbor ... route-server-client' now not only set/unset the flag
        PEER_FLAG_RSERVER_CLIENT, but they create/destroy the 'struct
        bgp_table' of the peer. Special actions are taken for peer_groups.
        Command 'neighbor ... route-map WORD (in|out)' now also supports two
        new kinds of route-map: 'import' and 'export'.
        Added commands 'clear bgp * rsclient', etc. These commands allow a new
        kind of soft_reconfig which affects only the RIB of the specified
        RS-client.
        Added commands 'show bgp rsclient summary', etc which display a
        summary of the rs-clients configured for the corresponding address
        family.
        * bgpd/bgp_routemap.c: A new match statement is available,
        'match peer (A.B.C.D|X:X::X:X)'. This statement can only be used in
        import/export route-maps, and it matches when the peer who announces
        (when used in an import route-map) or is going to receive (when used
        in an export route-map) the route is the same than the one specified
        in the statement.
        For peer-groups the statement matches if the specified peer is member
        of the peer-group.
        A special version of the command, 'match peer local', matches with
        routes originated by the Route Server (defined with 'network ...',
        redistributed routes and default-originate).
        * lib/routemap.{ch}: Added a new clause 'call NAME' for use in
        route-maps. It jumps into the specified route-map and when it returns
        the first route-map ends if the called RM returns DENY_MATCH, or
        continues in other case. | 
|  | support of more significant changes not in this commit.  The last item
in the ChangeLog below may be needed for p2mp to work correctly.
2004-08-31  David Wiggins  <dwiggins@bbn.com>
	* hash.c (hash_iterate): Save next pointer before calling
	procedure, so that iteration works even if the called procedure
	deletes the hash backet.
	* linklist.h (listtail): new macro, not yet used.
2004-08-31  David Wiggins  <dwiggins@bbn.com>
	* ospf_spf.c (ospf_spf_calculate): Many more comments and debug
	  print statements.  New function ospf_vertex_dump used in debugging.
2004-08-31  David Wiggins  <dwiggins@bbn.com>
	* ospf_spf.h (struct vertex): Comments for flags and structure members.
2004-08-31  David Wiggins  <dwiggins@bbn.com>
	* ospf_route.c: When finding an alternate route, log cost as well.
2004-08-31  David Wiggins  <dwiggins@bbn.com>
	* ospf_interface.c (ospf_lookup_if_params): Initialize af in
	struct prefix allocated on stack.
2004-08-31  David Wiggins  <dwiggins@bbn.com>
	* ospf_packet.c (ospf_ls_ack_send_delayed): In p2mp mode, send
	acks to AllSPFRouters, rather than All-DR. | 
|  |  | 
|  | Thanks to Hasso for code review. | 
|  | * sockopt.h: Define method-independent macro for callers of
	get_ifindex to use for cmsg length. | 
|  | * zebra.h: add MAX and MIN defines (eg for ospf6d) | 
|  | 2004-08-19 Paul Jakma <paul@dishone.st>
        * sockopt.c: include sockopt.h
          rename some of the _pktinfo_ functions to _ifindex, where that is
          their purpose.
          (getsockopt_ipv6_pktinfo_ifindex) renamed to
          getsockopt_ipv6_ifindex.
          (setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex
          (setsockopt_pktinfo) update with previous and add comment re
          AF_INET portability.
          (setsockopt_ifindex) generic ifindex function ala
          setsockopt_pktinfo.
          (getsockopt_ipv4_pktinfo_ifindex) renamed to
          getsockopt_ipv4_ifindex.
          (getsockopt_ipv4_ifindex) rejiggling to reduce repeated
          ifdef/elses. pktinfo case forgot to set ifindex.
          (getsockopt_pktinfo_ifindex) renamed to
          getsockopt_ifindex. update some calls to renamed functions.
        * sockopt.h: Update renamed exported functions
          Rename the CMSG_SIZE macros to IFINDEX.
          Guard IPv4 PKTINFO in a conditional define. | 
|  | * vty.c: (vty_serv_un) set unix vty socket to nonblocking
          to prevent inadvertent blocking of daemons by use of
          vtysh. TODO: disentangle manual paging from the buffer_write
          path so that unix vty can use this path too and be reliable. | 
|  | 2004-07-23  Greg Troxel  <gdt@poblano.ir.bbn.com>
	* */Makefile.am: Use ../dir/libfoo.la, rather than "-L../dir
	-lfoo", to avoid linking against installed libraries from a
	previous version.
	* {lib,ospfd,ospfclient}/Makefile.am: explicitly define the shared
	library version number to be 0.0
	* configure.ac: remove spurious , so extract.pl is chmod'd +x.
	* HACKING: explain shared library versioning rules | 
|  | * sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile
	on NetBSD, and add comments to make it less confusing.  Change the
	sense of the SUNOS_5 test to make parallel structure between the
	variables and the code. | 
|  | * sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for
          sizeof pktinfo as appropriate, to be used when allocating msg
          buffers. export setsockopt_pktinfo() and
          getsockopt_pktinfo_ifindex()
        * sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably
          set received ifindex sock option.
          (getsockopt_pktinfo_ifindex) portably retrieve ifindex.
          (getsockopt_cmsg_data) retrieve indicated control info from
          message header.
          (getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.
          (setsockopt_ipv4_pktinfo) v4 version
          (setsockopt_pktinfo) the exported version
          (getsockopt_ipv4_pktinfo_ifindex) v4 specific version
          (getsockopt_pktinfo_ifindex) the exported version | 
|  | * sigevent.c: (quagga_signal_handler) add a global caught flag, set
          the flags to a constant rather increment to be kinder.
          (quagga_sigevent_process) new function, to do core of what
          quagga_signal_timer did. dont block signals at all as sig->caught
          is volatile sig_atomic_t and should be safe to access from signal
          and normal contexts. The signal blocking is unneeded paranoia, but
          is left intact under an ifdef, should some platform require it.
          Check global caught flag before iterating through array.
          (quagga_signal_timer) nearly everything moved to
          quagga_sigevent_process. Left in under ifdef, in case some
          platform could use a regular timer check for signals.
        * sigevent.h: quagga_sigevent_process declaration.
        * thread.c: (thread_fetch) check for signals at beginning of
          scheduler loop, check for signals if select returns EINTR. | 
|  | * if.c: (if_cmp_func) Add comment suggested by Greg Troxel. | 
|  | * sigevent.c: Don't block SIGTRAP and SIGKILL.  Blocking SIGTRAP
	confuses gdb, at least on NetBSD 2.0_BETA, where the block
	succeeds. | 
|  | * jhash.{c,h}: New files. Bob Jenkins' public domain hashing
          function, as implemented in linux kernel by David Miller. | 
|  | * Merge Kunihiro's 'show route-map' change and add
          compatibility aliases for route-map continue | 
|  |  | 
|  |  | 
|  | * if.c: (if_cmp_func) fix for interface names where name is same,
          but one has no number, eg "devtyp" and "devtyp0". | 
|  | libzebra and libospfapiclient are now built shared, and linked shared
with the daemons.  This reduces the memory needed when running
multiple daemons; each daemon is at least 150k smaller.  Static
libraries are still built, and libtool should use them on platforms
which don't have shared libaries.  As with autoconf, the user of a
distribution does not need libtool; one just needs that to build from
CVS.
libospf.a is still a non-shared library, and still installed, not
because that makese sense, but because I don't understand why it is
the way it is now.
Note that the tree was tagged 'libtool-before' just before this commit. | 
|  | * ChangeLog: fix my last update config.h -> zebra.h ;)
        * zebra.h: Fix gcc check. | 
|  | to read system one. | 
|  |  | 
|  | * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast
          to u_char. (ipv6_access_list_remark_cmd) ditto.
          if.c: ditto
        * network.c: (readn/writen) pointer arg should be type u_char.
        * plist.c: needs to include stream.h, not declare stream functions
          internally.
          (various) Add static qualifier to internal functions.
          (prefix_list_type_str) extraneous breaks in switch statement.
          (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast
        * stream.h: depends on plist.h and export stream_put_prefix
        * vty.c: (vty_<telnet option build functions>) should use
          unsigned char, telnet options are 0 -> 255.
        * zclient.c: various u_char<->char type cleanups.
        * zebra.h: Having to define CMSG_* can apply to more than just
          BSDI_NRL.
        * ripd.c: (rip_distribute_update_all) distribute list hook
          function pointer prototype requires struct prefix_list * arg.
          (rip_distribute_update_all_wrapper) update to pass required arg,
          NULL. | 
|  | * config.h: __attribute__ is a gcc'ism | 
|  |  | 
|  | * type mismatch fixes | 
|  |  | 
|  | * bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
         (bgp_interface_address_delete) ditto.
         (bgp_zebra_announce) ditto.
         (bgp_zebra_withdraw) ditto.
       * isis_zebra.c: Sync with zclient changes.
       * zclient.c (zapi_ipv4_route) Follow Sowmini's lead and describe
         message format.
       * ospf6_zebra.c: Sync to zclient changes
       * ospf_zebra.c: Sync with lib/zclient changes
       * rip_zebra.c: sync with zclient changes.
       * rip_interface.c: ditto.
       * ripng_{interface,zebra}.c: sync with zclient changes
2004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
       * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route
         (zapi_ipv4_delete) ditto.
         (zapi_ipv4_route) add/delete a route by way of cmd arg.
         (zapi_ipv6_add) collapsed into zapi_ipv6_route.
         (zapi_ipv6_delete) ditto.
         (zapi_ipv6_route) add/delete a route by way of cmd arg.
         (zebra_interface_address_delete_read) collapsed into
         zebra_interface_address_read.
         (zebra_interface_address_delete_read) ditto.
         (zebra_interface_address_read) read address add/delete messages
         by way of type argument. Describe command message format.
         (zebra_interface_add_read) Unconditionally read new ifmtu6 field.
         Describe command message format.
         (zebra_interface_state_read) Unconditionally read new ifmtu6 field.
         (zclient_redistribute_set) Collapsed into zclient_redistribute
         (zclient_redistribute_unset) ditto
         (zclient_redistribute) set/unset redistribution.
         (zclient_redistribute_default_set) Collapsed into
         zclient_redistribute_default.
         (zclient_redistribute_default_unset) ditto.
         (zclient_redistribute_default) Redistribute default set/unset.
       * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add
         zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add
         zclient_redistribute. Ditto for
         zclient_redistribute_default_{set/unset}. | 
|  | * command.c: (sockunion_getsockname) use socklen_t for len.
          (sockunion_getpeername) ditto. | 
|  | * if.h: Add mtu6 field to struct interface, IPv6 MTU may differ
          from IPv4, and Solaris treats the MTU's differently.
          Add connected_add_by_prefix, for use by later patch.
        * if.c: (connected_add_by_prefix) Add prefix to connected list.
          (if_flag_dump) Solaris: Dump IFF_IPv4/6 flag
          (if_dump) Dump mtu6 flag, for HAVE_IPV6. | 
|  | * daemon.c: (daemon) fix check for error return from setsid | 
|  | * (many) reference <lib/version.h> rather than "version.h",
	because version.h is a generated file and not present in the
	source tree when using objdir builds.
(committed by gdt)
works fine with normal builds; didn't try objdir | 
|  | from vtysh ([quagga-dev 932]). | 
|  | change - just notes to others). | 
|  | * tests/test-sig.c: New file, regression test for sigevents.
        * lib/Makefile.am: add sigevent.{c,h}
        * (isis|rip|ripng|ospf|ospf6|bgp)d/\1_main.c: modify for sigevents.
        * zebra/main.c: ditto. | 
|  | * sigevent.{c,h}: New files, implement event handled signals.
          see signal_init() in sigevent.h. | 
|  | address/netmask pairs, and clarify the two comparison functions. |