Tue Oct 24 12:46:55 2000 Daniel W. McRobb * 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 * 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 * tagged as cflowd-2-1-a8 Thu May 25 16:10:27 2000 Daniel W. McRobb * 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 * tagged as cflowd-2-1-a7 Tue Feb 29 14:32:31 2000 Daniel W. McRobb * 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 * 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 * 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 * 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 * Added v8 flow-export (aggregation cache data) support to flowwatch. Mon Oct 18 17:19:39 1999 Daniel W. McRobb * tagged as cflowd-2-1-a4 Sat Oct 16 06:47:18 1999 Daniel W. McRobb * 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 * 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 * 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 * 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 * 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 * classes/include/CflowdCiscoFlowInterface.hh Added explicit destructor for CflowdCiscoFlowInterface class. Tue Jul 27 22:09:32 1999 Daniel W. McRobb * 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 * 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 * 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 * tagged as cflowd-2-0-b9 * Added support for TOS table. Thu Feb 18 03:01:16 1999 Daniel W. McRobb * 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 * 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 * apps/cfdcollect/CfdcollectConfig.cc apps/cfdcollect/CfdcollectConfig.hh apps/cfdcollect/cfdcollect.cc Changed from deque to vector 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * tagged as cflowd-2-0-b4 Sat Dec 12 06:02:46 1998 Daniel McRobb * Added CflowdUint16Uint16Key.hh and CflowdUint64TrafficCounter.hh to HDRFILES in classes/src/Makefile.in Sat Dec 12 05:44:46 1998 Daniel McRobb * tagged as cflowd-2-0-b3 Fri Dec 11 06:15:53 1998 Daniel McRobb * 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 * tagged as cflowd-2-0-b1 Sun Dec 6 07:50:18 1998 Daniel McRobb * 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 * 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 * 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 * 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 * 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 * tagged as cflowd-2-0-a5 * Whoops... added install target for flowwatch. Tue Oct 13 10:42:01 1998 Daniel McRobb * 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 * 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.