Changes marked "MEMBERS ONLY" are available only to CAIDA members in special members-only releases of CoralReef. You can find information about becoming a CAIDA member at "http://www.caida.org/members/". Version 3.5.1 (2001-11-30) ------------- * Fixed definition of int8_t on platforms without int8_t natively and where unqualified "char" is unsigned. * Fixed "make {clean,distclean,realclean}". * Improved error messages. * Fixed: when reading from a TSH file, packets with more than 4 bytes of IP options contained trailing garbage. * Fixed crl_totsh: interface numbers were off by 1, and IP options were incorrectly interpreted as IP payload. Version 3.5.0 (members only: 2001-11-20) ------------- general * IPv6 support in APIs libcoral and CRL.pm, and applications crl_rate and crl_print_pkt. * Supports NLANR TSH file format. * Parses IEEE 802.1Q VLAN. crl_print_pkt prints VLAN details. VLAN ID is treated as a subinterface id by applications crl_rate and crl_flow, function coral_read_pkt(), etc. E-RIF is not supported. Filtering by vlan requires libpcap-0.6.2 (or later). * Parses ARP for Ethernet and ATM. crl_print_pkt prints ARP details. * Recognizes and partially parses ILMI, SNMP. * Recognizes (but does not parse) IGMP, IEEE 802.1D, AppleTalk, AARP, and IPX protocols. * On ATM interfaces, the default protocol for virtual channels 0:0 through 0:15 is UNKNOWN, and for 0:16 is ILMI (but the default for all other virtual channels is still ATM_RFC1483). * CoralReef no longer initializes DAG devices, but expects them to be already initialized (using dagtools commands). This allows the user to have full control of initialization. * Normalizing timestamps to the unix epoch (CORAL_OPT_NORMALIZE) is now done by default, but is not required unless interfaces have different epochs. Can be disabled in crl_* apps with -Cnorm=0 command line option. * Packet applications (using coral_read_pkt()) print warnings about packet loss and other errors. * Added -Cgzip option to set compression level or enable gzip on filenames without ".gz" (e.g., "-" for stdout); changed default compression level from 6 to 1 (fastest). * New configuration commands to limit capture by packet, cell, or block count. (Programmers must call coral_set_api() to enable these commands in their own applications.) * When a crl_* application encounters an error in a Coral source, it exits immediately with nonzero exit status, instead of just closing that source and continuing to read other sources (if any). * Can automatically skip cells before an unexpected clock reset in the first block read from point and fatm interfaces. * crl_* applications and libcoral recognize "~" home directory notation in all filenames. * Can read and write non-regular files (e.g., /dev/fd/*, sockets, and FIFOs) as trace files. * Correctly handles reading pcap files from /dev/fd/* on systems where it's a device (like FreeBSD). * Iomode "first" overrides an earlier "user" on the command line (or CORAL_RX_USER_ALL in the C API). * Certain types of errors that were reported as EOF in earlier versions are now correctly reported as errors. * Fixed automatic recognition of empty pcap files. * Improved detection of Berkeley DB 1.85. * Added several new applications to the example Applications port list. * Fixed bugs when building SWIG applications with non-standard Perl configurations. applications * Added crl_guess to identify unknown tracefile and subinterface protocols. * crl_print_pkt can skip low level protocols. * crl_print_pkt: added -c option to print and verify IP checksums. * crl_to_pcap: added options to cut by packet count or timestamp. * crl_to_pcap has the option to discard link layer and write only raw IP. * crl_info: improved speed by several orders of magnitude for -d option on uncompressed regular .crl and .dag files. * crl_flow: added -o and -O options to specify output file. -O is used to create a new file every interval. * crl_flow: doesn't print active flows every interval by default; added -A option to do that. * crl_flow: fixed bug where active flows were not printed in intervals that had no expired flows. * t2_report: Changed handling of USR1 signal to terminate program after the processing of an interval. * t2_report: Added configuration option to allow incremental interval reads. * t2_report: Removed several obsolete configuration options. * t2_report: Made RRD graphs end at the interval time instead of real time (to work with trace data) * t2_report: Restructured RRD database layout to improve performance. If you want to use a pre-3.5 t2_report RRD directory with version 3.5, you will need to convert it; see apps/traffic/Reporting/README.RRDtool. * crl_rate uses 64 bit counters to avoid overflow. * crl_rate: Added rows for totals over interfaces and subinterfaces; added -D option to selectively display information for subinterfaces, interfaces, and totals. * crl_rate_layer2: Added interface information, a check for ATM sources, and cell loss statistics (per interface). * crl_rate_layer2: Made time normalization the default, with -U option to override. * crl_trace uses hostname and command line as the default tracefile comment. * Fixed bug in t2_report, where changing the protocols to be graphed caused the 'other' category to disappear. * Changed t2_report++ to use CAIDA::Tables::AppInfo_Table. (MEMBERS ONLY) * Changed t2_report++ to use AppInfo_Table. (MEMBERS ONLY) * Changed format of example Applications port list (removed quote marks) * crl_flow: Removed startup message about CIDR length. * crl_flow: Changed -b to -B for binary output. * Removed t2_aggregate; use t2_convert and t2_top instead. * Removed t2_IPMatrix and t2_Proto_Port; use t2_convert instead. * t2_ASMatrix: Changed options from -b, -p, and -f to -Sb, -Sp, and -Sf. * Added t2_rate. * Added spoolcat, a helper app for t2_report. * Made parse_bgp_dump no longer require the string "sh ip bgp" in the input file for it to work correctly. installation * Fixed use of --with-libdirs to find libz. C API (libcoral) * Added coral_iface_to_pcapp_raw() to discard link layer when converting packets to pcap format. * Added coral_write_pkt_to_pcap() for convenience. * Added coral_fmprint_pkt() and coral_mprint_pkt() to skip low level protocols when printing. * Added coral_filename() to expand "~" in filenames. * Added coral_inet_pton() for systems without inet_aton() or inet_pton(). * Added coral_new_fdsource() to open a source from an existing file descriptor. * Added coral_write_fdopen() to open a writer from an existing file descriptor. * Added CORAL_OPT_IP_CKSUM option to libcoral. * Added CORAL_FMT_IF_SUBIF_LEN and CORAL_FMT_SUBIF_LEN constants for coral_fmt_if_subif() and coral_fmt_subif(). * Parameters to coral_atm_pkt_hook and coral_cell_block_hook are const. * Changed prototypes of coral_in_cksum_add() and coral_in_cksum_result(). * Made it explicitly legal to call coral_pkt_to_pcap() on a packet from an interface which had not had coral_iface_to_pcapp() called on it. * Replaced last parameter of coral_usage() with a printf-style format and variable arguments (old calls will still work unless the last parameter contains "%"). * Fixed: coral_cell_block_hook wasn't called from read_pkt* or read_cell_all*. * Fixed value of *binfo in unsorted read_cell functions. * Added coral_set_max_{pkts,blks,cells}() to limit reading functions. Perl APIs * Removed CAIDA::Traffic2::Sample and CAIDA::Traffic2::Vpvc_data * Added CAIDA::Tables::AppInfo_Table, which uses application information (such as that returned by AppPorts) instead of just the name as a key. Still only hashes on the 'name' field, however. * Changed CAIDA::AppPorts to use a C++ backend (which is also directly accessible via C++), which increases performance. Also changed API slightly, see CAIDA::AppPorts documentation for more details. * Consolidated multiple .so files in CAIDA::Tables to one file, removing a memory leak (visible when running t2_report). * Made CAIDA::Tables and CAIDA::FlowCounter C++ backends publicly available, not just members only. The perl backend is now deprecated. * Fixed error in Perl API's quick_start(), where setting the libcoral API value failed. * Renamed Coral classes Packet, Buffer, Stats, and Interval to Pkt_result, Pkt_buffer, Pkt_stats, and Interval_results, respectively, to better match the libcoral C API. * Last parameter of Coral::usage() is optional. * Added libcoral parallels to Coral namespace: set_max_{pkts,blks,cells}(), filename(), fprint_data(), fprint_cell(), fprint_pkt(), fmprint_pkt(), file_version(), OPT_IP_CKSUM. Version 3.4.7 (2001-08-15) ------------- * Renamed crl_filter to crl_to_pcap. * Fixed: an error when reading a dagtools file caused an infinite loop * Fixed compile errors in coral_data.c and out_of_mem.cc on some systems (Red Hat 7.1) * Fixed detection of Berkeley DB 1.85 (false positive caused compile error on Red Hat 7.1, Solaris 8) * Fixed problem where 'make clean' would delete SWIG-generated files, causing subsequent compilations to require a SWIG binary. Version 3.4.6 (2001-05-25) ------------- Fixed corruption of first 2 cells of every Nth block from DAG device, where N is number of blocks in the device's buffer (introduced in 3.4.2). (First cell had a timestamp of 4096.0 and corrupt (mostly zero) data; second cell had a timestamp of 0.0, but other data was not corrupted.) Fixed core dump when closing a DAG device (introduced in 3.4.2). Version 3.4.5 (2001-05-04) ------------- * crl_filter's -i option selects the interface * Fixed: coral_read_pkt_init() and coral_read_pkts() ignored iface parameter. * Fixed reading final blocks of second interface of 2-interface trace file. Version 3.4.4 (2001-04-10) ------------- * Fixed timezone bug in t2_report that caused incorrect times to be output. * Fixed never-ending creation of new files with t2_report pie charts. * Fixed off-by-one error with RRD graphs in t2_report. * Fixed error using CAIDA::ASFinder in crl_bycountry. * Fixed erroneous "Couldn't find revision of report file!" in crl_hist. * Fixed graphing problem with t2_report (using RRDtool) and trace files. * Fixed excessive timeouts for country lookups when using CAIDA::Tables or crl_bycountry. Version 3.4.3 (2001-03-21) ------------- * Fixed payload corruption when reading packets from 2 or more DAG interfaces. Version 3.4.2 (2001-03-14) ------------- * Added documentation for Tables and other perl APIs. * Fixed "Proto_Table requires 6 fields (you gave 1)" error in t2_report using Perl version of CAIDA::Tables. * Fixed bug caused by writing a binary file from a Perl-only Length_Table and reading it with a C-backend Length_Table, and vice versa. (MEMBERS ONLY) * Added cell option to crl_info. * Added coral_proto_rule(). * "deny" configuration rule works in cell API, and applications crl_cut, crl_fail, crl_info, crl_print, crl_rate_layer2, crl_time. * Fixed bug in crl_flow where subinterface meta-data was wrong when active flows existed. * Added reset() member function to FlowCounter to return to original state. * Fixed bug in Tables where clear() didn't reset the total counter. * Workaround for g++ library error on FreeBSD 4.1. Version 3.4.1 (2001-02-15) ------------- * Fixed loss of final partial block when duration expires. * Added -s (short format) option to crl_print_pkt. * Fixed -Tm option of crl_flow and crl_rsdos: was flooring expiry time and incorrectly setting gap on interval boundaries. * Added packet, block, and short options to crl_info. * Fixed early stop when reading multiple tracefile interfaces (introduced in version 3.4.0). Version 3.4.0 (members: 2001-01-19) ------------- * Supports pcap traces on stdin with the name "pcap:-". * Supports system network interfaces with the prefix "if:". * Added support for DAG cards (ATM and PoS). * Added support for dagtools file format, making the dagtools "dagcrl" ultility obsolete. * Added support for protocols: Cisco HDLC (over POS) PPP (with PFC) (RFC 1661) PPP over POS (with ACFC) (RFC 1662, 2615) PPP over ATM (RFC 2364) PPP over Ethernet (RFC 2516) Bridged IEEE 802.3/Ethernet over PPP (RFC 1638) * Processing intervals can be specified in fractions of a second on the command line and via the C and perl APIs. * A Coral source on standard input can be gzip'd. * Error file name "-" means stdout. * Eliminated arbitrary limit on number of ATM VPVC's that can simultaneously be in AAL5 reassembly, and reduced memory use for cases where the number of VPVC's is small. * Added the "filter" coral command, to set a pcap filter on any "crl_*" application that operates on packets. * Can be told to search anywhere for extra libraries and include files during installation. Applications * Renamed crl_vpvc and crl_vpvc_layer2 to crl_rate and crl_rate_layer2. * Replaced crl_traffic2 with more flexible crl_flow. * Added crl_dnsstat for collecting statistics on DNS usage. (MEMBERS ONLY) * crl_info -d works on pcap files. * Changed output format of crl_traffic2 to allow for easier reading by CAIDA::Traffic2 libraries (see below). * Fixed crl_traffic2 to not look for layer 4 packet inside IPIP. * crl_print_pkt can print ICMP. * Fixed crl_rate (formerly crl_vpvc) to work on non-ATM links. Output changed slightly. * Added t2_aggregate which turns a tuple table into specified aggregate table type. * Removed t2_top10, use t2_aggregate -n 10 'src_IP_Table' instead. [in 3.5.0, use 't2_convert src_IP_Table | t2_top -n 10'] * coral_print_pkt prints IP and TCP options. libcoral * Added efficient BPF filtering in libcoral. * Improved performance of AAL5 reassembly. * coral_read_pkt() sets the protocol of pkt_result->header and pkt_result->trailer. * Pcap DLT_RAW is equivalent to CoralReef CORAL_NETPROTO_IP when converting to or from a a pcap trace. * Added subiface to coral_pkt_result_t. * Added coral_fprint_data(), coral_fprint_cell(), coral_fprint_pkt(). * Added coral_next_src_iface() to step through interfaces of a source. * Added coral_nth_cell() to find the nth ATM cell in a block. * Added coral_get_iface_stats() to get interval packet statistics for individual interfaces. * Fixed truncation of gigx payload when iomode != user. * Reorganized verbosity levels within libcoral. * Doesn't ignore SIGPIPE. * Added coral_fmt_if_subif() and coral_fmt_subif(). * Added layer 2 PDU counters (l2_recv and l2_drop) to coral_pkt_stats_t. * The coral_get_payload functions, when used on an IP packet that is not the first fragment, will set the payload's protocol to CORAL_PROTO_UNKNOWN. * The coral_get_payload functions can parse ICMP. * Fixed use of "-" as input file. * coral_pkt_to_pcap() skips any encapsulation understood by libcoral but not by libpcap and returns raw IP packet. * Timestamp is optional in coral_pkt_to_pcap(). * The result of coral_iface_to_pcapp() should not be freed by the caller. * Added coral_interface_get_physical(). * coral_fmt_get_payload() prints IP and TCP options. * Removed restriction against CORAL_OPT_SORT_TIME on devices. * Changed prototypes of coral_{pre,post}_interval_handler. perl libraries: * Added make_Proto_Table to CAIDA::Tables::Proto_Ports_Table * Created new modules in the CAIDA::Traffic2 namespace: FileReader, FileWriter, Interval, and SubinterfaceInfo. These are meant to replace Sample and Vpvc_data, and be more flexible, allowing reading and writing of crl_traffic2 'style' output (computer-formatted text or binary output, not human-readable format). * Default behavior when using any of CAIDA::Tables and running out of memory is no longer an abort and core dump, but instead is an error message and exit. (MEMBERS ONLY) * In CAIDA::Tables, renamed top_n_by_* functions to sort_by_*. Defaults to a descending sort (including sort_by_keys()), but can be changed with a second (boolean) argument to specify an ascending sort. * Added sort_by_counter_fields() to CAIDA::Tables as a generalized sort method, to phase out the deprecated sort_by_{pkts|bytes|flows}. * Changed ASFinder::get_as() and ASFinder::get_as_raw() to return the AS (only) when called in a scalar context, to avoid confusion. report generator (t2_report[++]): * Upon receipt of a HUP or USR1 signal, t2_report[++] will reread the configuration file, application ports file, and command line arguments. Note though that the ordering and sequence of initialization remain the same, so there is no way for a new configuration file to override items specified on the command line. To avoid this problem, avoid using the command line for more than minor adjustments. * Changed to use new CAIDA::Traffic2 reading modules (see above) instead of CAIDA::Traffic2::Sample. * Replaced the old calls to the Perl module GifGraph with routines that generate calls to GD::Graph. Updated those routines to create a separate legend so that more pie slices could be displayed. Added new configuration variables to control the pie charts. There is a configuration variable to enable the 3d appearance, but that feature is disabled due to a bug in GD:Graph. * Fixed setting to Nonblocking in netgeo so that it would only be set when netgeo is already active. * Patched the negative values that were being generated for the minimum other applications. The guess is that due to processing glitches, RRDtool is tricked into marking the overall traffic as 0, The applications however, do not undergo such glitches. As a result, the subtraction of the non-zero applications from the overall results in a negative number. Now values less than zero are simply set to 0. * Added support for timeseries graphing the top 'N' applications viewed by t2_report++ per sample interval. RRDtool is used for these plots and for the data storage. The number of applications to be shown is configurable via the configuration file. The applications that can be displayed are those specified in the configuration file (MEMBERS ONLY). * Fixed symlink from X_Y -> X:Y in rrd directory. * Fixed a missing conditional test for indexing the RRDtool graphs of applications. * Added support to disable tracking of Internet Application tracking as provided by the internetapps flag or -i (MEMBERS ONLY) * Removed the hardcoded RRDtool graphs intervals and replaced it with a configuration file option rrd_time_samples. The default intervals are: 1 hour, 1 day, 28 days, and 365 days. libhashtab: * Changed add_hash_entry() to return success (0) or failure (1). Version 3.3.2 (2000-08-17) ------------- * Fixed writing of files larger than 2 GiB (on systems that support it). * Fixed configuration test for perl version (for perl 5.6). * Avoids overflow at 2^31 in perl FlowCounter when using C++ backend, and thus in the t2_* applications. (MEMBERS ONLY) * Fixed reading of pcap files created on machines with different byte order. * Fixed inappropriate alteration of FORE clock after clock reset. drivers: * Fixed cell loss counter in POINT driver. * Recognizes Apptel POINT CPLD version 4.5. applications: * crl_filter aborts if filter expression is invalid. * Eliminated buggy -h option of crl_filter and crl_portmap. * Fixed fatal bug in crl_totsh. libcoral: * Fixed: if coral_pkt_atm_hook returned 0 on a 1-cell PDU and imode > 1 cell, the next PDU on that vp:vc would be incorrectly discarded. * Fixed: libcoral.h (caida_t.h) could incorrectly define SIZEOF_* macros to 0, interfering with user-written apps that used them. * Added "coral_" prefix to pkt_handler, pre_interval_handler, and post_interval_handler to minimize namespace pollution. CAIDA::Tables perl library: * Changed make_Country_byAS to use faster array lookups instead of individual lookups. report generator (t2_report[++]): * Changed t2_report to use faster array lookups in netgeo. Version 3.3.1 (2000-06-26) ------------- * Fixed bug in FATM driver which could cause it to stop returning data on some machines (introduced in 3.3.0). applications: * Fixed ports_script to correctly find installed ports file. * crl_print prints error message and ignores non-ATM sources instead of coring. * Fixed -i option of crl_cut. * Removed obsolete crl_toascii (use crl_print or crl_print_pkt instead). * Changed crl_traffic2 to store flow counts with 64 bit integers and to output data in 64 bit form. report generator (t2_report[++]): * Fixed undercounting of applications in t2_report++ which was a result of a bug in wildcard matching in AppPorts.pm. (MEMBERS ONLY) libcoral * coral_read_pkt() sets the protocol of pkt_result->header and pkt_result->trailer. * Pcap DLT_RAW is equivalent to CoralReef CORAL_NETPROTO_IP when converting to or from a a pcap trace. * Fixed truncation of GIGX payload when iomode != user. * Cell and block reading functions return error if sources are not ATM. * Fixed length of last interval when reading from a pcap file. perl libraries: * Changed to 64 bit integers in Tables save/load functions to match previous change to FlowCounter. applications: * Changed crl_traffic2 to store flow counts with 64 bit integers and to output data in 64 bit form. Version 3.3.0 (2000-05-23) ------------- * Fixed behavior of FATM driver when application doesn't keep up with the traffic: it reports lost cells, and gives the correct cell count when stopped. (In previous versions, incorrect cell counts could cause core dumps.) * Reported intervals now cover exactly the requested period of time, instead of including some "quiet" (trafficless) time. Applications that used intervals (like crl_traffic2) will now report different intervals than previous versions did for the same data, but the aggregate results will be the same. * When reading old tracefile formats that didn't store the capture time, CoralReef can extract capture time from the filename if it's there. * Fixed byte order of ATM headers when reading NLANR and MCI traces. (Incorrect headers caused incorrect vpvc's and discarding of some cells misinterpreted as OAM/RM data). * Fixed conversion of NLANR and MCI traces to current CoralReef file format. * crl_traffic2 does not use mmalloc by default, because it does not work on all systems. Use the --with-mmalloc option of configure to enable it. libcoral: * Duration is now handled by libcoral, so application programmers do not have to handle it (but existing applications that implement it themselves will not have any problem). * Fixed coral_stats() to report current information from driver. * timestamp parameter to pkt_handler prototype is now const. applications: * crl_encode doesn't discard partial blocks. * crl_hist.pl now uses crl_hist_helper instead of crl_portsummary. The new helper program's interface is specific to crl_hist.pl and may be changed in future releases. * Added support for ICMP and IGMP to crl_portsummary. The type and code/max response time values for these protocols are returned in the source and destination port columns, but otherwise the output format has not changed. * Modified t2_IPmatrix and t2_ASmatrix to use CAIDA::Tables instead of local hashes. They accept binary or text input (from crl_traffic2). * Added t2_Proto_Ports. This is another script for summarizing the output of crl_traffic2. * Added -b(ytes), -p(ackets), -f(lows) and -n(umber) options to t2_IPmatrix, t2_ASmatrix, and t2_Proto_Ports. The first three specify the method of sorting (default is just a sorted list of keys). -n specifies how many to output. For example, t2_IPmatrix -b -n 10 will show the top 10 IP matrices, ranked by bytes transferred. * Added -b (binary output) option to crl_traffic2, for use in piping directly to any programs that use the CAIDA::Tables. * Changed output format of crl_traffic2 to not include the cell loss, and thus changed the format version number. * Changed default prefix masklength on crl_traffic2 to be 32 instead of 16. perl libraries: * Added basic support for ICMP to Unpack.pm. The module now supports extraction of type, code, and ICMP checksum data. * Added CAIDA::CRL_report.pm, a new module for reading and writing text summaries output by crl_hist.pl and crl_bycountry.pl * Added get_as_raw() function to ASFinder for accessing binary IP addresses. * Updated Vpvc_data.pm to match the modified output of crl_traffic2. * Changed to 64 bit integers in FlowCounter's C backend to avoid overflow (C backend is MEMBERS ONLY). CAIDA::Tables perl library: * Changed parameters to make_*_Table() functions to accept a hash ref. * Added top_n_by_pkts(), top_n_by_flows(), and top_n_by_keys() * Increased efficiency for sorting many elements. (MEMBERS ONLY) * Added clear() function. * Added save_text(), save_binary(), load_text(), and load_binary(). All take open filehandles as an argument, and save or load tables. (C version (order of magnitude faster): MEMBERS ONLY) * Added make_AS_Table() function to IP_Table. * Added make_Country_Table() function to AS_Table. * Added make_IP_Matrix() and make_AS_Matrix() functions to Tuple_Table. * Added IP_Matrix and AS_Matrix, which have make_AS_Matrix() and make_Country_Matrix(), respectively, as member functions. * Added Country_Matrix. * Added Port_Table. * Added Port_Matrix. * Added make_src_Port_Table() and make_dst_Port_Table() to Tuple_Table, Proto_Ports_Table, and Port_Matrix. * Added make_Port_Matrix() to Tuple_Table and Proto_Ports_Table. * Allowed optional 'protocol' argument to make_src_Port_Table(), make_dst_Port_Table(), and make_Port_Matrix() (for Tuple_Table and Proto_Ports_Table, NOT Port_Matrix) to only aggregate those ports with a specific protocol. * Added make_src_IP_Table() and make_dst_IP_Table() to IP_Matrix. * Added FORCE_C and FORCE_PERL variables to ASFinder and Tables to allow user to specify the backend used in a new(). (MEMBERS ONLY) perl modules: * Created a new Perl module: AppPorts.pm which implements a modest rule-based system for matching application port and protocol number to application name. The module reads in a formatted ASCII text file with the rules and stores them sequentially. The current matching method is return the first matching rule. This allows for some limited flow of control by putting more specific rules before general rules. report generator (t2_report[++]): * t2_report++ is an expanded version of t2_report (MEMBERS ONLY) * Allowed setting of names for each vpvc shown in the top level vpvc summary. * Reports now show tables sorted by packets and flows (tuples) in addition to by bytes. Display has been modified to permit access to all output. * t2_report++ generates new tables indexed by application, unknown TCP ports, and unknown UDP ports. Application is determined by AppPorts.pm using protocol and port information. The default file for rules is ~/.Coral/t2_report.ports, and it can be overriden by the config file parameter AppPorts_rules. (MEMBERS ONLY) * t2_report[++] uses "C" back end for Application tables, ASFinder tables, and Country lookup tables. (MEMBERS ONLY) * Added timeseries graphs for applications as logged by Application ports supplied in t2_report.ports. Graphs are of the stacking bar type, and are accessed by a new list of items in the table menu of report links. * Removed debugging output of (now obsolete) cell loss counter. * Added a command line option -z or --zaptotals which disables the computation of total values for all VPVCs in the data stream. This is useful when the hardware running t2_report is not fast enough to keep up with the traffic2 stream. * Searches for configuration file in $prefix/Coral/etc first, then in the user's home directory. Settings in the user's personal config file override those in the global file. * Fixed report table headers so that the word "encoded" appears only when the IP data is actually encoded. * Fixed a bug that caused the IP encoding to not be applied to the flows display. * Added additional checking for the arguments to configuration settings. * Installed the file example_t2_report.conf in the $prefix/Coral/etc directory. * Fixed a bug that caused the colons between vp:vc pairs to be displayed in hexadecimal. * Fixed a documentation error that caused the configuration table and the command line options table to be omitted from the html format. * Restored the warning statement when t2_report[++] is run without encoding IP addresses. Version 3.2.3 (2000-02-23) ------------- * Fixed bug in CRL API involving cell accessor functions. * Fixed memory leak in *_Table code (Tables were never freed). (MEMBERS ONLY) * Created an App_Table for t2_report. * Fixed hardcoded perl path in building Tables. * Removed suppression of documentation for swigged files. (MEMBERS ONLY) applications: * Fixed handling of null encapsulated IP, and IP in more than one level of encapsulation. libcoral: * Replaced coral_iface_to_pcap() with coral_iface_to_pcapp(), so applications don't need . * Added coral_interface_get_bandwidth(). * Fixed CORAL_RESET bug in driver that appeared when libcoral was optimized. report generator (t2_report): * Added the UserGuide Perl module classes to handle providing diagnostic and usage messages in a modular fashion. The report generator now accepts the command line argument: --help or -h. To obtain a list of all the command line options use --help list. To get information on a particular option use --help