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[@cpus]>[<,lcores[@cpus]>...]' 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
Name | Command | Description | Default |
---|---|---|---|
Port Mask | -p PORT_MASK | A bit mask identifying which ports to bind. | 0x01 |
Burst Size | -b BURST_SIZE | Maximum number of packets to receive at one time. | 32 |
Receive Descriptors | -r NB_RX_DESC | The number of descriptors for each receive queue. Limited by the Ethernet device in use. | 1024 |
Transmission Ring Size | -x TX_RING_SIZE | The size of each transmission ring. This must be a power of 2. | 2048 |
Number Receive Queues | -q NB_RX_QUEUE | Number of receive queues to use for each port. Limited by the Ethernet device in use. | 2 |
Kafka Topic | -t KAFKA_TOPIC | The name of the Kafka topic. | pcap |
Configuration File | -c KAFKA_CONF | Path to a file containing configuration values. | |
Stats | -s KAFKA_STATS | Appends 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] metadata.broker.list = kafka-broker1:9092, kafka-broker2:9092
The configuration parameters that are important for either basic functioning or performance tuning of Fastcapa include the following.
Name | Description | Default |
---|---|---|
metadata.broker.list | Initial list of brokers as a CSV list of broker host or host:port | NA |
client.id | Client identifier | |
queue.buffering.max.messages | Maximum number of messages allowed on the producer queue | 100000 |
queue.buffering.max.ms | Maximum time, in milliseconds, for buffering data on the producer queue | 1000 |
message.copy.max.bytes | Maximum 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.messages | Maximum number of messages batched in one MessageSet | 10000 |
statistics.interval.ms | How often statistics are emitted; 0 = never | 0 |
compression.codec | Compression codec to use for compressing message sets: none, gzip, snappy, lz4 | none |
Local global configuration values under the [kafka-global]
header.
Locate topic configuration values under the [kafka-topic]
header.
Description | Default | |
---|---|---|
compression.codec | Compression codec to use for compressing message sets: none, gzip, snappy, lz4 | none |
request.required.acks | How 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.ms | Local 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.kbytes | Maximum total message size sum allowed on the producer queue | none |
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 therdkafka
queue