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)