18b52a31eSHanoh Haim
202977332SHanoh Haim== TRex Low-Cost, High-Speed Stateful Traffic Generator 
302977332SHanoh Haim
402977332SHanoh Haim
502977332SHanoh Haim*New*  Stateless support was released see more in the folowing section 
68b52a31eSHanoh Haim
78b52a31eSHanoh HaimTraditionally, 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.
88b52a31eSHanoh HaimRealistic and Stateful traffic generators are needed in order to:
98b52a31eSHanoh Haim
108b52a31eSHanoh Haim* Test and provide more realistic performance numbers
118b52a31eSHanoh Haim* Design and architecture of SW and HW based on realistic use cases 
128b52a31eSHanoh Haim
138b52a31eSHanoh Haim=== Current Challenges
148b52a31eSHanoh Haim
158b52a31eSHanoh Haim* *Cost* : Commercial State-full traffic generators are expensive
168b52a31eSHanoh Haim* *Scale* : Bandwidth does not scale up well with features complexity
178b52a31eSHanoh Haim* *Standardization* : Lack of standardization of traffic patterns and methodologies
188b52a31eSHanoh Haim* *Flexibility* : Commercial tools do not allow agility when flexibility and changes are needed
198b52a31eSHanoh Haim
208b52a31eSHanoh Haim=== Implications
218b52a31eSHanoh Haim
228b52a31eSHanoh Haim* High capital expenditure (capex) spent by different teams
238b52a31eSHanoh Haim* Testing in low scale and extrapolation became a common practice, it is not accurate, and hides real life bottlenecks and quality issues
248b52a31eSHanoh Haim* Different feature / platform teams benchmark and results methodology
258b52a31eSHanoh Haim* Delays in development and testing due to testing tools features dependency
268b52a31eSHanoh Haim* Resource and effort investment in developing different ad hoc tools and test methodologies
278b52a31eSHanoh Haim
288b52a31eSHanoh HaimTRex addresses these problems through an innovative and extendable software implementation and by leveraging standard and open SW and x86/UCS HW.
298b52a31eSHanoh Haim
301189f0afSHanoh Haim=== TRex Stateful in a Nutshell
318b52a31eSHanoh Haim
323689f7cdSHanoh Haim* Fueled by DPDK 
338b52a31eSHanoh Haim* Generates and analyzes L4-7 traffic and able to provide in one tool capabilities provided by commercial L7 tools.
348b52a31eSHanoh Haim* Stateful traffic generator based on pre-processing and smart replay of real traffic templates.
358b52a31eSHanoh Haim* Generates and *amplifies* both client and server side traffic.
368b52a31eSHanoh Haim* Customized functionality can be added.
371189f0afSHanoh Haim* Scale to 200Gb/sec for one UCS 
388b52a31eSHanoh Haim* Low cost
398b52a31eSHanoh Haim* Virtual interfaces support, enable TRex to be used in a fully virtual environment without physical NICs and the following example use cases:
408b52a31eSHanoh Haim** Amazon AWS
418b52a31eSHanoh Haim** TRex on your laptop
42ece672a2SHanoh Haim** Self-contained packaging 
431189f0afSHanoh Haim* Cisco Pioneer Award Winner 2015
441189f0afSHanoh Haim
451189f0afSHanoh Haim=== Current General TRex Feature sets 
461189f0afSHanoh Haim
471189f0afSHanoh Haim* Support DPDK 1/2.5/10/25/50/40/100Gbps interfaces 
481189f0afSHanoh Haim* Virtualization interfaces support (virtio/VMXNET3/E1000)
498b52a31eSHanoh Haim
5002977332SHanoh Haim=== Current Stateful TRex Feature sets 
518b52a31eSHanoh Haim
528b52a31eSHanoh Haim* High scale of realistic traffic (number of clients, number of server, bandwidth)-up to 200Gb/sec in one UCS
538b52a31eSHanoh Haim* Latency/Jitter measurements
548b52a31eSHanoh Haim* Flow ordering checks
558b52a31eSHanoh Haim* NAT, PAT dynamic translation learning
561189f0afSHanoh Haim* Learn TCP SYN sequence randomization - vASA use case
571189f0afSHanoh Haim* Cluster mode for Controler tests
588b52a31eSHanoh Haim* IPV6 inline replacement 
598b52a31eSHanoh Haim* Some cross flow support (e.g RTSP/SIP)
6003cf6716SHanoh Haim* Python automation API 
618b52a31eSHanoh Haim
6202977332SHanoh Haim=== *New* TRex Stateless feature sets 
6302977332SHanoh Haim
641189f0afSHanoh Haim* Large scale - Supports about 10-30 million packets per second (mpps) per core, scalable with the number of cores 
6502977332SHanoh Haim* Profile can support multiple streams, scalable to 10K parallel streams 
6602977332SHanoh Haim* Supported for each stream:
6702977332SHanoh Haim** 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) 
6802977332SHanoh Haim** Field engine program
6902977332SHanoh Haim*** Ability to change any field inside the packet (example: src_ip = 10.0.0.1-10.0.0.255)
7002977332SHanoh Haim*** Ability to change the packet size (example: random packet size 64-9K)
7102977332SHanoh Haim** Mode - Continuous/Burst/Multi-burst support
7202977332SHanoh Haim** Rate can be specified as:
7302977332SHanoh Haim*** Packets per second (example: 14MPPS)
7402977332SHanoh Haim*** L1/L2 bandwidth (example: 500Mb/sec)
7502977332SHanoh Haim*** Interface link percentage (example: 10%)
7602977332SHanoh Haim** Support for HLTAPI-like profile definition  
7702977332SHanoh Haim** Action - stream can trigger a stream 
7802977332SHanoh Haim* Interactive support - Fast Console,  GUI 
7902977332SHanoh Haim* Statistics per interface
8002977332SHanoh Haim* Statistics per stream done in hardware
8102977332SHanoh Haim* Latency and Jitter per stream
8202977332SHanoh Haim* Blazingly fast automation support (Python 2.7/3.4)
8302977332SHanoh Haim* Multi-user support 
8402977332SHanoh Haim
8502977332SHanoh HaimThe following example shows three streams configured for Continuous, Burst, and Multi-burst traffic.
8602977332SHanoh Haim
875d9c9f44SHanoh Haimimage::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"]
8802977332SHanoh Haim
8902977332SHanoh HaimA new JSON-RPC2 Architecture  provides support for interactive mode
9002977332SHanoh Haim
915d9c9f44SHanoh Haimimage::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"]
9202977332SHanoh Haim
935d9c9f44SHanoh Haimmore info can be found here link:https://trex-tgn.cisco.com/trex/doc/index.html[Documentation]
9402977332SHanoh Haim
9502977332SHanoh Haim
9602977332SHanoh Haim=== What it�s not
973689f7cdSHanoh Haim
9803cf6716SHanoh Haim* There is no routing emulation support, for example, BGP/ISIS/ARP 
99ca98e9e5SHanoh Haim* There is no TCP stack.  
10003cf6716SHanoh Haim* Client only or Server Only. 
1013689f7cdSHanoh Haim
10202977332SHanoh Haim=== What you can do with it 
10302977332SHanoh Haim
10402977332SHanoh Haim==== Stateful 
1053689f7cdSHanoh Haim
10603cf6716SHanoh Haim* Beanchmark/Stress stateful features :
10703cf6716SHanoh Haim** NAT
10803cf6716SHanoh Haim** DPI
109ca98e9e5SHanoh Haim** Load Balancer 
110ca98e9e5SHanoh Haim** Network cache devices 
11103cf6716SHanoh Haim** FireWall
11203cf6716SHanoh Haim** IPS/IDS 
11303cf6716SHanoh Haim* Mixing Application level traffic/profile (HTTP/SIP/Video) 
11403cf6716SHanoh Haim* Unlimited concurent flows, limited only by memory 
1153689f7cdSHanoh Haim
11602977332SHanoh Haim==== Stateless
11702977332SHanoh Haim
11802977332SHanoh Haim* Beanchmark/Stress vSwitch RFC2544 
11902977332SHanoh Haim 
1201dfa471cSHanoh Haim=== Presentation 
1211dfa471cSHanoh Haim
12202977332SHanoh Haimlink:http://www.slideshare.net/HanochHaim/trex-realistic-traffic-generator-stateless-support[New Stateless support] 
12302977332SHanoh Haim
124d2df454cSHanoh Haimlink:http://www.slideshare.net/harryvanhaaren/trex-traffig-gen-hanoch-haim[DPDK summit 2015] 
125d2df454cSHanoh Haim
126d2df454cSHanoh Haimlink:http://www.youtube.com/watch?v=U0gRalB7DOs[Video DPDK summit 2015] 
127d2df454cSHanoh Haim
1285d9c9f44SHanoh Haimlink:https://trex-tgn.cisco.com/trex/doc/trex_preso.html[Presentation] 
1293689f7cdSHanoh Haim
1300814f72dSHanoh Haim
1310814f72dSHanoh Haim=== Documentation
1320814f72dSHanoh Haim
1330814f72dSHanoh Haimlink:https://trex-tgn.cisco.com/trex/doc/index.html[Documentation]
1340814f72dSHanoh Haim
1353689f7cdSHanoh Haim=== Wiki
1363689f7cdSHanoh Haim
137f26f4de6SHanoh HaimInternal link:https://github.com/cisco-system-traffic-generator/trex-core/wiki[Wiki]
1383689f7cdSHanoh Haim
1393788595bSYaroslav Brustinov=== YouTrack
1403788595bSYaroslav Brustinov
1413788595bSYaroslav BrustinovReport bug/request feature link:http://trex-tgn.cisco.com/youtrack/issues[YouTrack]
1423788595bSYaroslav Brustinov
14302977332SHanoh Haim=== Windows Stateful Client GUI
1443689f7cdSHanoh Haim
1455d9c9f44SHanoh Haimimage::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"]
1463689f7cdSHanoh Haim
14702977332SHanoh Haim=== Sandbox for evaluation
14803cf6716SHanoh Haim
14902977332SHanoh HaimTry the new Devnet Sandbox link:https://devnetsandbox.cisco.com/RM/Topology[TRex Sandbox]
15003cf6716SHanoh Haim  
151994e396fSDan Klein=== Contact Us
1523689f7cdSHanoh Haim
1533689f7cdSHanoh HaimFollow us on https://groups.google.com/forum/#!forum/trex-tgn[TRex traffic generator google group],
154994e396fSDan Klein
155994e396fSDan KleinOr contact via: mailto:trex-tgn@googlegroups.com[Group mailing list (trex-tgn@googlegroups.com)]
156994e396fSDan Klein
15702977332SHanoh HaimOr via Cisco Devnet portal link:http://communities.cisco.com/community/developer/trex/[Devnet]
15802977332SHanoh Haim
15902977332SHanoh Haim*TRex team,Cisco Systems Inc* 
1603689f7cdSHanoh Haim
1613689f7cdSHanoh Haim
162d2df454cSHanoh Haim=== Roadmap 
163d2df454cSHanoh Haim
164d2df454cSHanoh Haim* High speed TCP stack support 
1651189f0afSHanoh Haim* Intel FM10K support 
166d2df454cSHanoh Haim
167d2df454cSHanoh Haim
168d2df454cSHanoh Haim
169d2df454cSHanoh Haim
170d2df454cSHanoh Haim
171d2df454cSHanoh Haim
172d2df454cSHanoh Haim
173d2df454cSHanoh Haim
1748b52a31eSHanoh Haim
17503cf6716SHanoh Haim
176