Also available as:
loading table of contents...
Environmental Abstraction Layer Parameters

The most commonly used EAL parameter involves specifying which logical CPU cores should be used for processing. This can be specified in any of the following ways:

  -c COREMASK         Hexadecimal bitmask of cores to run on
  -l CORELIST         List of cores to run on
                      The argument format is <c1>[-c2][,c3[-c4],...]
                      where c1, c2, etc are core indexes between 0 and 128
  --lcores COREMAP    Map lcore set to physical cpu set
                      The argument format is
                      lcores and cpus list are grouped by '(' and ')'
                      Within the group, '-' is used for range separator,
                      ',' is used for single number separator.
                      '( )' can be omitted for single element group,
                      '@' can be omitted if cpus and lcores have the same value                     

For more information about EAL parameters, run the following command:

fastcapa -h

Fastcapa-Core Parameters

Port Mask-p PORT_MASKA bit mask identifying which ports to bind.0x01
Burst Size-b BURST_SIZEMaximum number of packets to receive at one time.32
Receive Descriptors-r NB_RX_DESCThe number of descriptors for each receive queue. Limited by the Ethernet device in use.1024
Transmission Ring Size-x TX_RING_SIZEThe size of each transmission ring. This must be a power of 2.2048
Number Receive Queues-q NB_RX_QUEUENumber of receive queues to use for each port. Limited by the Ethernet device in use.2
Kafka Topic-t KAFKA_TOPICThe name of the Kafka topic.pcap
Configuration File-c KAFKA_CONFPath to a file containing configuration values. 
Stats-s KAFKA_STATSAppends performance metrics in the form of JSON strings to the specified file. 

For more information about Fastcapa-specific parameters, run the following command:.

fastcapa -- -h

Fastcapa-Kafka Configuration File

You specify the path to the configuration file with the -c command-line argument. The file can contain any global or topic-specific, producer-focused configuration values accepted by Librdkafka.

The configuration file is a .ini-like Glib configuration file. Place the global configuration values under a [kafka-global] header and place topic-specific values under [kafka-topic].

A minimally viable configuration file only needs to include the Kafka broker to connect to:

[kafka-global] = kafka-broker1:9092, kafka-broker2:9092

The configuration parameters that are important for either basic functioning or performance tuning of Fastcapa include the following.

NameDescriptionDefault list of brokers as a CSV list of broker host or host:portNA
client.idClient identifier 
queue.buffering.max.messagesMaximum number of messages allowed on the producer queue100000
queue.buffering.max.msMaximum time, in milliseconds, for buffering data on the producer queue1000
message.copy.max.bytesMaximum size for the message to be copied to buffer. Messages larger than this are passed by reference (zero-copy) at the expense of larger iovecs.65535
batch.num.messagesMaximum number of messages batched in one MessageSet10000
statistics.interval.msHow often statistics are emitted; 0 = never0
compression.codecCompression codec to use for compressing message sets: none, gzip, snappy, lz4none

Local global configuration values under the [kafka-global] header.

Locate topic configuration values under the [kafka-topic] header.

compression.codecCompression codec to use for compressing message sets: none, gzip, snappy, lz4none
request.required.acksHow many acknowledgements the leader broker must receive from ISR brokers before responding to the request; { 0 = no ack, 1 = leader ack, -1 = all ISRs }1
message.timeout.msLocal message timeout. This value is only enforced locally and limits the time a produced message waits for successful delivery. A value of 0 represents infinity.300000
queue.buffering.max.kbytesMaximum total message size sum allowed on the producer queuenone

Fastcapa Counters Output

When running the probe, some basic counters are output to stdout. During normal operation these values are much larger.

     ------ in ------  --- queued --- ----- out ----- ---- drops ----
[nic]               8               -               -               -
[rx]                8               0                8                0
[tx]                8               0                8                0
[kaf]               8               1                7                0
  • [nic] + in : The Ethernet device is reporting that it has seen eight packets.

  • [rx] + in : The receive workers have consumed eight packets from the device.

  • [rx] + out : The receive workers have enqueued 8 packets onto the transmission rings.

  • [rx] + drops : If the transmission rings become full, it prevents receive workers from enqueuing additional packets. The excess packets are dropped. This value never decreases.

  • [tx] + in : The transmission workers consumed 8 packets.

  • [tx] + out : The transmission workers packaged 8 packets into Kafka messages.

  • [tx] + drops : If the Kafka client library accepted fewer packets than expected. This value might change as additional packets are acknowledged by the Kafka client library

  • [kaf] + in : The Kafka client library received 8 packets.

  • [kaf] + out : A total of 7 packets successfully reached Kafka.

  • [kaf] + queued : There is 1 packet within the rdkafka queue