Changes between Version 1 and Version 2 of DAGNotes


Ignore:
Timestamp:
07/29/10 10:00:48 (11 years ago)
Author:
salcock
Comment:

Finish up the DAG notes page somewhat

Legend:

Unmodified
Added
Removed
Modified
  • DAGNotes

    v1 v2  
    22
    33This page describes the libtrace DAG support in much more detail. This is primarily intended to aid libtrace developers, but may be of some interest to users having difficulty getting their DAG card to work with libtrace.
     4
     5To build libtrace with DAG support, you will need to have the appropriate DAG libraries and drivers installed. This software is provided by [http://www.endace.com Endace] - it is NOT included with libtrace. You can still read and write ERF (the trace format used by DAG cards) without the DAG libraries, but live capture using the DAG hardware requires the DAG software.
    46
    57== DAG 2.4 vs DAG 2.5 ==
     
    810
    911format_dag24 uses the old DAG API from the 2.4.X DAG libraries.
     12The DAG 2.4 libraries are notoriously difficult to use compared with the DAG 2.5 and later libraries. For starters, just getting the DAG 2.4 code to compile on recent Linux kernels is an achievement.
    1013
    1114format_dag25 uses the newer API from the DAG libraries starting at version 2.5 onwards, including any version 3 libraries and apparently 4.0.0 as well.
     
    3639=== Detection Approach ===
    3740
    38 The following is the list of steps libtrace's DAG detection performs - if it is not performing as you'd expect, maybe this will help figure out what is going on!
     41The following is the list of steps libtrace's DAG detection performs - if it is not behaving as you'd expect, maybe this will help figure out what is going on!
    3942
    4043 * Perform a standard autoconf check for the existence of libdag. This will check the standard library locations (/usr/lib, /usr/local/lib, etc) as well as any locations specified using LDFLAGS.
    41  * If libdag is found, job done! Grab the version number and away we go.
     44 * If libdag is found, job done! Libtrace will build using the format_dag25 code.
    4245 * Otherwise, we assume no format_dag25-compatible libraries are present, but we still need to check for format_dag24.
    4346 * If the user gave us a value for --with-dag, set that directory to be "dag_root". Otherwise we'll use /usr/local/dag as our best guess for the location of the DAG source.
    44  * Search $dag_root/lib for libdag.a and $dag_root/include for dagapi.h - if both succeed, then we've found the libraries and headers we need.
    45  * We also check $dag_root for these files, in the event that there is no lib/ or include/ directories in $dag_root.
     47 * Search $dag_root/lib for libdag.a and $dag_root/include for dagapi.h. We also check $dag_root for these files, in the event that there is no lib/ or include/ directories in $dag_root.
     48 * If both files are found, libtrace will be built using the format_dag24 code.
     49 * If the files are not found but the user explicitly asked to build with DAG, throw an error. Otherwise, we will just build without DAG support.
    4650
    4751
    48 == DAG 2.4 details ==
    4952
    50 The DAG 2.4 libraries are notoriously difficult to use compared with the DAG 2.5 and later libraries. For starters, just getting the DAG 2.4 code to compile on recent Linux kernels is an achievement.