Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
New Stateless support
Stateless High level functionality
• High scale –~10M-22MPPS/core
• Support 1/10/25/40/100* Gb/sec interfaces
• Support fo...
Stateless High level functionality #2
• Interactive support – GUI/TUI
• Statistic per port
• Statistic per stream (by Hard...
Traffic Profile Example
Control plane High level
Multi User
TRex Objects relations
Stateful vs Stateless
Feature Stateless Stateful
Flow base No Yes
NAT No Yes
Tunnel Yes Some are supported
L7 App emulatio...
One stream with two directions
Python automation example
Python API
Python HLTAPI
Automation
Interactive Console
#load the trex as a server for interactive mode
$sudo ./t-rex-64 –i
#connect to the server from any se...
Interactive TUI
Performance
Profile name Description Per core performance
imix_1pkt 1 stream/64byte 15-22MPPS
imix_3pkt_vm 3 streams/IMIX/...
Traffic profile
Simple Interleaving streams
Simple Interleaving streams -profile
Multi streams
Multi burst
Multi burst profile
Field Engine
• Flexible engine to change any field inside the
packet
• Examples
– Change TOS 1-20
– Range of client IP 10....
Field Engine, Syn
attack
Multiple Clients example
Multiple Clients profile
Covert pcap packet file to one stream
Pcap file conversion to streams
Pcap file conversion to profile of
streams #2
• In this mode pcap in converted to streams and
push to TRex server
• It won...
Teredo tunnel (IPv6 over IPv4)
Per stream statistics
• Implemented using hardware assist with Intel
X710/XL710 NIC flow director rules
• With other NICs ...
Per stream statistics -TOI
Per stream statistics – Python API
Per stream latency/jitter
• Base on per stream stats hardware assist
• Forward specific type of packets
• Filter is based ...
Per stream statistics -TOI
Demo
Cisco ASR 1013 ESP100 100Gb/sec 13RU
- 4KW
UCS-220M2 32GB 2x8 cores 2Ghz
2x82559 NIC (4x10Gb/sec)
0.4KW 1RU , 2K$
fin...
TRex GUI
• Desktop application written in JavaFX
• Support Windows/Mac/Linux
• Like TRex Console gives Stateless functiona...
TRex GUI
TRex GUI – Stream builder
Roadmap
• Finalized the GUI
• FM10K support gives more capability of Per
stream statistic
• L2 Emulations ARP/IPv6 ND
• Ro...
More info
• Stateless manual
• TRex documents Index
• GitHub
Backup
Common paths
Path Description
$root t-rex-64/dpdk_set_ports/stl-sim
/stl Stateless native (py) profiles
/stl/yaml Stateles...
TRex  Realistic Traffic Generator  - Stateless support
Upcoming SlideShare
Loading in …5
×

TRex Realistic Traffic Generator - Stateless support

5,823 views

Published on

Add Stateless support for TRex

Published in: Engineering
  • Be the first to comment

TRex Realistic Traffic Generator - Stateless support

  1. 1. New Stateless support
  2. 2. Stateless High level functionality • High scale –~10M-22MPPS/core • Support 1/10/25/40/100* Gb/sec interfaces • Support for multiple traffic profiles per interface • Profile can support multiple streams, scalable to 10K parallel streams • Supported for each stream – Packet template – Field engine program (src_ip = 10.0.0.1-10.0.0.255) – Send Mode : Continues/Burst/Multi burst support
  3. 3. Stateless High level functionality #2 • Interactive support – GUI/TUI • Statistic per port • Statistic per stream (by Hardware) • Latency Jitter per stream • Fast Python automation support – Python 2.7/3.0 Client API – Python HLTAPI Client API • Multi-user support
  4. 4. Traffic Profile Example
  5. 5. Control plane High level
  6. 6. Multi User
  7. 7. TRex Objects relations
  8. 8. Stateful vs Stateless Feature Stateless Stateful Flow base No Yes NAT No Yes Tunnel Yes Some are supported L7 App emulation No Yes Any type of packet Yes No Latency/Jitter Per Stream Per port/Per flow sample
  9. 9. One stream with two directions
  10. 10. Python automation example Python API
  11. 11. Python HLTAPI Automation
  12. 12. Interactive Console #load the trex as a server for interactive mode $sudo ./t-rex-64 –i #connect to the server from any server ( Python 2/3.4) $./trex-console #start traffic on all port >start -a -m 1 -f stl/imix_1pkt.py #pause traffic on all port >pause -a #resume traffic on all port >resume -a #stop traffic on all port >stop -a #show dynamic statistic >tui #show port statistic >stats –p #clear statistic >clear #show stream statistic >streams Shell Console
  13. 13. Interactive TUI
  14. 14. Performance Profile name Description Per core performance imix_1pkt 1 stream/64byte 15-22MPPS imix_3pkt_vm 3 streams/IMIX/ip range 50Gb/sec udp_rand_size_9k 1 stream, FE, random packet size 200Gb/sec UCS UCS 240M4 NICS 2xXL710 • Number of streams can scale • Performance depends on many variables. • Field engine can scale to complex scenarios. Has impact on performance
  15. 15. Traffic profile
  16. 16. Simple Interleaving streams
  17. 17. Simple Interleaving streams -profile
  18. 18. Multi streams
  19. 19. Multi burst
  20. 20. Multi burst profile
  21. 21. Field Engine • Flexible engine to change any field inside the packet • Examples – Change TOS 1-20 – Range of client IP 10.0.0.1-10.0.0.254 – Random packet size 64-9k – Random dest_ip range – Support any tunnel even not valid packet like QinQ/GRE/MPLS/Ipv6/UDP/Ipv4/HTTP • Plan to add even more flexible engine - JITLUA
  22. 22. Field Engine, Syn attack
  23. 23. Multiple Clients example
  24. 24. Multiple Clients profile
  25. 25. Covert pcap packet file to one stream
  26. 26. Pcap file conversion to streams
  27. 27. Pcap file conversion to profile of streams #2 • In this mode pcap in converted to streams and push to TRex server • It won’t work on a big pcap file • There is an API version that push server side pcap file • This version is limited only by server disk size. 1TB pcap file is something that we are using
  28. 28. Teredo tunnel (IPv6 over IPv4)
  29. 29. Per stream statistics • Implemented using hardware assist with Intel X710/XL710 NIC flow director rules • With other NICs (Intel I350, 82599), implemented in software.
  30. 30. Per stream statistics -TOI
  31. 31. Per stream statistics – Python API
  32. 32. Per stream latency/jitter • Base on per stream stats hardware assist • Forward specific type of packets • Filter is based on IPV4.ID and IPv6.flow_id • Software measures latency and jitter resolution is ~usec (not nsec)
  33. 33. Per stream statistics -TOI
  34. 34. Demo Cisco ASR 1013 ESP100 100Gb/sec 13RU - 4KW UCS-220M2 32GB 2x8 cores 2Ghz 2x82559 NIC (4x10Gb/sec) 0.4KW 1RU , 2K$ finalized the GUI
  35. 35. TRex GUI • Desktop application written in JavaFX • Support Windows/Mac/Linux • Like TRex Console gives Stateless functionality – Build a stream from scratch –Scapy like – Control e.g. Start/stop/pause/resume – Live statistics/latency/jitter • Developed by exalt – still under dev
  36. 36. TRex GUI
  37. 37. TRex GUI – Stream builder
  38. 38. Roadmap • Finalized the GUI • FM10K support gives more capability of Per stream statistic • L2 Emulations ARP/IPv6 ND • Routing Emulations BGP/ISIS
  39. 39. More info • Stateless manual • TRex documents Index • GitHub
  40. 40. Backup
  41. 41. Common paths Path Description $root t-rex-64/dpdk_set_ports/stl-sim /stl Stateless native (py) profiles /stl/yaml Stateless YAML profiles /stl/hlt Stateless HLT profiles /ko Kernel modules for DPDK /external_libs Python external libs used by server/clients /exp Golden pcap file for unit-tests /cfg Examples of config files /cap2 Stateful profiles /avl Stateful profiles - SFR profile /automation Python client/server code for both Stateful and Stateless /automation/regression Regression for Stateless and Stateful /automation/config Regression setups config files /automation/trex_control_plane/stl Stateless lib and Console /automation/trex_control_plane/stl/trex_stl_lib Stateless lib /automation/trex_control_plane/stl/examples Stateless Examples

×