# 2.3.2. Frontend statistics indicators¶

The values are returned via `dtv_property.stat`. If the property is supported, `dtv_property.stat.len` is bigger than zero.

For most delivery systems, `dtv_property.stat.len` will be 1 if the stats is supported, and the properties will return a single value for each parameter.

It should be noted, however, that new OFDM delivery systems like ISDB can use different modulation types for each group of carriers. On such standards, up to 3 groups of statistics can be provided, and `dtv_property.stat.len` is updated to reflect the “global” metrics, plus one metric per each carrier group (called “layer” on ISDB).

So, in order to be consistent with other delivery systems, the first value at `dtv_property.stat.dtv_stats` array refers to the global metric. The other elements of the array represent each layer, starting from layer A(index 1), layer B (index 2) and so on.

The number of filled elements are stored at `dtv_property.stat.len`.

Each element of the `dtv_property.stat.dtv_stats` array consists on two elements:

• `svalue` or `uvalue`, where `svalue` is for signed values of the measure (dB measures) and `uvalue` is for unsigned values (counters, relative scale)
• `scale` - Scale for the value. It can be:
• `FE_SCALE_NOT_AVAILABLE` - The parameter is supported by the frontend, but it was not possible to collect it (could be a transitory or permanent condition)
• `FE_SCALE_DECIBEL` - parameter is a signed value, measured in 1/1000 dB
• `FE_SCALE_RELATIVE` - parameter is a unsigned value, where 0 means 0% and 65535 means 100%.
• `FE_SCALE_COUNTER` - parameter is a unsigned value that counts the occurrence of an event, like bit error, block error, or lapsed time.

## 2.3.2.1. DTV_STAT_SIGNAL_STRENGTH¶

Indicates the signal strength level at the analog part of the tuner or of the demod.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_DECIBEL` - signal strength is in 0.001 dBm units, power measured in miliwatts. This value is generally negative.
• `FE_SCALE_RELATIVE` - The frontend provides a 0% to 100% measurement for power (actually, 0 to 65535).

## 2.3.2.2. DTV_STAT_CNR¶

Indicates the Signal to Noise ratio for the main carrier.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_DECIBEL` - Signal/Noise ratio is in 0.001 dB units.
• `FE_SCALE_RELATIVE` - The frontend provides a 0% to 100% measurement for Signal/Noise (actually, 0 to 65535).

## 2.3.2.3. DTV_STAT_PRE_ERROR_BIT_COUNT¶

Measures the number of bit errors before the forward error correction (FEC) on the inner coding block (before Viterbi, LDPC or other inner code).

This measure is taken during the same interval as `DTV_STAT_PRE_TOTAL_BIT_COUNT`.

In order to get the BER (Bit Error Rate) measurement, it should be divided by DTV_STAT_PRE_TOTAL_BIT_COUNT.

This measurement is monotonically increased, as the frontend gets more bit count measurements. The frontend may reset it when a channel/transponder is tuned.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_COUNTER` - Number of error bits counted before the inner coding.

## 2.3.2.4. DTV_STAT_PRE_TOTAL_BIT_COUNT¶

Measures the amount of bits received before the inner code block, during the same period as DTV_STAT_PRE_ERROR_BIT_COUNT measurement was taken.

It should be noted that this measurement can be smaller than the total amount of bits on the transport stream, as the frontend may need to manually restart the measurement, losing some data between each measurement interval.

This measurement is monotonically increased, as the frontend gets more bit count measurements. The frontend may reset it when a channel/transponder is tuned.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_COUNTER` - Number of bits counted while measuring DTV_STAT_PRE_ERROR_BIT_COUNT.

## 2.3.2.5. DTV_STAT_POST_ERROR_BIT_COUNT¶

Measures the number of bit errors after the forward error correction (FEC) done by inner code block (after Viterbi, LDPC or other inner code).

This measure is taken during the same interval as `DTV_STAT_POST_TOTAL_BIT_COUNT`.

In order to get the BER (Bit Error Rate) measurement, it should be divided by DTV_STAT_POST_TOTAL_BIT_COUNT.

This measurement is monotonically increased, as the frontend gets more bit count measurements. The frontend may reset it when a channel/transponder is tuned.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_COUNTER` - Number of error bits counted after the inner coding.

## 2.3.2.6. DTV_STAT_POST_TOTAL_BIT_COUNT¶

Measures the amount of bits received after the inner coding, during the same period as DTV_STAT_POST_ERROR_BIT_COUNT measurement was taken.

It should be noted that this measurement can be smaller than the total amount of bits on the transport stream, as the frontend may need to manually restart the measurement, losing some data between each measurement interval.

This measurement is monotonically increased, as the frontend gets more bit count measurements. The frontend may reset it when a channel/transponder is tuned.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_COUNTER` - Number of bits counted while measuring DTV_STAT_POST_ERROR_BIT_COUNT.

## 2.3.2.7. DTV_STAT_ERROR_BLOCK_COUNT¶

Measures the number of block errors after the outer forward error correction coding (after Reed-Solomon or other outer code).

This measurement is monotonically increased, as the frontend gets more bit count measurements. The frontend may reset it when a channel/transponder is tuned.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_COUNTER` - Number of error blocks counted after the outer coding.

## 2.3.2.8. DTV-STAT_TOTAL_BLOCK_COUNT¶

Measures the total number of blocks received during the same period as DTV_STAT_ERROR_BLOCK_COUNT measurement was taken.

It can be used to calculate the PER indicator, by dividing DTV_STAT_ERROR_BLOCK_COUNT by DTV-STAT_TOTAL_BLOCK_COUNT.

Possible scales for this metric are:

• `FE_SCALE_NOT_AVAILABLE` - it failed to measure it, or the measurement was not complete yet.
• `FE_SCALE_COUNTER` - Number of blocks counted while measuring DTV_STAT_ERROR_BLOCK_COUNT.
{"ft_lang_label":"__label__en","ft_lang_prob":0.839071,"math_prob":0.93981296,"size":6538,"snap":"2022-05-2022-21","text_gpt3_token_len":1500,"char_repetition_ratio":0.15855525,"word_repetition_ratio":0.4495708,"special_character_ratio":0.21459162,"punctuation_ratio":0.14086956,"nsfw_num_words":0,"has_unicode_error":false,"math_prob_llama3":0.96013904,"pos_list":[0],"im_url_duplicate_count":[null],"WARC_HEADER":"{\"WARC-Type\":\"response\",\"WARC-Date\":\"2022-05-24T14:47:11Z\",\"WARC-Record-ID\":\"<urn:uuid:dddd4006-8714-4f0e-8161-c21dfd225608>\",\"Content-Length\":\"24108\",\"Content-Type\":\"application/http; msgtype=response\",\"WARC-Warcinfo-ID\":\"<urn:uuid:64921ed7-ae1c-4baa-b174-2ce11471b1f0>\",\"WARC-Concurrent-To\":\"<urn:uuid:e394eae1-f1de-49b5-980a-753c15f233cc>\",\"WARC-IP-Address\":\"139.178.84.217\",\"WARC-Target-URI\":\"https://www.kernel.org/doc/html/v4.15/media/uapi/dvb/frontend-stat-properties.html\",\"WARC-Payload-Digest\":\"sha1:VALMBBQQZOYPIPQXMYVCJKWZ4E65Z7FL\",\"WARC-Block-Digest\":\"sha1:W5AAD6K4QDBQEPE4UBD2GKO3WJVJP462\",\"WARC-Identified-Payload-Type\":\"text/html\",\"warc_filename\":\"/cc_download/warc_2022/CC-MAIN-2022-21/CC-MAIN-2022-21_segments_1652662573053.67_warc_CC-MAIN-20220524142617-20220524172617-00765.warc.gz\"}"}