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. 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
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
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
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
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
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
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.
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)
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. 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
38. Roadmap
• Finalized the GUI
• FM10K support gives more capability of Per
stream statistic
• L2 Emulations ARP/IPv6 ND
• Routing Emulations BGP/ISIS