1
2== TRex Low-Cost, High-Speed Stateful Traffic Generator 
3
4
5*New*  Stateless support was released see more in the folowing section 
6
7Traditionally, network infrastructure devices have been tested using commercial traffic generators, while performance was measured using metrics like packets per second (PPS) and No Drop Rate (NDR). As the network infrastructure functionality has become more complex, stateful traffic generators have become necessary in order to test with more realistic application traffic pattern scenarios.
8Realistic and Stateful traffic generators are needed in order to:
9
10* Test and provide more realistic performance numbers
11* Design and architecture of SW and HW based on realistic use cases 
12
13=== Current Challenges
14
15* *Cost* : Commercial State-full traffic generators are expensive
16* *Scale* : Bandwidth does not scale up well with features complexity
17* *Standardization* : Lack of standardization of traffic patterns and methodologies
18* *Flexibility* : Commercial tools do not allow agility when flexibility and changes are needed
19
20=== Implications
21
22* High capital expenditure (capex) spent by different teams
23* Testing in low scale and extrapolation became a common practice, it is not accurate, and hides real life bottlenecks and quality issues
24* Different feature / platform teams benchmark and results methodology
25* Delays in development and testing due to testing tools features dependency
26* Resource and effort investment in developing different ad hoc tools and test methodologies
27
28TRex addresses these problems through an innovative and extendable software implementation and by leveraging standard and open SW and x86/UCS HW.
29
30=== TRex Stateful in a Nutshell
31
32* Fueled by DPDK 
33* Generates and analyzes L4-7 traffic and able to provide in one tool capabilities provided by commercial L7 tools.
34* Stateful traffic generator based on pre-processing and smart replay of real traffic templates.
35* Generates and *amplifies* both client and server side traffic.
36* Customized functionality can be added.
37* Scale to 200Gb/sec for one UCS 
38* Low cost
39* Virtual interfaces support, enable TRex to be used in a fully virtual environment without physical NICs and the following example use cases:
40** Amazon AWS
41** TRex on your laptop
42** Self-contained packaging 
43* Cisco Pioneer Award Winner 2015
44
45=== Current General TRex Feature sets 
46
47* Support DPDK 1/2.5/10/25/50/40/100Gbps interfaces 
48* Virtualization interfaces support (virtio/VMXNET3/E1000)
49
50=== Current Stateful TRex Feature sets 
51
52* High scale of realistic traffic (number of clients, number of server, bandwidth)-up to 200Gb/sec in one UCS
53* Latency/Jitter measurements
54* Flow ordering checks
55* NAT, PAT dynamic translation learning
56* Learn TCP SYN sequence randomization - vASA use case
57* Cluster mode for Controler tests
58* IPV6 inline replacement 
59* Some cross flow support (e.g RTSP/SIP)
60* Python automation API 
61
62=== *New* TRex Stateless feature sets 
63
64* Large scale - Supports about 10-30 million packets per second (mpps) per core, scalable with the number of cores 
65* Profile can support multiple streams, scalable to 10K parallel streams 
66* Supported for each stream:
67** Packet template - ability to build any packet (including malformed) using link:https://en.wikipedia.org/wiki/Scapy[Scapy] (example: MPLS/IPv4/Ipv6/GRE/VXLAN/NSH) 
68** Field engine program
69*** Ability to change any field inside the packet (example: src_ip = 10.0.0.1-10.0.0.255)
70*** Ability to change the packet size (example: random packet size 64-9K)
71** Mode - Continuous/Burst/Multi-burst support
72** Rate can be specified as:
73*** Packets per second (example: 14MPPS)
74*** L1/L2 bandwidth (example: 500Mb/sec)
75*** Interface link percentage (example: 10%)
76** Support for HLTAPI-like profile definition  
77** Action - stream can trigger a stream 
78* Interactive support - Fast Console,  GUI 
79* Statistics per interface
80* Statistics per stream done in hardware
81* Latency and Jitter per stream
82* Blazingly fast automation support (Python 2.7/3.4)
83* Multi-user support 
84
85The following example shows three streams configured for Continuous, Burst, and Multi-burst traffic.
86
87image::https://trex-tgn.cisco.com/trex/doc/images/stl_streams_example_02.png[title="",align="center",width=600, link="http://trex-tgn.cisco.com/trex/doc/images/stl_streams_example_02.png"]
88
89A new JSON-RPC2 Architecture  provides support for interactive mode
90
91image::https://trex-tgn.cisco.com/trex/doc/images/trex_architecture_01.png[title="",align="center",width=600, link="http://trex-tgn.cisco.com/trex/doc/images/trex_architecture_01.png"]
92
93more info can be found here link:https://trex-tgn.cisco.com/trex/doc/index.html[Documentation]
94
95
96=== What it�s not
97
98* There is no routing emulation support, for example, BGP/ISIS/ARP 
99* There is no TCP stack.  
100* Client only or Server Only. 
101
102=== What you can do with it 
103
104==== Stateful 
105
106* Beanchmark/Stress stateful features :
107** NAT
108** DPI
109** Load Balancer 
110** Network cache devices 
111** FireWall
112** IPS/IDS 
113* Mixing Application level traffic/profile (HTTP/SIP/Video) 
114* Unlimited concurent flows, limited only by memory 
115
116==== Stateless
117
118* Beanchmark/Stress vSwitch RFC2544 
119 
120=== Presentation 
121
122link:http://www.slideshare.net/HanochHaim/trex-realistic-traffic-generator-stateless-support[New Stateless support] 
123
124link:http://www.slideshare.net/harryvanhaaren/trex-traffig-gen-hanoch-haim[DPDK summit 2015] 
125
126link:http://www.youtube.com/watch?v=U0gRalB7DOs[Video DPDK summit 2015] 
127
128link:https://trex-tgn.cisco.com/trex/doc/trex_preso.html[Presentation] 
129
130
131=== Documentation
132
133link:https://trex-tgn.cisco.com/trex/doc/index.html[Documentation]
134
135=== Wiki
136
137Internal link:https://github.com/cisco-system-traffic-generator/trex-core/wiki[Wiki]
138
139=== YouTrack
140
141Report bug/request feature link:http://trex-tgn.cisco.com/youtrack/issues[YouTrack]
142
143=== Windows Stateful Client GUI
144
145image::https://trex-tgn.cisco.com/trex/doc/images/TrexViewer.png[title="",align="center",width=200, link="http://trex-tgn.cisco.com/trex/doc/images/TrexViewer.png"]
146
147=== Sandbox for evaluation
148
149Try the new Devnet Sandbox link:https://devnetsandbox.cisco.com/RM/Topology[TRex Sandbox]
150  
151=== Contact Us
152
153Follow us on https://groups.google.com/forum/#!forum/trex-tgn[TRex traffic generator google group],
154
155Or contact via: mailto:trex-tgn@googlegroups.com[Group mailing list (trex-tgn@googlegroups.com)]
156
157Or via Cisco Devnet portal link:http://communities.cisco.com/community/developer/trex/[Devnet]
158
159*TRex team,Cisco Systems Inc* 
160
161
162=== Roadmap 
163
164* High speed TCP stack support 
165* Intel FM10K support 
166
167
168
169
170
171
172
173
174
175
176