TRex JSON Template

Whenever TRex is publishing live data, it uses JSON notation to describe the data-object.

Each client may parse it differently, however this page will describe the values meaning when published by TRex server.

Main Fields

Each TRex server-published JSON object contains data divided to main fields under which the actual data lays.

These main fields are:

Main field

Contains

Comments

trex-global field

Must-have data on TRex run, mainly regarding Tx/Rx and packet drops

tx-gen field

Data indicate the quality of the transmit process. In case histogram is zero it means that all packets were injected in the right time.

trex-latecny field

Latency reports, containing latency data on generated data and on response traffic

  • Generated when latency test is enabled (l param)

  • typo on field key: will be fixed on next release

trex-latecny-v2 field

Extended latency information

Each of these fields contains keys for field general data (such as its name) and its actual data, which is always stored under the “data” key.

For example, in order to access some trex-global data, the access path would look like:

AllData -> trex-global -> data -> desired_info

Detailed explanation

trex-global field

Sub-key

Type

Meaning

m_cpu_util

float

CPU utilization (0-100)

m_platform_factor

float

multiplier factor

m_tx_bps

float

total tx bit per second

m_rx_bps

float

total rx bit per second

m_tx_pps

float

total tx packet per second

m_tx_cps

float

total tx connection per second

m_tx_expected_cps

float

expected tx connection per second

m_tx_expected_pps

float

expected tx packet per second

m_tx_expected_bps

float

expected tx bit per second

m_rx_drop_bps

float

drop rate in bit per second

m_active_flows

float

active trex flows

m_open_flows

float

open trex flows from startup (monotonically incrementing)

m_total_tx_pkts

int

total tx in packets

m_total_rx_pkts

int

total rx in packets

m_total_tx_bytes

int

total tx in bytes

m_total_rx_bytes

int

total rx in bytes

opackets-#

int

output packets (per interface)

obytes-#

int

output bytes (per interface)

ipackets-#

int

input packet (per interface)

ibytes-#

int

input bytes (per interface)

ierrors-#

int

input errors (per interface)

oerrors-#

int

input errors (per interface)

m_total_tx_bps-#

float

total transmitted data in bit per second

unknown

int

m_total_nat_learn_error 1

int

m_total_nat_active 2

int

m_total_nat_no_fid 2

int

m_total_nat_time_out 2

int

m_total_nat_open 2

int

tx-gen field

Sub-key

Type

Meaning

realtime-hist

dict

histogram of transmission. See extended information about histogram object under Histogram object fields. The attribute analyzed is time packet has been sent before/after it was intended to be

unknown

int

trex-latecny field

Sub-key

Type

Meaning

avg-#

float

average latency in usec (per interface)

max-#

float

max latency in usec from the test start (per interface)

c-max-#

float

max in the last 1 sec window (per interface)

error-#

float

errors in latency packets (per interface)

unknown

int

trex-latecny-v2 field

Sub-key

Type

Meaning

cpu_util

float

rx thread cpu % (this is not trex DP threads cpu%%)

port-#

dict

Containing per interface information. See extended information under port-# -> key_name -> sub_key

port-#->hist

dict

histogram of latency. See extended information about histogram object under Histogram object fields.

port-#->stats

dict

Containing per interface information. See extended information under port-# -> key_name -> sub_key

port-#->stats->m_tx_pkt_ok

int

total of try sent packets

port-#->stats->m_pkt_ok

int

total of packets sent from hardware

port-#->stats->m_no_magic

int

rx error with no magic

port-#->stats->m_no_id

int

rx errors with no id

port-#->stats->m_seq_error

int

error in seq number

port-#->stats->m_length_error

int

port-#->stats->m_rx_check

int

packets tested in rx

unknown

int

Histogram object fields

The histogram object is being used in number of place throughout the JSON object. The following section describes its fields in detail.

Sub-key

Type

Meaning

min_usec

int

min attribute value in usec. pkt with latency less than this value is not counted

max_usec

int

max attribute value in usec

high_cnt

int

how many packets on which its attribute > min_usec

cnt

int

total packets from test startup

s_avg

float

average value from test startup

histogram

array

histogram of relevant object by the following keys:
  • key: value in usec

  • val: number of packets

Access Examples

Footnotes

1

Available only in NAT and NAT learning operation (learn and learn-verify flags)

2(1,2,3,4)

Available only in NAT operation (learn flag)