Tue Oct 24 12:46:55 2000  Daniel W. McRobb  <dwm@axle.caimis.com>

	* tagged as cflowd-2-1-b1

	* classes/src/CflowdPacketQueue.cc
	  classes/include/CflowdPacketQueue.hh
	  apps/cflowdmux/cflowdmux.cc
	  apps/cflowd/cflowd.cc
	  apps/flowwatch/flowwatch.cc

	Fixed race condition for packet queue buffers.  cflowdmux needs
 	to acquire the next buffer before releasing the previous one.
  	Otherwise it is possible for a reader to acquire the current
 	buffer after cflowdmux releases it, and also acquire the next
 	buffer before cflowdmux locks it.

	Note that read clients must be well-behaved to prevent deadlock.

Thu Aug  3 13:22:07 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a9

	* classes/src/CflowdCisco.cc
	Fixed syslog message for missed flows (needed to add missed
 	flows and received flows to get total flow count).

Wed Aug  2 15:03:46 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a8

Thu May 25 16:10:27 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* apps/cflowdmux/cflowdmux.cc:
	  case k_maxFlowsPerV8SrcNetAggPacket inside
	    switch (hdrPtrV8->agg_method) { ...}
	should have been
	  case k_CiscoV8FlowExportSrcNetAggType
	since we are comparing the method of aggregation, not the number 
	of flows.

	Submitted by Juniper.

Tue May 23 15:54:50 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a7

Tue Feb 29 14:32:31 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* classes/include/CflowdRawFlow.hh
	flowHeader->sysUptime is in milliseconds, not hundredths of a
 	second.  Made the same changes as those made on January 7, 2000
 	(I missed the inline members in CflowdRawFlow.hh when making 
	changes on that date).

Sun Jan  9 02:42:52 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a6

	* classes/src/Makefile.in
	Fixed tarball target to deal with (non)existence of static libCfd.a.

Fri Jan  7 20:07:36 2000  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a5

	* classes/src/CflowdRawFlow.cc

	Hmmm... fixed start/end time calculation of flows.  I thought I
 	had fixed this before (and there was a corresponding CVS log entry
 	for classes/src/CflowdRawFlow.cc), but apparently not (the fixes
	for flowEntry->first and flowEntry->last were there, but not for
	flowHeader->sysUptime and no fixes were present for v8).

Tue Nov  9 18:48:14 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* We can now build and use shared versions of the Cfd and snmp++
	libraries (using libtool).  For a lean and mean version of cflowd,
	you can use something like:

	  env CXXFLAGS=-O3 ./configure --enable-shared --disable-static ;
	  make

Tue Oct 19 19:06:21 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Added v8 flow-export (aggregation cache data) support to 
	flowwatch.

Mon Oct 18 17:19:39 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a4

Sat Oct 16 06:47:18 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* apps/cflowd/cflowd.cc 

	Added SO_KEEPALIVE socket option on socket connection to central
 	collector.  This will force us to get a SIGPIPE if we have a
 	keepalive timeout.
	

Thu Sep  2 04:29:40 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* snmp++/classes/src/address.cpp
   	  snmp++/classes/src/asn1.cpp
 	  snmp++/classes/src/ctr64.cpp
 	  snmp++/classes/src/eventlist.cpp
 	  snmp++/classes/src/integer.cpp
	  snmp++/classes/src/msec.cpp
 	  snmp++/classes/src/msgqueue.cpp
 	  snmp++/classes/src/notifyqueue.cpp
 	  snmp++/classes/src/oid.cpp
 	  snmp++/classes/src/snmpmsg.cpp
	  snmp++/classes/src/userdefined.cpp
 	  snmp++/classes/src/usertimeout.cpp
 	  snmp++/classes/src/uxsnmp.cpp
	Cleaned up warnings from g++ 2.95.1 on FreeBSD 3.2-STABLE.

	* tagged as cflowd-2-1-a3

	* classes/src/CflowdCisco.cc
	Set _lastCleared to _lastUpdated in ClearTableData().  Using
 	time() was bogus; it made it look like there were gaps in
 	collection intervals, but in reality cflowdmux is still collecting
 	data while cflowd is busy clearing our tables after forking to send
 	data to cfdcollect.

Tue Aug 31 05:51:08 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a2

	* configure.in 
	Now using AC_TRY_COMPILE() to try to figure out if
 	we need union semun stuff for semctl().

Mon Aug 30 20:02:35 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-1-a1

	It's been a long while since a public release, so here's a quick
 	list of user-visible changes.
	
	We now have SNMP functionality for retrieving interface names
 	(ifDescr) and IP addresses (ipAdEntIfIndex).  We're using a
 	slightly modified version of HP's SNMP++ library, and it's
 	included in the cflowd package (with no changes to the SNMP++
 	licensing).  cflowd.conf now has a field named SNMPCOMM in the
 	CISCOEXPORTER stanza to indicate the community name to use to
 	access the router via SNMP.

	We now collect TOS table data.

	There is now support for version 8 flow-export.  This code has
 	seen almost no testing; please report any problems.

	Fixed a memory leak in cfdcollect that was due to the compiler not
 	creating a proper destructor for some classes which contain
 	template instantiations.

	Fixed start time and end time computation for flows.  Cisco made
 	these milliseconds even though they're offsets from sysUpTime
 	which is in hundredths of a second.

	Added support for matching on router, enginetype and engineid in
 	flow matching code in library.  See the flowdump and flowwatch
 	manpages.

Wed Aug 11 12:13:10 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Cleaned up for gcc-2.95.  Minor tweaks to meet parts of C++
 	standard (yes, there is a C++ standard now).  Unfortunately I
 	haven't yet moved to a fully standard-compliant implementation,
 	because I have to retain support for older compilers (for example,
 	the old header file naming conventions and things like strstream).

Fri Aug  6 10:58:02 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* classes/include/CflowdCiscoFlowInterface.hh
	Added explicit destructor for CflowdCiscoFlowInterface class.

Tue Jul 27 22:09:32 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Fixed start time and end time computation for flows.  Cisco made
 	these milliseconds even though they're offsets from sysUpTime
 	which is in hundredths of a second.

Wed May 26 06:58:52 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Added support for matching on router, enginetype and engineid
	in flow matching code in library.  Also added info to flowdump
	and flowwatch manpages and usage statements for matching on 
	these fields.

Tue May 25 05:06:15 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Added support for getting ifDescr and interface IP address
	for each Cisco interface using SNMP++.

Fri May  7 18:15:31 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b9

	* Added support for TOS table.

Thu Feb 18 03:01:16 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* classes/src/CflowdCisco.cc
	  classes/src/CflowdCiscoFlowEngine.cc
	  apps/cflowd/cflowd.cc
	
	Added handling of per-aggregation-cache sequence numbers for v8
 	flow-export.

	* classes/include/CflowdCiscoFlowEngine.hh
	
	Changed _seqNumber, _missedFlows and _flowsReceived to be arrays
 	so we can handle v8 flow-export (which has a sequence number per
 	aggregation cache per engine).

	* classes/include/CflowdFlowPdu.h

	Added #define's for:

	  k_CiscoV8FlowExportMaxAggType
	  k_CiscoV8FlowExportNumAggTypes

	These are currently just used to size arrays of sequence numbers
 	(one per aggregation type) in the CflowdCiscoFlowEngine class.
	

Mon Feb  8 17:08:34 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b8

	Note that v8 flow-export handling is *not* complete at this time,
	since I need to modify the sequence number handling (with v8,
	sequence numbers are per aggregation cache in addition to per VIP
	or RSP).

	* apps/cflowdmux/cflowdmux.cc

	Added atexit(DestroyPacketQueue) to remove shared memory packet
	queue when exiting.

Sun Feb  7 13:37:23 1999  Daniel W. McRobb  <dwm@morgaine.caida.org>

	* apps/cfdcollect/CfdcollectConfig.cc
	  apps/cfdcollect/CfdcollectConfig.hh
	  apps/cfdcollect/cfdcollect.cc
	
	Changed from deque<CflowdServer> to vector<CflowdServer> since I'm
 	not using features of deque and vector iterators are more
 	efficient.

	* classes/src/CflowdAsMatrix.cc 
	  classes/src/CflowdNetMatrix.cc
 	  classes/src/CflowdPortMatrix.cc
	
	Now doing large reads into memory and an istrstream when reading
 	large tables from a socket.  This cures a massive CPU consumption
 	problem in cfdcollect on Solaris 2.7 (and possibly other
 	platforms) caused by many small reads on a socket.

	* classes/include/CflowdNetMatrixKey.hh
	  classes/include/CflowdUint16Uint16Key.hh
	
	Added _ioLength member (static) and Length() member function to be
 	used in computing the length of an object when reading one from a
 	socket (allows a block read into memory which can then be used in
 	the constructor of an istrstream to read inidividual fields).

Tue Jan 26 05:19:49 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Added support for v8 flow-export aggregations.  I've only added
 	handling for the AS aggregation, protocol/port aggregation and
 	network prefix aggregation (net matrix).  This code is currently
 	UNTESTED!

Mon Jan 25 04:36:22 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* Added initial work for FreeBSD ports.

	* Tested with egcs 1.1.1 on FreeBSD.  Compiles fine.

Fri Jan 22 01:01:23 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* configure.in
	configure
	
	Added AC_CHECK_FUNCS(strcasecmp) to properly define HAVE_STRCASECMP.

	* apps/cfdcollect/config.lex

	Added inclusion of "aclocal.h" to pick up definition of 
	HAVE_STRCASECMP.

Thu Jan 21 19:05:11 1999  Daniel W. McRobb  <dwm@lancelet.caida.org>

	* apps/cfdprotos/cfdprotos.cc
	apps/cfdprotos/cfdprotos.man.in

	Now show protocol name instead of protocol number, but allow the
 	user to disable protocol name lookups with the [-n] command line
 	option.
	
	* apps/cfdnets/cfdnets.cc
	apps/cfdnets/cfdnets.man.in
	
	Added [-s srcNet/masklen] and [-d dstNet/masklen] command line
 	options for choosing particular net matrix entries.

	* apps/cfdases/cfdases.cc
	apps/cfdases/cfdases.man.in
	
	Added [-s srcAS] and [-d dstAS] command-line options for choosing
 	particular AS matrix entries.

Tue Dec 22 13:08:23 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b7

	* classes/src/CflowdRawFlowLogger.cc
	Added typecast in check of mmap() return, since some platforms
 	(Digital UNIX, for example) bogusly define MAP_FAILED without a
 	correct typecast to caddr_t.
	
	* configure configure.in apps/cfdases/Makefile.in
	apps/cfdcollect/Makefile.in apps/cfdifmatrix/Makefile.in
	apps/cfdnets/Makefile.in apps/cfdnexthops/Makefile.in
	apps/cfdportmatrix/Makefile.in apps/cfdprotos/Makefile.in
	apps/cflowd/Makefile.in apps/cflowdmux/Makefile.in
	apps/flowdump/Makefile.in apps/flowwatch/Makefile.in
	classes/src/Makefile.in

	Now setting FLEXINC and FLEXLIB in configure, substituting in
 	configure output, and using in various Makefile.in files.

	* configure.in
	Changed "awk -F /" to "awk -F/" in hopes of it being more portable
 	(Solaris awk didn't like the space between -F and the field
 	delimiter character).

Wed Dec 16 00:42:06 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b6

	* Now using config.guess/config.sub to set OSNAME and to handle
 	OS-dependent stuff in configure (using AC_CANONICAL_SYSTEM).  A
 	side-effect here is that the 'tarball' target now uses a different
 	filename.  The new tarball target contains the CPU type and OS
 	name.  Note that this means we now use 'solaris2.x' instead of
 	'SunOS_5.x'; this may be good or bad depending on your
 	perspective.  Note I'm still not using the full 'host' variable
 	from AC_CANONICAL_SYSTEM; this may or may not change in the
 	future.  I'm currently using ${host_cpu}-${host_os} in the
	tarball output filename.

Tue Dec 15 14:59:32 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b5

	* classes/src/CflowdRawFlowLogger.cc
	  classes/src/CflowdCisco.cc
	  classes/include/CflowdRawFlowLogger.hh

	Added code to disable raw flow logging (and log a message) when we
 	can't create a raw flow file.  Previously we continued and didn't
 	disable raw flow logging, which would quickly lead to a SIGSEGV
 	(trying to memcpy() to a non-existent memory map).

Mon Dec 14 12:32:23 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* apps/flowwatch/flowwatch.cc
	Print usage message and exit if flowFilter.Compile() fails.

	* classes/src/CflowdPacketQueue.cc
	Added informational syslog messages when we successfully attach
	to shared memory packet queue.
	
	* apps/cflowdmux/cflowdmux.cc
	syslog and exit if we can't create packet queue.

	* apps/cflowd/cflowd.cc
	Fixed syslog when we can't open the packet queue: now using
 	LOG_ALERT (which is what was intended and also indicated by the
 	'[A]' at the front of the message) instead of LOG_CRIT.

Mon Dec 14 08:32:23 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b4

Sat Dec 12 06:02:46 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* Added CflowdUint16Uint16Key.hh and CflowdUint64TrafficCounter.hh
	to HDRFILES in classes/src/Makefile.in

Sat Dec 12 05:44:46 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b3

Fri Dec 11 06:15:53 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* Added CflowdFlowFilter class and made changes to the filtering
 	code.  We now only lex the filter expression string when calling
 	CflowdFlowFilter::Compile().  This builds a vector of tokens that
 	can be repeatedly processed more efficiently by the parser.
	
Mon Dec  7 05:05:20 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-b1

Sun Dec  6 07:50:18 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* Added support for storing nexthop table object in cfdcollect
	(CflowdServer.cc).

	* Added support for storing interface matrix object in cfdcollect
	(CflowdServer.cc).

Mon Oct 19 18:43:29 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-a10

	* Added constructor, destructor, Close(), Open() and = operator to
 	CflowdFlowPort class.  The constructor fixes a bug where we'd call
 	close() on CflowdFlowPort::fd when fd wasn't initialized.  Bug
 	reported by James Danda at University of Kansas.

Thu Oct 15 00:46:40 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-a9

	* Sigh, fixed sed command in DWM_SET_VERSION in dwm.m4 (again).

Wed Oct 14 15:04:23 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-a8

	* Added 'touch @PKG_VERSION@.@OSNAME@_@OSRELEASE@.tar' to tarball
 	rule in top-level Makefile.in.  Some versions of tar don't like
 	'tar -rvf foo bar' if foo doesn't already exist, so we force it to
 	exist (but be empty since we remove it before touching it).

	* Fixed sed command in DWM_SET_VERSION in dwm.m4.

	* tagged as cflowd-2-0-a7

	* Added setting of @TAR@ in configure, so that we can tack on
	'-P' to tar command on platforms that have GNU tar.  This is
 	used when doing a 'make tarball'.

	* tagged as cflowd-2-0-a6

	* Changed @PKG_VERSION@.@OSNAME@.tar to
 	@PKG_VERSION@.@OSNAME@_@OSRELEASE@.tar in 'tarball' target in
 	Makefile.in files.  Added setting of @OSRELEASE@ in configure.in.
  	'make tarball' should *only* be used post-install (i.e. after
 	'make install').  It's a simple-stupid way of tarring up binaries
 	for cflowd for a given platform.
	
Tue Oct 13 22:33:01 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* Added tarball target, which can be used post-install to
	make a tar file of the installed binaries for another host of
	the same flavor.
	
Tue Oct 13 12:15:01 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-a5

	* Whoops... added install target for flowwatch.
	
Tue Oct 13 10:42:01 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* tagged as cflowd-2-0-a4

	* Changed dwm.m4, configure.in and configure; DWM_SET_VERSION
	now takes a variable name as the first of 3 arguments, and I'm 
	using it to set DOC_VERSION.	

Tue Oct 13 09:42:01 1998  Daniel McRobb  <dwm@lancelet.caida.org>

	* Made cfd utility command-line handling more robust, as well as
 	checking return value when loading configuration.

	* Added version info to cfd utilities, accessible via the -v
	command-line option.

