---------------------------------------- R-SIFTR v0.1 README (01 OCTOBER 2014) ---------------------------------------- This document gives an overview of R-SIFTR, a set of functions to assist in parsing SIFTR log files from within R. OVERVIEW -------- SIFTR [1] provides an in-depth view of the FreeBSD TCP stack. The log files it produces give per-packet states of the TCP stack and TCP flow. The R-SIFTR module is a set of functions to facilitate SIFTR [1][2] users in parsing SIFTR log files, in order to enhance their TCP research abilities. R-siftr v0.1 has been tested against SIFTR version 1.2.4 log files. See ./INSTALL.txt for description of how to use r-siftr.r This R-SIFTR library is built based on the concepts of Scilab-SIFTR v0.2.2 developed by Prof Grenville Armitage [3]. DOCUMENTATION ------------- See ./DOCUMENTATION.txt for descriptions of each R function defined within r-siftr.r, and the example programs. DISCLAIMER and LIMITATIONS -------------------------- These functions were written to scratch an itch, solve a problem and address a local need. They are certainly not elegant, they may well have bugs, and documentation is arguably incomplete. Nevertheless, this code has worked for us in a number of use-cases, and we release it in the hope it helps others explore SIFTR logfiles using R. These functions expect a single SIFTR session to be in the log file. In other words the file begins with an "enable_time_sec=" line, and ends with a "disable_time_sec=" line. Behaviour is undefined if a log file has multiple "enable_time_sec=" and/or "disable_time_sec=" lines R's stacksize will limit the number of lines the siftr_getl() function can read in one call. If you experience this error, try siftr_getl_filtered() -- it will read and filter the contents of a SIFTR log file 5000 lines at a time, and use significantly less intermediate memory. If this does not stop the error message from appearing, alter your script such that the available stack is used more efficiently - request small numbers of lines at a time with siftr_getl() or siftr_getl_filtered() and reduce them to just the data you need before requesting more lines. CONTRIBUTIONS ------------- We welcome your feedback and contributions! If you have discovered a bug, have a request for a new feature or have produced a code patch, please contact use using the contact details below. REFERENCES ---------- [1] http://caia.swin.edu.au/newtcp/tools.html newtcp, CAIA [2] http://www.freebsd.org/cgi/man.cgi?query=siftr SIFTR man page [3] http://caia.swin.edu.au/urp/newtcp/tools/scilab-siftr-0.2.2.tgz LICENSE ------- R-SIFTR is distributed under the FreeBSD license. Copyright (c) 2014 Centre for Advanced Internet Architectures, Swinburne University of Technology. Author: Jonathan Tze Hwei Kua (jtkua@swin.edu.au) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. CONTACT ------- The R-SIFTR module is part of the NewTCP/SIFTR project, whose website is: http://caia/newtcp/tools.html If you have any questions or want to report any bugs in regards to this R-SIFTR library please contact: Programmer: Jonathan Tze Hwei Kua (jtkua@swin.edu.au) Project leader: Grenville Armitage (garmitage@swin.edu.au) Centre for Advanced Internet Architectures Swinburne University of Technology Melbourne, Australia CRICOS number 00111D http://www.caia.swin.edu.au