felix-file2host - FELIX central data acquisition application

    Usage:
      felix-file2host [options --device=<device>... --cid=<cid>... --dma=<id>... --elink=DMAID:LID... --stream=DMAID:LID...] FILE

    General Options:
        --bus-dir=DIRECTORY          Write felix-bus information to this directory. [default: ./bus]
        --bus-groupname=NAME         Use this groupname for the bus. [default: FELIX]
        --cid=<cid>...               CID (Connector Ids) to set in FID (Felix ID). Can be used multiple times. [default: device]
        --did=<did>                  DID (Detector Id) to set in FID (Felix ID). [default: 0]
    -d, --device=<device>...         Use FLX device DEVICE. [default: 0]
        --error-out=<fifo>           Write error information to a UNIX FIFO
        --free-cmem                  Free previously booked cmem segment by name-<device>-<dma>
        --iface=<iface>              Send data to the interface. [calculated: use --ip value]
    -i, --ip=<ip>                    Publish data on the ip address IP. [default: libfabric:127.0.0.1]
    -b, --netio-pagesize=<size>      NetIO page size in Byte. [default: 65536]
    -B, --netio-pages=<size>         Number of NetIO pages. [default: 256]
        --is-monitoring              Sends monitoring data to "is"
        --prometheus-port=<port>     Sets Prometheus port and sends monitoring data to Prometheus
        --stats-out=<fifo>           Write periodic statistics data to a UNIX FIFO
        --stats-period=<ms>          Period in milliseconds for statistics dumps. [default: 1000]
    -?, --help                       Give this help list
    -v, --verbose                    Produce verbose output
        --verbose-bus                Produce verbose output for bus
    -V, --version                    Print program version
        --netio-type=<type>          Event loop type to use. [default: netio3] {netio3|netio-next}
        --daq-network-mode=<mode>    Network mode to use for DAQ. [default: RDMA] {RDMA|TCP}
        --dcs-network-mode=<mode>    Network mode to use for DCS. [default: TCP] {RDMA|TCP}
        --vid=N                      VID (Version Id) to set in FID (Felix ID) [default: 1]

    ToHost Options:
    -D, --dma=<id>                  Use DMA descriptor ID. [default: 0]
    -c, --cmem=SIZE                 CMEM buffer size in MB. [default: 512]
        --daq-unbuffered            DAQ unbuffered mode: zero-copy readout (max O(100) kHz rate per link, useful for >O(kB) messages)
    -T, --netio-timeout=SIZE        NetIO timeout in ms for DAQ traffic. [default: 2]
        --daq-send-blocks           Send entire blocks instead of decoded messages for DAQ data.
        --dcs-iface=IFACE           Use this network interface for DCS traffic. [calculated: use libfabric on main iface]
        --dcs-pages=SIZE            DCS Number of NetIO pages. [default: 64]
        --dcs-pagesize=SIZE         DCS NetIO page size in Byte. [default: 1024]
    -s, --dcs-port=PORT             Publish DCS data on port PORT. [calculated: 53500 + 10*device + dma]
        --dcs-size-limit=LIMIT      Truncate DCS messages when size is above LIMIT in bytes. Not applied to IC links [default: 65536]
        --dcs-timeout=SIZE          DCS NetIO timeout in ms. [default: 1]
        --dcs-unbuffered            DCS unbuffered mode.
        --dcs-send-blocks           Send entire blocks instead of decoded messages for DCS data.
    -l, --l1id-check=FORMAT         Check L1ID sequence. Formats: 1=TTC2H only, 2=LATOME, 3=FMEMU, 4=FELIG, 5=NSWVMM, 6=NSWTP.
                                    Slow for unbuffered DAQ. [default: 0]
    -M, --max-chunk-size=LIMIT      Maximum chunk size in Bytes for DAQ traffic. Larger chunks are truncated. [calculated from network page size]
    -p, --port=PORT                 Publish DAQ data on port PORT. [calculated: 53100 + 10*device + dma]
    -P, --poll-period=us            Polling instead of interrupt-driven readout with the given poll period in microseconds [default: 1000]
        --threads=THREADS           Number of threads per DMA to read DAQ links [default: 1]
        --ttc-netio-pages=SIZE      TTC Number of NetIO pages. [default: 64]
        --ttc-netio-pagesize=SIZE   TTC NetIO page size in Byte. [default: 1536]
        --ttc-netio-timeout=SIZE    TTC NetIO timeout in ms. Not necessary as TTC2H buffers are flushed at end-of-block. [default: 0]
    -t, --ttc-port=PORT              Publish TTC2H data on port PORT. [calculated: 53300 + 10*device + dma]
        --ttc-send-blocks           Send entire blocks instead of decoded messages for TTC data.

    File Options:
    -e, --elink=DMAID:LID ...       Enable e-link LID on DMAID e.g. 0:0x08 or 1:0x09.
        --no-of-elinks=N            Enable N additional elinks to the list passed with -e. [default: 0]
                                    Added sequentially wrt the last elink passed on same DMA id.
        --block-size=SIZE           ToHost block size, multiple of 1024. [default: 1024]
        --channels=SIZE             Number of links of emulated PCIe endpoint. [default: 12]
        --firmware=SIZE             Emulated firmware: GBT=0, FULL=1, LPGBT=9. [default: 0]
        --pcie-gen=VALUE            Used to determine FromHost data format. [default: 3]
        --file-is-fifo              Use a FIFO instead of a file. [default: 0]
        --regmap=hex_version        Register map version. [calculated: from compile definition of REGMAP_VERSION]
        --toflx-dma=VALUE           Last DMA id per PCIe endpoint, reserved for ToFlx [default: 5]
        --vmem                      Use virtual memory instead of cmem. [default: 0]

    FileToHost Options:
        --block-rate=RATE           Use to define the reading rate. [default: 0] (max.speed)
        --data-format=FMT           ToHost data format, 0(1) for subchunk trailer(headers). [default: 0]
        --no-repeat                 Do not repeat reading the file
    -u, --stream=ELINK ...          Enable elinks with streams, syntax DMAid:elink e.g. 0:0x08.

Report bugs to <https://its.cern.ch/jira/projects/FLXUSERS>.

