#---------------------------------------------------------------------------
#  $Name: cflowd-2-1-b1 $
#---------------------------------------------------------------------------

Requirements
------------
  arts++

    This release requires the arts++ package from CAIDA.  You may 
    retrieve the arts++ package from ftp://ftp.caida.org/pub/arts++/

  GNU flex

    GNU flex is also required, and lex is not supported (and never 
    will be).  You *must* use GNU flex and not lex when compiling this 
    package.

  GNU bison

    GNU bison is required.  In all likelihood, AT&T yacc will work as
    well, but it's not supported because I never use it.

Quick installation procedure
----------------------------
  ./configure
  make
  make strip (optional)
  make install
  make install-lib (optional)

  'make install' will install binaries and example configuration files.
  'make install-lib' will install header files and the Cfd library,
  and is only needed if you intend on writing new application using the
  Cfd library.

configure options
-----------------
  --prefix=/foo/bar
      By default, everything will be installed under /usr/local/arts
      (--prefix=/usr/local/arts).  You can change the default 
      installation path using --prefix=/some/other/install/directory
      when running ./configure

  --with-artspp=/foo/bar
      By default, configure assumes you installed arts++ in
      /usr/local/arts (--artspp=/usr/local/arts).  You can specify
      the location of your arts++ installation using
      --with-artspp=/path/to/arts/installation when running ./configure

  --with-flexdir=/foo/bar
      By default, configure will attempt to find the location of flex
      and guess at the base directory of your flex installation.  This
      directory is needed to link to the flex library (-lfl) and to
      find the flex header file(s).  Normally, if flex is in your path
      you will not need to use --with-flexdir.  However, you can force
      the locaiton of flex lib and include directories using 
      --with-flexdir=/path/to/flex/installation.  For example, if
      libfl.a is in /opt/flex-2.5.4/lib, you would use
      --with-flexdir=/opt/flex-2.5.4

      NOTE: you still need to have flex in your path.

Runtime Configuration
---------------------
  There is a configuration guide in doc/configuration/configuration.ps
  You should read the guide before configuring cflowd, even if you've
  used previous versions of cflowd (since the configuration file has
  changed).

Tested Platforms
----------------
  This package has been compiled and used at CAIDA on the platforms
  listed below.  This does not in any way indicate the portability of
  this software nor the stability.  It merely indicates what operating
  systems on which this package is relatively easy for CAIDA to support.
  Note I always use g++ for this package, as CAIDA does not currently 
  own commercial C++ compiler licenses.  If you're using another compiler,
  my odds of being able to help you with problems are slim to none, but
  that doesn't mean I won't try.

  Here's the list for the current release:

  Operating System      	Compiler                        Date
  --------------------  	------------------------------  ------------
  FreeBSD 3.3 Intel		g++ 2.95.1			Oct 18, 1999
  Linux 2.2.10 Intel (debian)	g++ 2.95.1			Oct 18, 1999
  Linux 2.0.34 Intel (debian)	g++ 2.95.1			Oct 18, 1999
  Sparc/Solaris 2.7		g++ 2.95.1			Oct 18, 1999
  Sparc/Solaris 2.6		g++ 2.95.1			Oct 18, 1999

  And for previous releases (not tested recently):

  Operating System      	Compiler                        Date
  --------------------  	------------------------------  ------------
  FreeBSD 3.2 Intel		g++ 2.95			Aug 11, 1999
  Linux 2.2.10 Intel (debian)	g++ 2.95			Aug 18, 1999
  Linux 2.0.34 Intel (debian)	g++ 2.95			Aug 18, 1999
  Sparc/Solaris 2.7		g++ 2.95			Aug 18, 1999
  Sparc/Solaris 2.6		g++ 2.95			Aug 18, 1999
  FreeBSD 3.0 Intel		g++ 2.8.1, libstdc++ 2.8.1.1	Jan 10, 1999
  FreeBSD 2.2.5			g++ 2.8.1, libstdc++ 2.8.1.1	Oct 10, 1998
  Linux 2.0.35 Intel (debian)	g++ 2.7.2.3			Oct 10, 1998
  Sparc/Solaris 2.6		g++ 2.8.1, libstdc++ 2.8.1.1	Oct 10, 1998
  Sparc/Solaris 2.5.1		g++ 2.7.2.3			Oct 10, 1998

Other Platforms
---------------
  I've received reports from the field that cflowd works on the following
  platforms:

  Operating System      Compiler                        Date
  --------------------  ------------------------------  ------------
  BSDI BSD/OS 3.1       g++ 2.8.1, libstdc++ 2.8.1.1    Jan 10, 1999
  BSDI BSD/OS 4.0       g++ 2.7.2.1                     Jan 11, 1999
  Digital UNIX 4.0B     g++ 2.8.1                       Jan  4, 1999

Specific Platform Notes
-----------------------
  FreeBSD
  -------
    cflowdmux and cflowd use System V IPC facilities (shared memory
    and semaphores).  Hence you must have these facilities in your
    kernel on the host running cflowdmux and cflowd (they are not
    required for cfdcollect).  You should have these lines in your
    kernel configuration:

      options         SYSVSHM
      options         SYSVSEM

    See /sys/i386/conf/LINT for more information.

  Solaris
  -------
    cflowdmux uses shared memory for inter-process communication.
    The shared memory is used for packet buffering, and cflowdmux
    uses a default shared memory segment of 1 megabyte (which
    can be changed with the PKTBUFSIZE setting in cflowd.conf).

    Solaris is usually installed with a low default for the maximum
    shared memory segment size (typically 1 megabyte).  If you want to 
    use a larger shared memory packet buffer for cflowdmux, you may 
    need to increase the system limit before starting cflowdmux
    by adding a line like the following to /etc/system:

      set shmsys:shminfo_shmmax=16777216

    This sets the maximum shared memory segment size to 16 megabytes.
    No resources are allocated by this setting, so it's generally safe
    to increase it.  You can view the current setting by running 
    'sysdef'.  After changing /etc/system, you need to reboot for the
    new setting to take effect.

