trex realistic traffic generator - stateless support

42
5/2016 TRex Team v0.2 New Stateless support

Upload: hanoch-haim

Post on 16-Apr-2017

2.437 views

Category:

Engineering


10 download

TRANSCRIPT

Page 1: TRex  Realistic Traffic Generator  - Stateless support

5/2016 TRex Team v0.2

New Stateless support

Page 2: TRex  Realistic Traffic Generator  - Stateless support

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

Page 3: TRex  Realistic Traffic Generator  - Stateless support

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

Page 4: TRex  Realistic Traffic Generator  - Stateless support

Traffic Profile Example

Page 5: TRex  Realistic Traffic Generator  - Stateless support

Control plane High level

Page 6: TRex  Realistic Traffic Generator  - Stateless support

Multi User

Page 7: TRex  Realistic Traffic Generator  - Stateless support

TRex Objects relations

Page 8: TRex  Realistic Traffic Generator  - Stateless support

Stateful vs Stateless

Feature Stateless StatefulFlow base No Yes

NAT No YesTunnel Yes Some are supported

L7 App emulation No Yes

Any type of packet Yes No

Latency/Jitter Per Stream Per port/Per flow sample

Page 9: TRex  Realistic Traffic Generator  - Stateless support

One stream with two directions

Page 11: TRex  Realistic Traffic Generator  - Stateless support

Python HLTAPI Automation

Page 12: TRex  Realistic Traffic Generator  - Stateless support

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

Page 13: TRex  Realistic Traffic Generator  - Stateless support

Interactive TUI

Page 14: TRex  Realistic Traffic Generator  - Stateless support

Performance

Profile name Description Per core performanceimix_1pkt 1 stream/64byte 15-22MPPS

imix_3pkt_vm 3 streams/IMIX/ip range 50Gb/sec

udp_rand_size_9k1 stream, FE, random packet size 200Gb/sec

UCS UCS 240M4NICS 2xXL710

• Number of streams can scale • Performance depends on many variables.• Field engine can scale to complex scenarios. Has impact on performance

Page 15: TRex  Realistic Traffic Generator  - Stateless support

Traffic profile

Page 16: TRex  Realistic Traffic Generator  - Stateless support

Simple Interleaving streams

Page 17: TRex  Realistic Traffic Generator  - Stateless support

Simple Interleaving streams -profile

Page 18: TRex  Realistic Traffic Generator  - Stateless support

Multi streams

Page 19: TRex  Realistic Traffic Generator  - Stateless support

Multi burst

Page 20: TRex  Realistic Traffic Generator  - Stateless support

Multi burst profile

Page 21: TRex  Realistic Traffic Generator  - Stateless support

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

Page 22: TRex  Realistic Traffic Generator  - Stateless support

Field Engine, Syn attack

Page 23: TRex  Realistic Traffic Generator  - Stateless support

Multiple Clients example

Page 24: TRex  Realistic Traffic Generator  - Stateless support

Multiple Clients profile

Page 25: TRex  Realistic Traffic Generator  - Stateless support

Covert pcap packet file to one stream

Page 26: TRex  Realistic Traffic Generator  - Stateless support

Pcap file conversion to streams

Page 27: TRex  Realistic Traffic Generator  - Stateless support

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

Page 28: TRex  Realistic Traffic Generator  - Stateless support

Teredo tunnel (IPv6 over IPv4)

Page 29: TRex  Realistic Traffic Generator  - Stateless support

Per stream statistics• Implemented using hardware assist with Intel

X710/XL710 NIC flow director rules• With other NICs (Intel I350, 82599),

implemented in software.

Page 30: TRex  Realistic Traffic Generator  - Stateless support

Per stream statistics -TOI

Page 31: TRex  Realistic Traffic Generator  - Stateless support

Per stream statistics – Python API

Page 32: TRex  Realistic Traffic Generator  - Stateless support

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)

Page 33: TRex  Realistic Traffic Generator  - Stateless support

Per stream statistics -TOI

Page 34: TRex  Realistic Traffic Generator  - Stateless support

DemoCisco ASR 1013 ESP100 100Gb/sec 13RU - 4KW

UCS-220M2 32GB 2x8 cores 2Ghz 2x82559 NIC (4x10Gb/sec)0.4KW 1RU , 2K$

finalized the GUI

Page 35: TRex  Realistic Traffic Generator  - Stateless support

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

Page 36: TRex  Realistic Traffic Generator  - Stateless support

TRex GUI

Page 37: TRex  Realistic Traffic Generator  - Stateless support

TRex GUI – Stream builder

Page 38: TRex  Realistic Traffic Generator  - Stateless support

Roadmap

• Finalized the GUI • FM10K support gives more capability of Per

stream statistic • L2 Emulations ARP/IPv6 ND• Routing Emulations BGP/ISIS

Page 40: TRex  Realistic Traffic Generator  - Stateless support

Thank you !

Page 41: TRex  Realistic Traffic Generator  - Stateless support

Backup

Page 42: TRex  Realistic Traffic Generator  - Stateless support

Common pathsPath 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