paul [Sun, 9 May 2004 11:00:23 +0000 (11:00 +0000)]
2004-05-09 Paul Jakma <paul@dishone.st>
* ioctl.c: (if_get_mtu) set mtu6 to mtu
* mtu_kvm.c: (if_kvm_get_mtu) set mtu6 to mtu
* rt_netlink.c: (netlink_interface) set mtu6 to mtu
(netlink_link_change) ditto
* interface.c: (if_delete_update) only used with HAVE_NETLINK
and RTM_IFANNOUNCE.
(if_flag_dump_vty) Solaris IFF_IPV4 and IFF_IPV6 if flags
(if_dump_vty) print mtu6 if not same as mtu
paul [Sun, 9 May 2004 09:09:59 +0000 (09:09 +0000)]
2004-05-09 Paul Jakma <paul@dishone.st>
* zserv.c: (zsend_route_multipath) Set the nexthop_num
field correctly. Add NEXTHOP_TYPE_IPV6_IFNAME for v6.
Conditionally set ZAPI_MESSAGE_METRIC flag - only for adds.
(zsend_ipv4_add) cruft, deleted.
(zsend_ipv4_delete) ditto.
(zsend_ipv6_add) ditto.
(zsend_ipv6_delete) 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.
paul [Wed, 5 May 2004 15:27:15 +0000 (15:27 +0000)]
2004-05-05 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_associate_packet_vl) cleanup, move
some of the checks up to ospf_read, return either a
virtual link oi, or NULL.
(ospf_read) Cleanup, make it responsible for checks. Remove
the nbr lookup - moved to ospf_neighbor. Adjust all nbr
lookups to use new wrappers exported by ospf_neighbor.
* ospf_neighbor.h: Add ospf_neigbour_get and ospf_nbr_lookup.
* ospf_neighbor.c: (ospf_neigbour_get) Index ospf_interface
neighbour table by router-id for virtual-link ospf_interfaces,
not by peer_addr (which breaks for asymmetric vlinks)
(ospf_nbr_lookup) add a wrapper for nbr lookups to deal with
above.
paul [Mon, 3 May 2004 13:25:06 +0000 (13:25 +0000)]
2004-05-03 Daniel Roesen <dr@cluenet.de>
* bgp_fsm.c: (bgp_stop) Reset uptime only on transition from
Established so that it reflects true downtime (rather time
since last transition, eg Active->Idle)
paul [Thu, 8 Apr 2004 07:43:45 +0000 (07:43 +0000)]
2004-04-08 Paul Jakma <paul@dishone.st>
* ospf_spf.h: Add backlink field to struct vertex
* ospf_spf.h: (ospf_vertex_new) initialise backlink
(ospf_lsa_has_link) return index of link back to
vertex V from candidate vertex W, or -1 if no link exists.
(ospf_spf_next) save backlink index for candidate vertex
* ospf_interface.c: (ospf_vl_set_params) Use the backlink index
to determine correct address for virtual-link peers. Fall back
to older "pick first link" method if no backlink index exists.
gdt [Tue, 30 Mar 2004 13:45:58 +0000 (13:45 +0000)]
Require automake 1.7 or higher. Fixes problem reported by Gilad
Arnold where Gentoo Linux tries to be too smart and chooses automake
1.5, which doesn't set @PACKAGE@, leading to include files being in
$(prefix)/include rther then $(prefix)/include/quagga.
(Since our makefiles rely on @PACKAGE@, they should have required an
automake new enough to set it.)
gdt [Tue, 16 Mar 2004 14:38:36 +0000 (14:38 +0000)]
2004-03-16 David Young <dyoung@pobox.com>
* (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
paul [Tue, 17 Feb 2004 20:07:30 +0000 (20:07 +0000)]
2004-02-17 Paul Jakma <paul@dishone.st>
* ospf_zebra.c: (ospf_interface_delete) Do not delete the interface
params, nor the interface structure, if an interface delete
message is received from zebra.
* ospf_interface.c: (ospf_if_delete_hook) Delete the interface
params and interface, ie that which was previously removed in
(ospf_interface_delete) above.
paul [Tue, 17 Feb 2004 19:45:10 +0000 (19:45 +0000)]
2004-02-17 Paul Jakma <paul@dishone.st>
* bgpd.h: (bgp_peer) add fd_local and fd_accept
file descriptor's, fd becomes a pointer to one of these.
* bgpd.c: (global) adjust for fact that fd is now a pointer.
(peer_create_accept) removed.
* bgp_route.c: (global) adjust for change of peer fd to pointer
* bgp_packet.c: (bgp_collision_detect) adjust and remove the
"replace with other peer" hack.
* bgp_network.c: (bgp_accept) Remove the dummy peer hack.
Update peer->fd_accept instead.
(global) Adjust fd references - now a pointer.
* bgp_fsm.c: (global) adjust peer fd to pointer.
(bgp_connection_stop) new function, to stop connection.
(global) adjust everything which closed peer fd to use
bgp_connection_stop().
hasso [Wed, 11 Feb 2004 21:52:13 +0000 (21:52 +0000)]
Don't crash when attempting to read path->oi->ifp if oi doesn't exist any
more. I'm not sure if this read should be attempted at all, but I'm trying
to keep code safe AND stable.
paul [Fri, 23 Jan 2004 15:31:42 +0000 (15:31 +0000)]
2004-01-23 sowmini.varadhan@sun.com
* rip_interface.c: obsolete unbind code in
rip_interface_multicast_set, and instead do the more portable
(though slower) method of creating a socket for each outgoing packet
and binding the source address on the new socket.
* rip_interface.c, ripd.c, ripd.h: Modify rip_request_send so that
source address is determined by the caller of rip_request_send for
ripv1 packets and non-multicast interfaces (rip_request_send loops
over all connected address in all other cases).
* rip_send_packet: don't send packets with source set to
ZEBRA_IFA_SECONDARY connected addresses; improved debug messages;
paul [Mon, 19 Jan 2004 21:31:15 +0000 (21:31 +0000)]
2004-01-19 Paul Jakma <paul@dishone.st>
* 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.
paul [Fri, 9 Jan 2004 16:34:54 +0000 (16:34 +0000)]
2004-01-09 Paul Jakma <paul@dishone.st>
* HACKING: slight changes to make consistent with devel.php on web
site. remove 'not yet consensus' as lack of any disagreement can
be interpreted that file does reflect such.
paul [Fri, 9 Jan 2004 16:30:52 +0000 (16:30 +0000)]
2004-01-08 Paul Jakma <paul@dishone.st>
* Makefile.am: as per gdt, specify the redhat dir as a DIST_SUBDIR,
remove the redhat/... dist targets - instead these now go in..
redhat/Makefile.am: (new) proper place to describe redhat/ dist
files, as well as allow quagga.spec to be regenerated properly.
redhat/quagga.sysconfig: specify conf file location.
redhat/quagga.spec.in: Add 2 patches to RPM build.
gdt [Thu, 8 Jan 2004 15:44:29 +0000 (15:44 +0000)]
2004-01-08 Greg Troxel <gdt@fnord.ir.bbn.com>
* kernel_socket.c (kernel_read): Use sockaddr_storage in buffer
for reading kernel messages to ensure enough space (necessary on
Solaris due to sockaddr_dl being large). Thanks to Sowmini
Varadhan for help with this change.
gdt [Tue, 6 Jan 2004 01:13:05 +0000 (01:13 +0000)]
2004-01-05 Greg Troxel <gdt@fnord.ir.bbn.com>
* kernel_socket.c (ifm_read): Major cleanup. Use Sowmini's code
to find the sockaddr_dl in all cases, narrowing the Solaris ifdef
to just the accomodation of broken kernels. Check sockaddr_dl
carefully up front, and later assume any non-NULL sdl pointer is
valid. Clean up types and variable declarations, and rename
WRAPUP to SAROUNDUP to make the name fit the behavior.
gdt [Mon, 5 Jan 2004 17:20:59 +0000 (17:20 +0000)]
2004-01-05 Greg Troxel <gdt@ahi.ir.bbn.com>
* kernel_socket.c (kernel_read): Look up interfaces by index
first, so that state changes which do not include a sockaddr_dl
now work. Add many sanity checks. In
particular, do not assume that a sockaddr_dl follows a message
without checking the ifm_addrs flags, and do not trust the length
in a sockaddr_dl. Add/clarify many comments.
gdt [Sun, 4 Jan 2004 01:02:55 +0000 (01:02 +0000)]
Really ripngd should either leave groups on down interfaces, or keep
track of on which interfaces joins have occurred. This is complicated
by the possible lack of a clear behavior spec on whether interfaces
keep their joined group lists across a down/up/down transition. (On
NetBSD, they do.)
2004-01-03 Greg Troxel <gdt@ahi.ir.bbn.com>
* ripng_interface.c (ripng_multicast_join): If IPV6_JOIN_GROUP
returns EADDRINUSE, consider the join successful. This happens
when an interface goes down and comes back because
ripng_multicast_leave does not invoke the LEAVE_GROUP operation if
the interface is down. Solves problem of ripng stopping working
on an interface which goes down and then comes back up (on NetBSD).
paul [Tue, 30 Dec 2003 11:16:21 +0000 (11:16 +0000)]
2003-12-30 Paul Jakma <paul@dishone.st>
* redhat/isisd.init: new file, init script for isisd.
redhat/quagga.sysconfig: new file, sysconfig file for quagga
initscripts.
redhat/quagga.spec.in: various cleanups, including sysconfig patch
from RH, fixed UID/GID as per RH EL, shell changed to
/sbin/nologin, daemon vty's listen to 127.1 only per default and
isisd packaged.
redhat/*.init: sysconfig support and runlevels specified.
paul [Tue, 30 Dec 2003 11:09:00 +0000 (11:09 +0000)]
2003-12-30 Paul Jakma <paul@dishone.st>
* Makefile.am: put the redhat/ stuff into EXTRA_DIST rather than
copying via dist-hook. Remove ~ files backup cruft from dists.
isisd/Makefile.am: sysconf example should go via
dist_examples_DATA. The include-netbsd/ headers werent mentioned
as sources and werent being copied into dists.