TRex realistic traffic generator
================================
:author: hhaim 
:email: <hhaim@cisco.com> 
:description: TRex Low cost, High scale, realistic traffic generator 
:revdate: 2014-11-01
:revnumber: 0.2
:deckjs_theme: swiss
:deckjs_transition: horizontal-slide
:scrollable:
:web_server_url: http://trex-tgn.cisco.com/trex


include::trex_ga.asciidoc[]


== What problem is being solved?

* Network elements include complex stateful features
* Require testing with stateful and real traffic mix
* Traffic generators of stateful/realistic traffic are:
** Expensive    ~$100-500K
** Not scalable for high rates 
** Not flexible 
* Due to cost, quality is impacted 
** Limited access / testing
** Late testing 
** No standard

++++++++++++++++++
<script type="text/javascript"
  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>

<script src="my_chart.js"></script>

<style>
.axis path,
.axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.dot {
  stroke: #000;
}
</style>


<style type="text/css">

h1 {
  font-size: 2.5em;
}

h2 {
  font-size: 1.5em;
  color: #CD7300;
  border-bottom-color: #000;
}

h7 {
  font-size: 4.5em;
  color: #CD7300;
  position: relative;
  top: auto;
  text-align: center;
  padding: 0;
  -webkit-transform: none;
  -moz-transform: none;
  -ms-transform: none;
  -o-transform: none;
  transform: none;
  padding: 0 48px;
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
}

h8 {
  font-size: 2.25em;
  font-weight: bold;
  padding-top: .5em;
  margin: 0 0 .66666em 0;
  border-top: 3px solid #888;
  color: #c00;
  border-top-color: #ccc;
  left: 0;
  right: 0;
  top: 40%;
}


html, body {
  height: 100%;
  margin:    0 auto;
  max-width: 1000px;
}

</style>

<script>
    $('#title-slide').css("background-image", "url('images/trex_logo.png')");
    $('#title-slide').css("background-repeat","no-repeat");
    $('#title-slide').css("background-position","center");
    $('h1').html('');
    $('h3').html('<font size="4">Hanoch Haim v1.2</font>');
    $('h4').html('<font size="4">04/2015</font>');
 </script>

++++++++++++++++++


== What is TRex?


* TRex is a *statefull* *traffic* *generator* tool based on a smart replay of real flows (not a full TCP/IP stack,yet) 
++++++++++++++++++
<img src="images/ucs200_2.png" alt="title=" align="right" >
++++++++++++++++++
* Generates, manipulates and amplifies based on templates of a real/captured flows. 
* Templates are processed offline 
* *High* *performance* full line rate
** tx= up to 200Gb/sec rx=up to 200Gb/sec
* *Low* *cost* C220M UCS-1RU, Cisco internal eqip 
* Generate both sides of the traffic Clients and Servers
* *Standard* *hardware* (X86/Intel NIC I350,82599,XL710)
++++++++++++++++++
<img src="images/Intel520.png" alt="title=" align="right" >
++++++++++++++++++
* Flexible and Open Software (DPDK)
* Support Virtualization  
* Virtual interface support *E1000* , *VMXNET3*. Enabler for  
** Amazon AWS 
** Cisco LaaS 

== Realistic traffic model 

++++++++++++++++++
<img src="images/trex_model.png" alt="title=" align="center" >
++++++++++++++++++

== TRex high level software architecture 

++++++++++++++++++
<img src="images/trex_desing.png" alt="title=" align="right" >
++++++++++++++++++

* *DPDK* 
** user space driver
** Big TLB 
** Utilize all DDR banks

* *Multi-Threaded*
** Scale linearly  
** ~20Gb/sec per DP core

* *No TCP-IP*
** Fast events scheduler
** Generate flows template
** Can support 1K templates 

* *Slow-path flexibility (per-flow)*
** Client/server generation
** Measure latency 
** Measure flow order
** NAT translation learning 

== TRex basic flows generation algorithm 

++++++++++++++++++
<img src="images/trex_algo.png" alt="title=" align="center" >
++++++++++++++++++

== DNS simple profile example

* traffic profile is in YAML fomat 

[source,python]
----
$more cap2/dns_test.yaml 
- duration : 10.0
  generator :  
          distribution : "seq"           
          clients_start : "16.0.0.1"     
          clients_end   : "16.0.0.255"   
          servers_start : "48.0.0.1"     
          servers_end   : "48.0.0.255"   
          dual_port_mask : "1.0.0.0" 
          tcp_aging      : 1
          udp_aging      : 1
  cap_info : 
     - name: cap2/dns.pcap               <1>
       cps : 1.0                         <2>
----
<1> the pcap file that include DNS cap file that will be replicate 
<2> how many connection per second to generate, 1.0 means 1 connection per secod 

image:images/dns_wireshark.png[title="generator"]

== DNS simple profile output

.Formated results
[format="csv",cols="1^,2^,1^,1^,2^,1^,2^,1^", options="header"]
|=================
 pkt,time sec,fid,flow-pkt-id,client_ip,client_port,server_ip ,direction
  1  , 0.010000 , 1 , 1 , 16.0.0.1 , 1024 , 48.0.0.1 , ->
 2  , 0.020000 , 1 , 2 , 16.0.0.1 , 1024 , 48.0.0.1 , <-
 3  , 2.010000 , 2 , 1 , 16.0.0.2 , 1024 , 48.0.0.2 , ->
 4  , 2.020000 , 2 , 2 , 16.0.0.2 , 1024 , 48.0.0.2 , <-
 5  , 3.010000 , 3 , 1 , 16.0.0.3 , 1024 , 48.0.0.3 , ->
 6  , 3.020000 , 3 , 2 , 16.0.0.3 , 1024 , 48.0.0.3 , <-
 7  , 4.010000 , 4 , 1 , 16.0.0.4 , 1024 , 48.0.0.4 , ->
 8  , 4.020000 , 4 , 2 , 16.0.0.4 , 1024 , 48.0.0.4 , <-
 9  , 5.010000 , 5 , 1 , 16.0.0.5 , 1024 , 48.0.0.5 , ->
 10  , 5.020000 , 5 , 2 , 16.0.0.5 , 1024 , 48.0.0.5 , <-
 11  , 6.010000 , 6 , 1 , 16.0.0.6 , 1024 , 48.0.0.6 , ->
|=================

== DNS simple profile chart 


+++++++++++++++++++++++++++++++++
<div id="chart1"  style="font : 10px sans-serif"; ></div>

<script> 
var dns_data=[
[ 0.010000 , 1 , 0 , 1 ],
[ 0.060000 , 1 , 0 , 2 ],
[ 0.210000 , 2 , 0 , 1 ],
[ 0.260000 , 2 , 0 , 2 ],
[ 0.310000 , 3 , 0 , 1 ],
[ 0.360000 , 3 , 0 , 2 ],
[ 0.410000 , 4 , 0 , 1 ],
[ 0.460000 , 4 , 0 , 2 ],
[ 0.510000 , 5 , 0 , 1 ],
[ 0.560000 , 5 , 0 , 2 ],
[ 0.610000 , 6 , 0 , 1 ],
[ 0.660000 , 6 , 0 , 2 ],
[ 0.710000 , 7 , 0 , 1 ],
[ 0.760000 , 7 , 0 , 2 ],
[ 0.810000 , 8 , 0 , 1 ],
[ 0.860000 , 8 , 0 , 2 ],
[ 0.910000 , 9 , 0 , 1 ],
[ 0.960000 , 9 , 0 , 2 ],
[ 1.010000 , 10 , 0 , 1 ],
[ 1.060000 , 10 , 0 , 2 ],
];
chart("#chart1",dns_data,["dns"],"time-sec","flow-id");
</script>

+++++++++++++++++++++++++++++++++

== HTTP & DNS profile example

[source,python]
----
- duration : 1.0
  generator :  
          distribution : "seq"
          clients_start : "16.0.0.1"    
          clients_end   : "16.0.0.10"
          servers_start : "48.0.0.1"
          servers_end   : "48.0.0.3"
          dual_port_mask : "1.0.0.0" 
          tcp_aging      : 1
          udp_aging      : 1
  cap_ipg    : true        
  cap_info : 
     - name: cap2/dns.pcap
       cps : 10.0                        <1>
     - name: avl/delay_10_http_browsing_0.pcap
       cps : 2.0                         <1>
----
<1> Diffrent CPS  

* Inter packet Gap (IPG) is taken from pcap file 
* IPG can be manualy set  

== HTTP & DNS profile chart

+++++++++++++++++++++++++++++++++
<div id="chart3"  style="font : 10px sans-serif"; ></div>

<script> 
var chart3_data=[
[ 0.010000 , 1 , 0 , 1 ],
[ 0.030944 , 1 , 0 , 2 ],
[ 0.093333 , 2 , 1 , 1 ],
[ 0.104362 , 2 , 1 , 2 ],
[ 0.115385 , 2 , 1 , 3 ],
[ 0.115394 , 2 , 1 , 4 ],
[ 0.126471 , 2 , 1 , 5 ],
[ 0.126484 , 2 , 1 , 6 ],
[ 0.137530 , 2 , 1 , 7 ],
[ 0.148609 , 2 , 1 , 8 ],
[ 0.148621 , 2 , 1 , 9 ],
[ 0.148635 , 2 , 1 , 10 ],
[ 0.159663 , 2 , 1 , 11 ],
[ 0.170750 , 2 , 1 , 12 ],
[ 0.170762 , 2 , 1 , 13 ],
[ 0.170774 , 2 , 1 , 14 ],
[ 0.176667 , 3 , 0 , 1 ],
[ 0.181805 , 2 , 1 , 15 ],
[ 0.181815 , 2 , 1 , 16 ],
[ 0.192889 , 2 , 1 , 17 ],
[ 0.192902 , 2 , 1 , 18 ],
[ 0.192914 , 2 , 1 , 19 ],
[ 0.192927 , 2 , 1 , 20 ],
[ 0.192939 , 2 , 1 , 21 ],
[ 0.192951 , 2 , 1 , 22 ],
[ 0.197611 , 3 , 0 , 2 ],
[ 0.203944 , 2 , 1 , 23 ],
[ 0.203950 , 2 , 1 , 24 ],
[ 0.203956 , 2 , 1 , 25 ],
[ 0.214620 , 2 , 1 , 26 ],
[ 0.214633 , 2 , 1 , 27 ],
[ 0.214645 , 2 , 1 , 28 ],
[ 0.214658 , 2 , 1 , 29 ],
[ 0.214671 , 2 , 1 , 30 ],
[ 0.214682 , 2 , 1 , 31 ],
[ 0.214695 , 2 , 1 , 32 ],
[ 0.214707 , 2 , 1 , 33 ],
[ 0.225264 , 2 , 1 , 34 ],
[ 0.225269 , 2 , 1 , 35 ],
[ 0.225274 , 2 , 1 , 36 ],
[ 0.225279 , 2 , 1 , 37 ],
[ 0.260000 , 4 , 0 , 1 ],
[ 0.280944 , 4 , 0 , 2 ],
[ 0.343333 , 5 , 0 , 1 ],
[ 0.364277 , 5 , 0 , 2 ],
[ 0.426667 , 6 , 0 , 1 ],
[ 0.447611 , 6 , 0 , 2 ],
[ 0.593333 , 7 , 0 , 1 ],
[ 0.614277 , 7 , 0 , 2 ],
[ 0.676667 , 8 , 1 , 1 ],
[ 0.687696 , 8 , 1 , 2 ],
[ 0.698719 , 8 , 1 , 3 ],
[ 0.698728 , 8 , 1 , 4 ],
[ 0.709805 , 8 , 1 , 5 ],
[ 0.709818 , 8 , 1 , 6 ],
[ 0.720864 , 8 , 1 , 7 ],
[ 0.731943 , 8 , 1 , 8 ],
[ 0.731955 , 8 , 1 , 9 ],
[ 0.731968 , 8 , 1 , 10 ],
[ 0.742997 , 8 , 1 , 11 ],
[ 0.754084 , 8 , 1 , 12 ],
[ 0.754096 , 8 , 1 , 13 ],
[ 0.754108 , 8 , 1 , 14 ],
[ 0.760000 , 9 , 0 , 1 ],
[ 0.765139 , 8 , 1 , 15 ],
[ 0.765148 , 8 , 1 , 16 ],
[ 0.776223 , 8 , 1 , 17 ],
[ 0.776236 , 8 , 1 , 18 ],
[ 0.776248 , 8 , 1 , 19 ],
[ 0.776261 , 8 , 1 , 20 ],
[ 0.776273 , 8 , 1 , 21 ],
[ 0.776285 , 8 , 1 , 22 ],
[ 0.780944 , 9 , 0 , 2 ],
[ 0.787278 , 8 , 1 , 23 ],
[ 0.787284 , 8 , 1 , 24 ],
[ 0.787289 , 8 , 1 , 25 ],
[ 0.797954 , 8 , 1 , 26 ],
[ 0.797967 , 8 , 1 , 27 ],
[ 0.797979 , 8 , 1 , 28 ],
[ 0.797992 , 8 , 1 , 29 ],
[ 0.798004 , 8 , 1 , 30 ],
[ 0.798016 , 8 , 1 , 31 ],
[ 0.798029 , 8 , 1 , 32 ],
[ 0.798041 , 8 , 1 , 33 ],
[ 0.808598 , 8 , 1 , 34 ],
[ 0.808603 , 8 , 1 , 35 ],
[ 0.808608 , 8 , 1 , 36 ],
[ 0.808613 , 8 , 1 , 37 ],
[ 0.843333 , 10 , 0 , 1 ],
[ 0.864277 , 10 , 0 , 2 ],
[ 0.926667 , 11 , 0 , 1 ],
[ 0.947611 , 11 , 0 , 2 ],
[ 1.010000 , 12 , 0 , 1 ],
[ 1.030944 , 12 , 0 , 2 ],
];
chart("#chart3",chart3_data,["dns","http"],"time-sec","flow-id");
</script>
+++++++++++++++++++++++++++++++++

== EMIX traffic profile 

++++++++++++++++++
<img src="images/trex_sfr_profile.png" alt="title=" align="right" >
++++++++++++++++++

* EMIX traffic profile suggested. used for NBAR/AVC tests
* Property 
** BW: 70% TCP (http, mail) , 30% UDP (rtp)
** Connections: 50% TCP (http, mail) , 50% UDP (rtp, dns) 
** Avg. Packet Size (~585B)
** PPS= 221K per 1Gb/sec
** CPS = 4K per 1Gb/sec
** Flows per 1Gb/sec = 50K
** Avg. Packets per flow (50)

== EMIX YAML profile 

.Simplified version of EMIX YAML profile
[source,python]
----
- duration : 0.1
  generator :  
          distribution : "seq"
          clients_start : "16.0.0.1"
          clients_end   : "16.0.1.255"
          servers_start : "48.0.0.1"
          servers_end   : "48.0.20.255"
          dual_port_mask : "1.0.0.0" 
  cap_ipg    : true
  cap_info : 
     - name: avl/delay_10_http_get_0.pcap
       cps : 404.52
     - name: avl/delay_10_http_post_0.pcap
       cps : 404.52
     - name: avl/delay_10_https_0.pcap
       cps : 130.8745
     - name: avl/delay_10_http_browsing_0.pcap
       cps : 709.89
     - name: avl/delay_10_exchange_0.pcap
       cps : 253.81
     - name: avl/delay_10_mail_pop_2.pcap
       cps : 4.759
     - name: avl/delay_10_oracle_0.pcap
       cps : 79.3178
     - name: avl/delay_10_rtp_160k_full.pcap
       cps : 2.776
     - name: avl/delay_10_smtp_0.pcap
       cps : 7.3369
     - name: avl/delay_10_sip_video_call_full.pcap
       cps : 29.347
     - name: avl/delay_10_citrix_0.pcap
       cps : 43.6248
     - name: avl/delay_10_dns_0.pcap
       cps : 1975.015
----

== EMIX profile chart

+++++++++++++++++++++++++++++++++
<div id="chart4"  style="font : 10px sans-serif"; ></div>

<script> 

var sfr_data=[
[ 0.010000 , 1 , 0 , 1 ],
[ 0.010245 , 2 , 1 , 1 ],
[ 0.010490 , 3 , 2 , 1 ],
[ 0.010735 , 4 , 3 , 1 ],
[ 0.010979 , 5 , 4 , 1 ],
[ 0.011224 , 6 , 5 , 1 ],
[ 0.011469 , 7 , 6 , 1 ],
[ 0.011714 , 8 , 7 , 1 ],
[ 0.011959 , 9 , 8 , 1 ],
[ 0.012204 , 10 , 9 , 1 ],
[ 0.012449 , 11 , 10 , 1 ],
[ 0.012694 , 12 , 11 , 1 ],
[ 0.012938 , 13 , 12 , 1 ],
[ 0.013183 , 14 , 13 , 1 ],
[ 0.013428 , 15 , 14 , 1 ],
[ 0.013673 , 16 , 15 , 1 ],
[ 0.013918 , 17 , 16 , 1 ],
[ 0.014163 , 18 , 17 , 1 ],
[ 0.014408 , 19 , 0 , 1 ],
[ 0.014652 , 20 , 1 , 1 ],
[ 0.014897 , 21 , 3 , 1 ],
[ 0.015142 , 22 , 4 , 1 ],
[ 0.015387 , 23 , 17 , 1 ],
[ 0.015632 , 24 , 0 , 1 ],
[ 0.015877 , 25 , 1 , 1 ],
[ 0.016122 , 26 , 3 , 1 ],
[ 0.016367 , 27 , 17 , 1 ],
[ 0.016611 , 28 , 3 , 1 ],
[ 0.016856 , 29 , 17 , 1 ],
[ 0.017101 , 30 , 3 , 1 ],
[ 0.017346 , 31 , 17 , 1 ],
[ 0.017591 , 32 , 0 , 1 ],
[ 0.017836 , 33 , 1 , 1 ],
[ 0.018081 , 34 , 3 , 1 ],
[ 0.018325 , 35 , 17 , 1 ],
[ 0.018456 , 15 , 14 , 2 ],
[ 0.018570 , 36 , 2 , 1 ],
[ 0.018815 , 37 , 17 , 1 ],
[ 0.019060 , 38 , 4 , 1 ],
[ 0.019305 , 39 , 17 , 1 ],
[ 0.019550 , 40 , 3 , 1 ],
[ 0.019795 , 41 , 17 , 1 ],
[ 0.021137 , 1 , 0 , 2 ],
[ 0.021294 , 2 , 1 , 2 ],
[ 0.021534 , 3 , 2 , 2 ],
[ 0.021764 , 4 , 3 , 2 ],
[ 0.022007 , 5 , 4 , 2 ],
[ 0.022251 , 6 , 5 , 2 ],
[ 0.022505 , 7 , 6 , 2 ],
[ 0.022768 , 8 , 7 , 2 ],
[ 0.022989 , 9 , 8 , 2 ],
[ 0.023245 , 10 , 9 , 2 ],
[ 0.023490 , 11 , 10 , 2 ],
[ 0.023747 , 12 , 11 , 2 ],
[ 0.023963 , 13 , 12 , 2 ],
[ 0.024212 , 14 , 13 , 2 ],
[ 0.024972 , 17 , 16 , 2 ],
[ 0.025262 , 18 , 17 , 2 ],
[ 0.025545 , 19 , 0 , 2 ],
[ 0.025701 , 20 , 1 , 2 ],
[ 0.025926 , 21 , 3 , 2 ],
[ 0.026169 , 22 , 4 , 2 ],
[ 0.026486 , 23 , 17 , 2 ],
[ 0.026769 , 24 , 0 , 2 ],
[ 0.026926 , 25 , 1 , 2 ],
[ 0.027151 , 26 , 3 , 2 ],
[ 0.027465 , 27 , 17 , 2 ],
[ 0.027640 , 28 , 3 , 2 ],
[ 0.027955 , 29 , 17 , 2 ],
[ 0.028130 , 30 , 3 , 2 ],
[ 0.028445 , 31 , 17 , 2 ],
[ 0.028728 , 32 , 0 , 2 ],
[ 0.028885 , 33 , 1 , 2 ],
[ 0.029110 , 34 , 3 , 2 ],
[ 0.029424 , 35 , 17 , 2 ],
[ 0.029614 , 36 , 2 , 2 ],
[ 0.029914 , 37 , 17 , 2 ],
[ 0.030087 , 38 , 4 , 2 ],
[ 0.030404 , 39 , 17 , 2 ],
[ 0.030579 , 40 , 3 , 2 ],
[ 0.030894 , 41 , 17 , 2 ],
[ 0.032188 , 1 , 0 , 3 ],
[ 0.032197 , 1 , 0 , 4 ],
[ 0.032341 , 2 , 1 , 3 ],
[ 0.032367 , 2 , 1 , 4 ],
[ 0.032379 , 2 , 1 , 5 ],
[ 0.032576 , 3 , 2 , 3 ],
[ 0.032583 , 3 , 2 , 4 ],
[ 0.032787 , 4 , 3 , 3 ],
[ 0.032796 , 4 , 3 , 4 ],
[ 0.032931 , 16 , 15 , 2 ],
[ 0.033031 , 5 , 4 , 3 ],
[ 0.033052 , 5 , 4 , 4 ],
[ 0.033065 , 5 , 4 , 5 ],
[ 0.033272 , 6 , 5 , 3 ],
[ 0.033460 , 15 , 14 , 3 ],
[ 0.033527 , 7 , 6 , 3 ],
[ 0.033802 , 8 , 7 , 3 ],
[ 0.034029 , 9 , 8 , 3 ],
[ 0.034280 , 10 , 9 , 3 ],
[ 0.034288 , 10 , 9 , 4 ],
[ 0.034525 , 11 , 10 , 3 ],
[ 0.034533 , 11 , 10 , 4 ],
[ 0.034797 , 12 , 11 , 3 ],
[ 0.034989 , 13 , 12 , 3 ],
[ 0.035271 , 14 , 13 , 3 ],
[ 0.036008 , 17 , 16 , 3 ],
[ 0.036442 , 16 , 15 , 3 ],
[ 0.036596 , 19 , 0 , 3 ],
[ 0.036605 , 19 , 0 , 4 ],
[ 0.036749 , 20 , 1 , 3 ],
[ 0.036775 , 20 , 1 , 4 ],
[ 0.036787 , 20 , 1 , 5 ],
[ 0.036949 , 21 , 3 , 3 ],
[ 0.036958 , 21 , 3 , 4 ],
[ 0.037193 , 22 , 4 , 3 ],
[ 0.037215 , 22 , 4 , 4 ],
[ 0.037227 , 22 , 4 , 5 ],
[ 0.037820 , 24 , 0 , 3 ],
[ 0.037829 , 24 , 0 , 4 ],
[ 0.037973 , 25 , 1 , 3 ],
[ 0.037999 , 25 , 1 , 4 ],
[ 0.038011 , 25 , 1 , 5 ],
[ 0.038174 , 26 , 3 , 3 ],
[ 0.038183 , 26 , 3 , 4 ],
[ 0.038663 , 28 , 3 , 3 ],
[ 0.038672 , 28 , 3 , 4 ],
[ 0.039153 , 30 , 3 , 3 ],
[ 0.039162 , 30 , 3 , 4 ],
[ 0.039779 , 32 , 0 , 3 ],
[ 0.039788 , 32 , 0 , 4 ],
[ 0.039932 , 33 , 1 , 3 ],
[ 0.039958 , 33 , 1 , 4 ],
[ 0.039970 , 33 , 1 , 5 ],
[ 0.040133 , 34 , 3 , 3 ],
[ 0.040142 , 34 , 3 , 4 ],
[ 0.040656 , 36 , 2 , 3 ],
[ 0.040663 , 36 , 2 , 4 ],
[ 0.041111 , 38 , 4 , 3 ],
[ 0.041133 , 38 , 4 , 4 ],
[ 0.041145 , 38 , 4 , 5 ],
[ 0.041602 , 40 , 3 , 3 ],
[ 0.041611 , 40 , 3 , 4 ],
[ 0.043401 , 2 , 1 , 6 ],
[ 0.043434 , 1 , 0 , 5 ],
[ 0.043447 , 1 , 0 , 6 ],
[ 0.043815 , 3 , 2 , 5 ],
[ 0.043873 , 4 , 3 , 5 ],
[ 0.043886 , 4 , 3 , 6 ],
[ 0.044082 , 6 , 5 , 4 ],
[ 0.044570 , 7 , 6 , 4 ],
[ 0.044831 , 8 , 7 , 4 ],
[ 0.045090 , 5 , 4 , 6 ],
[ 0.045449 , 10 , 9 , 5 ],
[ 0.045694 , 11 , 10 , 5 ],
[ 0.045839 , 12 , 11 , 4 ],
[ 0.045998 , 9 , 8 , 4 ],
[ 0.046032 , 13 , 12 , 4 ],
[ 0.046300 , 14 , 13 , 4 ],
[ 0.046705 , 16 , 15 , 4 ],
[ 0.047031 , 17 , 16 , 4 ],
[ 0.047809 , 20 , 1 , 6 ],
[ 0.047842 , 19 , 0 , 5 ],
[ 0.047854 , 19 , 0 , 6 ],
[ 0.048035 , 21 , 3 , 5 ],
[ 0.048048 , 21 , 3 , 6 ],
[ 0.049033 , 25 , 1 , 6 ],
[ 0.049066 , 24 , 0 , 5 ],
[ 0.049079 , 24 , 0 , 6 ],
[ 0.049253 , 22 , 4 , 6 ],
[ 0.049260 , 26 , 3 , 5 ],
[ 0.049273 , 26 , 3 , 6 ],
[ 0.049749 , 28 , 3 , 5 ],
[ 0.049763 , 28 , 3 , 6 ],
[ 0.050239 , 30 , 3 , 5 ],
[ 0.050252 , 30 , 3 , 6 ],
[ 0.050992 , 33 , 1 , 6 ],
[ 0.051025 , 32 , 0 , 5 ],
[ 0.051038 , 32 , 0 , 6 ],
[ 0.051219 , 34 , 3 , 5 ],
[ 0.051232 , 34 , 3 , 6 ],
[ 0.051895 , 36 , 2 , 5 ],
[ 0.052688 , 40 , 3 , 5 ],
[ 0.052701 , 40 , 3 , 6 ],
[ 0.053171 , 38 , 4 , 6 ],
[ 0.054470 , 2 , 1 , 7 ],
[ 0.054487 , 2 , 1 , 8 ],
[ 0.054500 , 2 , 1 , 9 ],
[ 0.054521 , 1 , 0 , 7 ],
[ 0.054932 , 4 , 3 , 7 ],
[ 0.055104 , 6 , 5 , 5 ],
[ 0.055245 , 3 , 2 , 6 ],
[ 0.055432 , 8 , 7 , 5 ],
[ 0.055610 , 7 , 6 , 5 ],
[ 0.056678 , 10 , 9 , 6 ],
[ 0.056889 , 12 , 11 , 5 ],
[ 0.056923 , 11 , 10 , 6 ],
[ 0.057032 , 9 , 8 , 5 ],
[ 0.057064 , 13 , 12 , 5 ],
[ 0.057126 , 5 , 4 , 7 ],
[ 0.057323 , 14 , 13 , 5 ],
[ 0.058054 , 17 , 16 , 5 ],
[ 0.058877 , 20 , 1 , 7 ],
[ 0.058895 , 20 , 1 , 8 ],
[ 0.058907 , 20 , 1 , 9 ],
[ 0.058928 , 19 , 0 , 7 ],
[ 0.059094 , 21 , 3 , 7 ],
[ 0.060102 , 25 , 1 , 7 ],
[ 0.060119 , 25 , 1 , 8 ],
[ 0.060132 , 25 , 1 , 9 ],
[ 0.060153 , 24 , 0 , 7 ],
[ 0.060319 , 26 , 3 , 7 ],
[ 0.060372 , 16 , 15 , 5 ],
[ 0.060808 , 28 , 3 , 7 ],
[ 0.061288 , 22 , 4 , 7 ],
[ 0.061298 , 30 , 3 , 7 ],
[ 0.062061 , 33 , 1 , 7 ],
[ 0.062078 , 33 , 1 , 8 ],
[ 0.062091 , 33 , 1 , 9 ],
[ 0.062112 , 32 , 0 , 7 ],
[ 0.062278 , 34 , 3 , 7 ],
[ 0.063325 , 36 , 2 , 6 ],
[ 0.063747 , 40 , 3 , 7 ],
[ 0.065206 , 38 , 4 , 7 ],
[ 0.065542 , 2 , 1 , 10 ],
[ 0.065601 , 1 , 0 , 8 ],
[ 0.065614 , 1 , 0 , 9 ],
[ 0.065626 , 1 , 0 , 10 ],
[ 0.066011 , 4 , 3 , 8 ],
[ 0.066023 , 4 , 3 , 9 ],
[ 0.066036 , 4 , 3 , 10 ],
[ 0.066140 , 6 , 5 , 6 ],
[ 0.066484 , 8 , 7 , 6 ],
[ 0.066651 , 7 , 6 , 6 ],
[ 0.066656 , 3 , 2 , 7 ],
[ 0.067815 , 10 , 9 , 7 ],
[ 0.067928 , 12 , 11 , 6 ],
[ 0.068060 , 11 , 10 , 7 ],
[ 0.068094 , 13 , 12 , 6 ],
[ 0.068149 , 14 , 13 , 6 ],
[ 0.068160 , 5 , 4 , 8 ],
[ 0.068463 , 15 , 14 , 4 ],
[ 0.069950 , 20 , 1 , 10 ],
[ 0.070008 , 19 , 0 , 8 ],
[ 0.070022 , 19 , 0 , 9 ],
[ 0.070034 , 19 , 0 , 10 ],
[ 0.070173 , 21 , 3 , 8 ],
[ 0.070185 , 21 , 3 , 9 ],
[ 0.070199 , 21 , 3 , 10 ],
[ 0.071174 , 25 , 1 , 10 ],
[ 0.071233 , 24 , 0 , 8 ],
[ 0.071246 , 24 , 0 , 9 ],
[ 0.071258 , 24 , 0 , 10 ],
[ 0.071398 , 26 , 3 , 8 ],
[ 0.071410 , 26 , 3 , 9 ],
[ 0.071423 , 26 , 3 , 10 ],
[ 0.071888 , 28 , 3 , 8 ],
[ 0.071899 , 28 , 3 , 9 ],
[ 0.071913 , 28 , 3 , 10 ],
[ 0.072091 , 17 , 16 , 6 ],
[ 0.072322 , 22 , 4 , 8 ],
[ 0.072377 , 30 , 3 , 8 ],
[ 0.072389 , 30 , 3 , 9 ],
[ 0.072402 , 30 , 3 , 10 ],
[ 0.073133 , 33 , 1 , 10 ],
[ 0.073192 , 32 , 0 , 8 ],
[ 0.073205 , 32 , 0 , 9 ],
[ 0.073217 , 32 , 0 , 10 ],
[ 0.073357 , 34 , 3 , 8 ],
[ 0.073369 , 34 , 3 , 9 ],
[ 0.073382 , 34 , 3 , 10 ],
[ 0.074736 , 36 , 2 , 7 ],
[ 0.074826 , 40 , 3 , 8 ],
[ 0.074838 , 40 , 3 , 9 ],
[ 0.074851 , 40 , 3 , 10 ],
[ 0.076240 , 38 , 4 , 8 ],
[ 0.076607 , 2 , 1 , 11 ],
[ 0.076621 , 2 , 1 , 12 ],
[ 0.076633 , 2 , 1 , 13 ],
[ 0.076661 , 1 , 0 , 11 ],
[ 0.077065 , 4 , 3 , 11 ],
[ 0.077162 , 6 , 5 , 7 ],
[ 0.077509 , 8 , 7 , 7 ],
[ 0.077678 , 7 , 6 , 7 ],
[ 0.077745 , 3 , 2 , 8 ],
[ 0.078888 , 10 , 9 , 8 ],
[ 0.078959 , 12 , 11 , 7 ],
[ 0.079126 , 13 , 12 , 7 ],
[ 0.079133 , 11 , 10 , 8 ],
[ 0.079189 , 14 , 13 , 7 ],
[ 0.079212 , 5 , 4 , 9 ],
[ 0.081015 , 20 , 1 , 11 ],
[ 0.081028 , 20 , 1 , 12 ],
[ 0.081041 , 20 , 1 , 13 ],
[ 0.081068 , 19 , 0 , 11 ],
[ 0.081227 , 21 , 3 , 11 ],
[ 0.082239 , 25 , 1 , 11 ],
[ 0.082253 , 25 , 1 , 12 ],
[ 0.082265 , 25 , 1 , 13 ],
[ 0.082293 , 24 , 0 , 11 ],
[ 0.082452 , 26 , 3 , 11 ],
[ 0.082941 , 28 , 3 , 11 ],
[ 0.083374 , 22 , 4 , 9 ],
[ 0.083431 , 30 , 3 , 11 ],
[ 0.084198 , 33 , 1 , 11 ],
[ 0.084212 , 33 , 1 , 12 ],
[ 0.084224 , 33 , 1 , 13 ],
[ 0.084252 , 32 , 0 , 11 ],
[ 0.084411 , 34 , 3 , 11 ],
[ 0.084412 , 15 , 14 , 5 ],
[ 0.085546 , 15 , 14 , 6 ],
[ 0.085825 , 36 , 2 , 8 ],
[ 0.085880 , 40 , 3 , 11 ],
[ 0.086057 , 9 , 8 , 6 ],
[ 0.086065 , 9 , 8 , 7 ],
[ 0.086070 , 9 , 8 , 8 ],
[ 0.086120 , 17 , 16 , 7 ],
[ 0.086549 , 15 , 14 , 7 ],
[ 0.086558 , 15 , 14 , 8 ],
[ 0.087122 , 17 , 16 , 8 ],
[ 0.087127 , 17 , 16 , 9 ],
[ 0.087133 , 17 , 16 , 10 ],
[ 0.087138 , 17 , 16 , 11 ],
[ 0.087148 , 17 , 16 , 12 ],
[ 0.087292 , 38 , 4 , 9 ],
[ 0.087381 , 2 , 1 , 14 ],
[ 0.087410 , 2 , 1 , 15 ],
[ 0.087423 , 2 , 1 , 16 ],
[ 0.087727 , 1 , 0 , 12 ],
[ 0.087740 , 1 , 0 , 13 ],
[ 0.087753 , 1 , 0 , 14 ],
[ 0.088122 , 17 , 16 , 13 ],
[ 0.088152 , 4 , 3 , 12 ],
[ 0.088164 , 4 , 3 , 13 ],
[ 0.088176 , 4 , 3 , 14 ],
[ 0.088200 , 6 , 5 , 8 ],
[ 0.088521 , 8 , 7 , 8 ],
[ 0.088709 , 7 , 6 , 8 ],
[ 0.088855 , 3 , 2 , 9 ],
[ 0.088868 , 3 , 2 , 10 ],
[ 0.088880 , 3 , 2 , 11 ],
[ 0.088893 , 3 , 2 , 12 ],
[ 0.089129 , 17 , 16 , 14 ],
[ 0.089137 , 17 , 16 , 15 ],
[ 0.089142 , 17 , 16 , 16 ],
[ 0.089147 , 17 , 16 , 17 ],
[ 0.089152 , 17 , 16 , 18 ],
[ 0.089550 , 15 , 14 , 9 ],
[ 0.089559 , 15 , 14 , 10 ],
[ 0.089954 , 10 , 9 , 9 ],
[ 0.089997 , 12 , 11 , 8 ],
[ 0.090130 , 17 , 16 , 19 ],
[ 0.090135 , 17 , 16 , 20 ],
[ 0.090141 , 17 , 16 , 21 ],
[ 0.090169 , 13 , 12 , 8 ],
[ 0.090199 , 11 , 10 , 9 ],
[ 0.090232 , 14 , 13 , 8 ],
[ 0.091788 , 20 , 1 , 14 ],
[ 0.091818 , 20 , 1 , 15 ],
[ 0.091830 , 20 , 1 , 16 ],
[ 0.092134 , 19 , 0 , 12 ],
[ 0.092147 , 17 , 16 , 22 ],
[ 0.092148 , 19 , 0 , 13 ],
[ 0.092152 , 17 , 16 , 23 ],
[ 0.092160 , 19 , 0 , 14 ],
[ 0.092186 , 17 , 16 , 24 ],
[ 0.092192 , 17 , 16 , 25 ],
[ 0.092198 , 17 , 16 , 26 ],
[ 0.092272 , 5 , 4 , 10 ],
[ 0.092314 , 21 , 3 , 12 ],
[ 0.092326 , 21 , 3 , 13 ],
[ 0.092338 , 21 , 3 , 14 ],
[ 0.093013 , 25 , 1 , 14 ],
[ 0.093042 , 25 , 1 , 15 ],
[ 0.093055 , 25 , 1 , 16 ],
[ 0.093154 , 17 , 16 , 27 ],
[ 0.093160 , 17 , 16 , 28 ],
[ 0.093359 , 24 , 0 , 12 ],
[ 0.093372 , 24 , 0 , 13 ],
[ 0.093385 , 24 , 0 , 14 ],
[ 0.093539 , 26 , 3 , 12 ],
[ 0.093551 , 26 , 3 , 13 ],
[ 0.093563 , 26 , 3 , 14 ],
[ 0.094029 , 28 , 3 , 12 ],
[ 0.094040 , 28 , 3 , 13 ],
[ 0.094052 , 28 , 3 , 14 ],
[ 0.094518 , 30 , 3 , 12 ],
[ 0.094530 , 30 , 3 , 13 ],
[ 0.094542 , 30 , 3 , 14 ],
[ 0.094972 , 33 , 1 , 14 ],
[ 0.095001 , 33 , 1 , 15 ],
[ 0.095014 , 33 , 1 , 16 ],
[ 0.095318 , 32 , 0 , 12 ],
[ 0.095331 , 32 , 0 , 13 ],
[ 0.095344 , 32 , 0 , 14 ],
[ 0.095498 , 34 , 3 , 12 ],
[ 0.095510 , 34 , 3 , 13 ],
[ 0.095522 , 34 , 3 , 14 ],
[ 0.096434 , 22 , 4 , 10 ],
[ 0.096935 , 36 , 2 , 9 ],
[ 0.096948 , 36 , 2 , 10 ],
[ 0.096960 , 36 , 2 , 11 ],
[ 0.096967 , 40 , 3 , 12 ],
[ 0.096973 , 36 , 2 , 12 ],
[ 0.096979 , 40 , 3 , 13 ],
[ 0.096991 , 40 , 3 , 14 ],
[ 0.098100 , 9 , 8 , 9 ],
[ 0.098440 , 2 , 1 , 17 ],
[ 0.098777 , 1 , 0 , 15 ],
[ 0.098783 , 1 , 0 , 16 ],
[ 0.099207 , 4 , 3 , 15 ],
[ 0.099216 , 4 , 3 , 16 ],
[ 0.099234 , 6 , 5 , 9 ],
[ 0.099540 , 8 , 7 , 9 ],
[ 0.099733 , 7 , 6 , 9 ],
[ 0.099913 , 3 , 2 , 13 ],
[ 0.099918 , 3 , 2 , 14 ],
[ 0.100352 , 38 , 4 , 10 ],
[ 0.101031 , 10 , 9 , 10 ],
[ 0.101033 , 12 , 11 , 9 ],
[ 0.101218 , 13 , 12 , 9 ],
[ 0.101264 , 14 , 13 , 9 ],
[ 0.101276 , 11 , 10 , 10 ],
[ 0.102848 , 20 , 1 , 17 ],
[ 0.103184 , 19 , 0 , 15 ],
[ 0.103190 , 19 , 0 , 16 ],
[ 0.103369 , 21 , 3 , 15 ],
[ 0.103379 , 21 , 3 , 16 ],
[ 0.104072 , 25 , 1 , 17 ],
[ 0.104409 , 24 , 0 , 15 ],
[ 0.104415 , 24 , 0 , 16 ],
[ 0.104594 , 26 , 3 , 15 ],
[ 0.104603 , 26 , 3 , 16 ],
[ 0.105084 , 28 , 3 , 15 ],
[ 0.105093 , 28 , 3 , 16 ],
[ 0.105573 , 30 , 3 , 15 ],
[ 0.105582 , 30 , 3 , 16 ],
[ 0.106031 , 33 , 1 , 17 ],
[ 0.106368 , 32 , 0 , 15 ],
[ 0.106374 , 32 , 0 , 16 ],
[ 0.106553 , 34 , 3 , 15 ],
[ 0.106562 , 34 , 3 , 16 ],
[ 0.107993 , 36 , 2 , 13 ],
[ 0.107998 , 36 , 2 , 14 ],
[ 0.108022 , 40 , 3 , 15 ],
[ 0.108031 , 40 , 3 , 16 ],
[ 0.109544 , 2 , 1 , 18 ],
[ 0.109578 , 2 , 1 , 19 ],
[ 0.109590 , 2 , 1 , 20 ],
[ 0.109842 , 1 , 0 , 17 ],
[ 0.109854 , 1 , 0 , 18 ],
[ 0.109867 , 1 , 0 , 19 ],
[ 0.109879 , 1 , 0 , 20 ],
[ 0.109891 , 1 , 0 , 21 ],
[ 0.109904 , 1 , 0 , 22 ],
[ 0.110264 , 6 , 5 , 10 ],
[ 0.110291 , 4 , 3 , 17 ],
[ 0.110304 , 4 , 3 , 18 ],
[ 0.110316 , 4 , 3 , 19 ],
[ 0.110329 , 4 , 3 , 20 ],
[ 0.110341 , 4 , 3 , 21 ],
[ 0.110353 , 4 , 3 , 22 ],
[ 0.110567 , 8 , 7 , 10 ],
[ 0.110762 , 7 , 6 , 10 ],
[ 0.110992 , 3 , 2 , 15 ],
[ 0.111005 , 3 , 2 , 16 ],
[ 0.111017 , 3 , 2 , 17 ],
[ 0.111029 , 3 , 2 , 18 ],
[ 0.111042 , 3 , 2 , 19 ],
[ 0.111054 , 3 , 2 , 20 ],
[ 0.112076 , 12 , 11 , 10 ],
[ 0.112154 , 10 , 9 , 11 ],
[ 0.112274 , 13 , 12 , 10 ],
[ 0.112291 , 14 , 13 , 10 ],
[ 0.112399 , 11 , 10 , 11 ],
[ 0.113951 , 20 , 1 , 18 ],
[ 0.113986 , 20 , 1 , 19 ],
[ 0.113997 , 20 , 1 , 20 ],
[ 0.114249 , 19 , 0 , 17 ],
[ 0.114262 , 19 , 0 , 18 ],
[ 0.114274 , 19 , 0 , 19 ],
[ 0.114286 , 19 , 0 , 20 ],
[ 0.114299 , 19 , 0 , 21 ],
[ 0.114311 , 19 , 0 , 22 ],
[ 0.114453 , 21 , 3 , 17 ],
[ 0.114466 , 21 , 3 , 18 ],
[ 0.114478 , 21 , 3 , 19 ],
[ 0.114491 , 21 , 3 , 20 ],
[ 0.114503 , 21 , 3 , 21 ],
[ 0.114515 , 21 , 3 , 22 ],
[ 0.115148 , 9 , 8 , 10 ],
[ 0.115176 , 25 , 1 , 18 ],
[ 0.115210 , 25 , 1 , 19 ],
[ 0.115222 , 25 , 1 , 20 ],
[ 0.115474 , 24 , 0 , 17 ],
[ 0.115486 , 24 , 0 , 18 ],
[ 0.115499 , 24 , 0 , 19 ],
[ 0.115511 , 24 , 0 , 20 ],
[ 0.115523 , 24 , 0 , 21 ],
[ 0.115536 , 24 , 0 , 22 ],
[ 0.115678 , 26 , 3 , 17 ],
[ 0.115691 , 26 , 3 , 18 ],
[ 0.115703 , 26 , 3 , 19 ],
[ 0.115716 , 26 , 3 , 20 ],
[ 0.115728 , 26 , 3 , 21 ],
[ 0.115740 , 26 , 3 , 22 ],
[ 0.116167 , 28 , 3 , 17 ],
[ 0.116180 , 28 , 3 , 18 ],
[ 0.116192 , 28 , 3 , 19 ],
[ 0.116206 , 28 , 3 , 20 ],
[ 0.116217 , 28 , 3 , 21 ],
[ 0.116229 , 28 , 3 , 22 ],
[ 0.116657 , 30 , 3 , 17 ],
[ 0.116670 , 30 , 3 , 18 ],
[ 0.116682 , 30 , 3 , 19 ],
[ 0.116695 , 30 , 3 , 20 ],
[ 0.116707 , 30 , 3 , 21 ],
[ 0.116719 , 30 , 3 , 22 ],
[ 0.117135 , 33 , 1 , 18 ],
[ 0.117169 , 33 , 1 , 19 ],
[ 0.117181 , 33 , 1 , 20 ],
[ 0.117433 , 32 , 0 , 17 ],
[ 0.117445 , 32 , 0 , 18 ],
[ 0.117458 , 32 , 0 , 19 ],
[ 0.117470 , 32 , 0 , 20 ],
[ 0.117482 , 32 , 0 , 21 ],
[ 0.117495 , 32 , 0 , 22 ],
[ 0.117637 , 34 , 3 , 17 ],
[ 0.117650 , 34 , 3 , 18 ],
[ 0.117662 , 34 , 3 , 19 ],
[ 0.117675 , 34 , 3 , 20 ],
[ 0.117687 , 34 , 3 , 21 ],
[ 0.117699 , 34 , 3 , 22 ],
[ 0.119072 , 36 , 2 , 15 ],
[ 0.119085 , 36 , 2 , 16 ],
[ 0.119097 , 36 , 2 , 17 ],
[ 0.119106 , 40 , 3 , 17 ],
[ 0.119109 , 36 , 2 , 18 ],
[ 0.119119 , 40 , 3 , 18 ],
[ 0.119122 , 36 , 2 , 19 ],
[ 0.119131 , 40 , 3 , 19 ],
[ 0.119134 , 36 , 2 , 20 ],
[ 0.119144 , 40 , 3 , 20 ],
[ 0.119156 , 40 , 3 , 21 ],
[ 0.119168 , 40 , 3 , 22 ],
[ 0.120605 , 2 , 1 , 21 ],
[ 0.120900 , 1 , 0 , 23 ],
[ 0.120910 , 1 , 0 , 24 ],
[ 0.120914 , 1 , 0 , 25 ],
[ 0.121289 , 6 , 5 , 11 ],
[ 0.121346 , 4 , 3 , 23 ],
[ 0.121352 , 4 , 3 , 24 ],
[ 0.121357 , 4 , 3 , 25 ],
[ 0.121601 , 8 , 7 , 11 ],
[ 0.121787 , 7 , 6 , 11 ],
[ 0.122057 , 3 , 2 , 21 ],
[ 0.122062 , 3 , 2 , 22 ],
[ 0.122066 , 3 , 2 , 23 ],
[ 0.123109 , 12 , 11 , 11 ],
[ 0.123312 , 14 , 13 , 11 ],
[ 0.123322 , 13 , 12 , 11 ],
[ 0.125013 , 20 , 1 , 21 ],
[ 0.125308 , 19 , 0 , 23 ],
[ 0.125318 , 19 , 0 , 24 ],
[ 0.125322 , 19 , 0 , 25 ],
[ 0.125508 , 21 , 3 , 23 ],
[ 0.125514 , 21 , 3 , 24 ],
[ 0.125519 , 21 , 3 , 25 ],
[ 0.125629 , 15 , 14 , 11 ],
[ 0.126237 , 25 , 1 , 21 ],
[ 0.126532 , 24 , 0 , 23 ],
[ 0.126542 , 24 , 0 , 24 ],
[ 0.126546 , 24 , 0 , 25 ],
[ 0.126724 , 9 , 8 , 11 ],
[ 0.126733 , 26 , 3 , 23 ],
[ 0.126739 , 26 , 3 , 24 ],
[ 0.126744 , 26 , 3 , 25 ],
[ 0.127222 , 28 , 3 , 23 ],
[ 0.127229 , 28 , 3 , 24 ],
[ 0.127234 , 28 , 3 , 25 ],
[ 0.127712 , 30 , 3 , 23 ],
[ 0.127718 , 30 , 3 , 24 ],
[ 0.127723 , 30 , 3 , 25 ],
[ 0.128196 , 33 , 1 , 21 ],
[ 0.128491 , 32 , 0 , 23 ],
[ 0.128501 , 32 , 0 , 24 ],
[ 0.128505 , 32 , 0 , 25 ],
[ 0.128692 , 34 , 3 , 23 ],
[ 0.128698 , 34 , 3 , 24 ],
[ 0.128703 , 34 , 3 , 25 ],
[ 0.130137 , 36 , 2 , 21 ],
[ 0.130142 , 36 , 2 , 22 ],
[ 0.130146 , 36 , 2 , 23 ],
[ 0.130161 , 40 , 3 , 23 ],
[ 0.130167 , 40 , 3 , 24 ],
[ 0.130172 , 40 , 3 , 25 ],
[ 0.131565 , 1 , 0 , 26 ],
[ 0.131578 , 1 , 0 , 27 ],
[ 0.131590 , 1 , 0 , 28 ],
[ 0.131603 , 1 , 0 , 29 ],
[ 0.131615 , 1 , 0 , 30 ],
[ 0.131627 , 1 , 0 , 31 ],
[ 0.131640 , 1 , 0 , 32 ],
[ 0.131652 , 1 , 0 , 33 ],
[ 0.131664 , 1 , 0 , 34 ],
[ 0.131689 , 2 , 1 , 22 ],
[ 0.131702 , 2 , 1 , 23 ],
[ 0.131715 , 2 , 1 , 24 ],
[ 0.132022 , 4 , 3 , 26 ],
[ 0.132035 , 4 , 3 , 27 ],
[ 0.132047 , 4 , 3 , 28 ],
[ 0.132060 , 4 , 3 , 29 ],
[ 0.132072 , 4 , 3 , 30 ],
[ 0.132084 , 4 , 3 , 31 ],
[ 0.132097 , 4 , 3 , 32 ],
[ 0.132109 , 4 , 3 , 33 ],
[ 0.132387 , 6 , 5 , 12 ],
[ 0.132399 , 6 , 5 , 13 ],
[ 0.132412 , 6 , 5 , 14 ],
[ 0.132701 , 8 , 7 , 12 ],
[ 0.132714 , 8 , 7 , 13 ],
[ 0.132723 , 3 , 2 , 24 ],
[ 0.132727 , 8 , 7 , 14 ],
[ 0.132735 , 3 , 2 , 25 ],
[ 0.132739 , 8 , 7 , 15 ],
[ 0.132747 , 3 , 2 , 26 ],
[ 0.132751 , 8 , 7 , 16 ],
[ 0.132760 , 3 , 2 , 27 ],
[ 0.132764 , 8 , 7 , 17 ],
[ 0.132772 , 3 , 2 , 28 ],
[ 0.132784 , 3 , 2 , 29 ],
[ 0.132796 , 3 , 2 , 30 ],
[ 0.132809 , 3 , 2 , 31 ],
[ 0.132821 , 3 , 2 , 32 ],
[ 0.132907 , 7 , 6 , 12 ],
[ 0.132920 , 7 , 6 , 13 ],
[ 0.132932 , 7 , 6 , 14 ],
[ 0.132944 , 7 , 6 , 15 ],
[ 0.132957 , 7 , 6 , 16 ],
[ 0.132969 , 7 , 6 , 17 ],
[ 0.134138 , 12 , 11 , 12 ],
[ 0.134162 , 14 , 13 , 12 ],
[ 0.134377 , 13 , 12 , 12 ],
[ 0.135972 , 19 , 0 , 26 ],
[ 0.135986 , 19 , 0 , 27 ],
[ 0.135997 , 19 , 0 , 28 ],
[ 0.136011 , 19 , 0 , 29 ],
[ 0.136023 , 19 , 0 , 30 ],
[ 0.136034 , 19 , 0 , 31 ],
[ 0.136048 , 19 , 0 , 32 ],
[ 0.136059 , 19 , 0 , 33 ],
[ 0.136071 , 19 , 0 , 34 ],
[ 0.136096 , 20 , 1 , 22 ],
[ 0.136110 , 20 , 1 , 23 ],
[ 0.136122 , 20 , 1 , 24 ],
[ 0.136184 , 21 , 3 , 26 ],
[ 0.136197 , 21 , 3 , 27 ],
[ 0.136209 , 21 , 3 , 28 ],
[ 0.136222 , 21 , 3 , 29 ],
[ 0.136235 , 21 , 3 , 30 ],
[ 0.136246 , 21 , 3 , 31 ],
[ 0.136259 , 21 , 3 , 32 ],
[ 0.136271 , 21 , 3 , 33 ],
[ 0.137197 , 24 , 0 , 26 ],
[ 0.137210 , 24 , 0 , 27 ],
[ 0.137222 , 24 , 0 , 28 ],
[ 0.137235 , 24 , 0 , 29 ],
[ 0.137247 , 24 , 0 , 30 ],
[ 0.137259 , 24 , 0 , 31 ],
[ 0.137272 , 24 , 0 , 32 ],
[ 0.137284 , 24 , 0 , 33 ],
[ 0.137296 , 24 , 0 , 34 ],
[ 0.137321 , 25 , 1 , 22 ],
[ 0.137334 , 25 , 1 , 23 ],
[ 0.137347 , 25 , 1 , 24 ],
[ 0.137409 , 26 , 3 , 26 ],
[ 0.137422 , 26 , 3 , 27 ],
[ 0.137434 , 26 , 3 , 28 ],
[ 0.137447 , 26 , 3 , 29 ],
[ 0.137459 , 26 , 3 , 30 ],
[ 0.137471 , 26 , 3 , 31 ],
[ 0.137484 , 26 , 3 , 32 ],
[ 0.137496 , 26 , 3 , 33 ],
[ 0.137898 , 28 , 3 , 26 ],
[ 0.137911 , 28 , 3 , 27 ],
[ 0.137924 , 28 , 3 , 28 ],
[ 0.137936 , 28 , 3 , 29 ],
[ 0.137949 , 28 , 3 , 30 ],
[ 0.137960 , 28 , 3 , 31 ],
[ 0.137973 , 28 , 3 , 32 ],
[ 0.137986 , 28 , 3 , 33 ],
[ 0.138388 , 30 , 3 , 26 ],
[ 0.138401 , 30 , 3 , 27 ],
[ 0.138413 , 30 , 3 , 28 ],
[ 0.138426 , 30 , 3 , 29 ],
[ 0.138438 , 30 , 3 , 30 ],
[ 0.138450 , 30 , 3 , 31 ],
[ 0.138463 , 30 , 3 , 32 ],
[ 0.138475 , 30 , 3 , 33 ],
[ 0.138784 , 9 , 8 , 12 ],
[ 0.139156 , 32 , 0 , 26 ],
[ 0.139169 , 32 , 0 , 27 ],
[ 0.139181 , 32 , 0 , 28 ],
[ 0.139194 , 32 , 0 , 29 ],
[ 0.139206 , 32 , 0 , 30 ],
[ 0.139218 , 32 , 0 , 31 ],
[ 0.139231 , 32 , 0 , 32 ],
[ 0.139243 , 32 , 0 , 33 ],
[ 0.139255 , 32 , 0 , 34 ],
[ 0.139280 , 33 , 1 , 22 ],
[ 0.139293 , 33 , 1 , 23 ],
[ 0.139306 , 33 , 1 , 24 ],
[ 0.139368 , 34 , 3 , 26 ],
];

sfr_names=["http_get",
     "http_post",
     "https",
     "http_browsing",
     "exchange",
     "mail_pop",
     "mail_pop_1",
     "mail_pop_2",
     "oracle_0",
     "rtp_160k",
     "rtp_250k",
     "smtp_0",
     "smtp_1",
     "smtp_2",
     "video_call",
     "sip_video_call_full",
     "citrix_0",
     "dns_0"];

chart("#chart4",sfr_data,sfr_names,"time-sec","flow-id");
</script>
+++++++++++++++++++++++++++++++++

== TRex command line main options

[source,bash]
----
$.sudo /t-rex-64 -f [traffic_yaml] -m [muti]  -d [duration]  -l [Hz=1000] -c [cores]
----

*-f=TRAFFIC_CFG* ::
   Traffic YAML configuration file

*-m*::
 CPS multiplier  

*-d=DURATION* ::
   Duration of the test in sec
 
*-l=Hz* ::
  Latency pakets rate (Hz)  
  
*-c*::
 How many cores to use
  

== TRex Vision 

* All in One, most of the functionality of existing tools 
* Standard tests (e.g. traffic mix, automation) across features/platforms
* Cisco wide developers community
* Open source, Standardize tests

== Trex GUI 

image:images/TrexViewer.png[width=500]   

* Monitor GUI works on Windows 7
* Nonitor real-time properties of TRex ( e.g min/max/average latency,jitter ) 

== Python API and automation tools

++++++++++++++++++
<img src="images/trex_control_plane_modules.png" alt="title=" align="center" >

<div id="pclient" >

++++++++++++++++++

[source,python]
-----
import trex_client

    trex = trex_client.CTRexClient('csi-kiwi-02')
    ret = trex.start_trex( 
        m = 1.1,
        d = 20,
        f = 'avl/sfr_delay_10_1g.yaml',
        l = 1000)

    while trex.is_running() :
        trex.get_running_info()
        res=trex.get_result_obj()
        if res.is_done_warmup ():
          res.get_value_list("trex-global.data.m_tx_bps");
        time.sleep(1);

    ret = trex.stop_trex()
-----

++++++++++++++++++
</div>

<script>
    $("#pclient").css({'font-size':'12px'})
 </script>
++++++++++++++++++


== Trex On your laptop

++++++++++++++++++
<img src="images/T-Rex_vm.png" alt="title=" align="center" >
++++++++++++++++++

* You can experience TRex on your laptop 

== Roadmap 

* TCP stack 
* Export SDK application plugins API - more application support
* Automation (e.g ATS, Cisco HLTAPI etc) 
* Open source 
* Tunnel agnostic (e.g. VXLAN,QinQ,MPLS,NSH)

==  Benefit 

** Significant budget saving 
** Product quality 

== Resource

.Resource 
[options="header",cols="1^",width="40%"]
|=================
| Link 
| link:trex_manual.html[Manual-html]  
| link:trex_book.pdf[Manual-pdf]  
| link:release_notes.html[Release Notes]  
| link:trex_manual.html#_download_and_installation[How to install]  
|=================


++++++++++++++++++
</section>
<section class="slide">
<h2></h2>
<h7>Backup</h7>
<h8></h8>
</section>
++++++++++++++++++