Go to file
ajs 634f9ea20f 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
Implement non-blocking zclient I/O with buffering.
	* zclient.h (struct zclient): Add two fields to support non-blocking
	  I/O: struct buffer *wb, and struct thread *t_write.
	  (zclient_free): Remove function.
	  (zebra_redistribute_send): Change 2nd arg from socket fd to
	  struct zclient * (needed to support non-blocking I/O and buffering).
	  (zclient_send_message): New function to send an arbitrary
	  message with non-blocking I/O.
	* zclient.c (zclient_new): Create write buffer.
	  (zclient_free): Remove unused function.
	  (zclient_stop): Must cancel new t_write thread.  Also, reset
	  all buffers: ibuf, obuf, and wb.
	  (zclient_failed): New helper function for typical error handling.
	  (zclient_flush_data): New thread to flush queued data.
	  (zclient_send_message): New function to send the message in
	  zclient->obuf to zebra using non-blocking I/O and buffering.
	  (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use
	  new zclient_send_message function instead of calling writen.
	  (zclient_start): Set socket non-blocking.  Also, change 2nd arg
	  to zebra_redistribute_send from zclient->sock to zclient.
	  (zebra_redistribute_send): Change 2nd arg to struct zclient *.
	  Can now use zclient->obuf to assemble the message instead of
	  allocating a temporary stream.  And call zclient_send_message to
	  send the message instead of writen.
	  (zclient_read): Convert to support non-blocking I/O by using
	  stream_read_try instead of deprecated stream_read.
	  (zclient_redistribute): Change 2nd arg to zebra_redistribute_send
	  from zclient->sock to zclient.
	* ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute):
	  Change 2nd arg to zebra_redistribute_send from zclient->sock
	  to zclient.
	* ospf_zebra.c (ospf_zebra_add): Call zclient_send_message instead
	  of writen.
	* rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,
	  rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send
	  from zclient->sock to zclient.
	* ripng_zebra.c (ripng_redistribute_unset, ripng_redistribute_clean):
	  Change 2nd arg to zebra_redistribute_send from zclient->sock
	  to zclient.
	* bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):
	  The 2nd arg to zebra_redistribute_send is now zclient instead of
	  zclient->sock.
	* isis_zebra.h (isis_zebra_finish): Remove declaration of unused
	  function.
	* isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message
	  to send the message to zebra instead of calling writen directly, since
	  zclient_send_message understands non-blocking I/O and will manage
	  the buffer queue appropriately.
	  (isis_zebra_finish): Remove unused function, particularly since
	  the zclient_free function has been removed.
2005-04-11 15:51:40 +00:00
bgpd 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
doc 2005-04-10 Paul Jakma <paul@dishone.st> 2005-04-10 16:43:40 +00:00
guile - Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch 2004-11-02 18:59:49 +00:00
init CVS ignore Linux NFS silly-delete .nfs* files 2004-06-06 15:25:35 +00:00
isisd 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
lib 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
m4 - Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch 2004-11-02 18:59:49 +00:00
ospf6d 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
ospfclient 2004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2004-11-20 02:06:59 +00:00
ospfd 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
pkgsrc - Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch 2004-11-02 18:59:49 +00:00
ports - Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch 2004-11-02 18:59:49 +00:00
redhat 2005-01-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-01-15 17:26:48 +00:00
ripd 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
ripngd 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 15:51:40 +00:00
solaris 2005-04-11 Paul Jakma <paul.jakma@sun.com> 2005-04-11 07:58:35 +00:00
tests - Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch 2004-11-02 18:59:49 +00:00
tools - Add .arch-ids and .arch-inventory to cvsignore, to allow one to use arch 2004-11-02 18:59:49 +00:00
vtysh * extract.pl.in: Ignore "router zebra". 2005-04-07 18:42:09 +00:00
watchquagga 2005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-02-17 20:11:58 +00:00
zebra 2005-04-10 Paul Jakma <paul@dishone.st> 2005-04-10 16:54:26 +00:00
.cvsignore Ignore <dist tarball>.asc - i always seem to have one hanging around from 2005-01-12 23:49:05 +00:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
ChangeLog 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 14:55:55 +00:00
configure.ac 2005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-04-11 14:55:55 +00:00
COPYING Initial revision 2002-12-13 20:15:29 +00:00
COPYING.LIB Initial revision 2002-12-13 20:15:29 +00:00
HACKING 2005-04-07 Paul Jakma <paul.jakma@sun.com> 2005-04-07 07:30:20 +00:00
INSTALL.quagga.txt 2005-04-02 Paul Jakma <paul@dishone.st> 2005-04-02 17:13:33 +00:00
Makefile.am 2005-04-11 Paul Jakma <paul.jakma@sun.com> 2005-04-11 07:10:47 +00:00
mkinstalldirs Revert to zebra.org automake files 2003-02-17 23:54:05 +00:00
NEWS 2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu> 2005-01-04 13:20:47 +00:00
README 2004-11-12 Paul Jakma <paul@dishone.st> 2004-11-12 10:30:21 +00:00
REPORTING-BUGS Zebra -> Quagga and reformatting. 2004-02-20 20:33:43 +00:00
SERVICES 2607/tcp is already used by ospfapi. 2003-12-23 10:42:45 +00:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
TODO Move TODO items from isid to the common TODO. 2005-01-01 21:02:13 +00:00
update-autotools 2004-11-06 Paul Jakma <paul@dishone.st> 2004-11-07 22:34:23 +00:00

Quagga is free software that manages various IPv4 and IPv6 routing
protocols.

Currently Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, and RIPng as well as very early support for IS-IS.
  
See the file INSTALL.quagga.txt for building and installation instructions.
  
See the file REPORTING-BUGS to report bugs.
  
Quagga is free software. See the file COPYING for copying conditions.