GithubHelp home page GithubHelp logo

jiho-dev / trex-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cisco-system-traffic-generator/trex-core

0.0 2.0 0.0 69.9 MB

trex-core

Home Page: http://trex-tgn.cisco.com/

License: Apache License 2.0

C++ 21.67% CMake 0.06% C 61.65% Shell 0.02% Python 15.67% HTML 0.03% JavaScript 0.01% Makefile 0.89%

trex-core's Introduction

TRex Low-Cost, High-Speed Stateful, Pioneer Award Winner Traffic Generator

Traditionally, 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. Realistic and Stateful traffic generators are needed in order to:

  • Test and provide more realistic performance numbers

  • Design and architecture of SW and HW based on realistic use cases

Current Challenges

  • Cost : Commercial State-full traffic generators are expensive

  • Scale : Bandwidth does not scale up well with features complexity

  • Standardization : Lack of standardization of traffic patterns and methodologies

  • Flexibility : Commercial tools do not allow agility when flexibility and changes are needed

Implications

  • High capital expenditure (capex) spent by different teams

  • Testing in low scale and extrapolation became a common practice, it is not accurate, and hides real life bottlenecks and quality issues

  • Different feature / platform teams benchmark and results methodology

  • Delays in development and testing due to testing tools features dependency

  • Resource and effort investment in developing different ad hoc tools and test methodologies

TRex addresses these problems through an innovative and extendable software implementation and by leveraging standard and open SW and x86/UCS HW.

TRex in a Nutshell

  • Cisco Pioneer Award Winner 2015

  • Fueled by DPDK

  • Generates and analyzes L4-7 traffic and able to provide in one tool capabilities provided by commercial L7 tools.

  • Stateful traffic generator based on pre-processing and smart replay of real traffic templates.

  • Generates and amplifies both client and server side traffic.

  • Customized functionality can be added.

  • Scale to 200Gb/sec for one UCS ( using Intel 40Gb/sec NICS)

  • Low cost

  • Virtual interfaces support, enable TRex to be used in a fully virtual environment without physical NICs and the following example use cases:

    • Amazon AWS

    • TRex on your laptop

    • Self-contained packaging

Current TRex Feature sets

  • Support Intel DPDK 1/10/40Gbps interfaces

  • High scale of realistic traffic (number of clients, number of server, bandwidth)-up to 200Gb/sec in one UCS

  • Virtualization interfaces support (VMXNET3/E1000 )

  • Some stateless support for example IMIX traffic generation

  • Latency/Jitter measurements

  • Flow ordering checks

  • NAT, PAT dynamic translation learning

  • IPV6 inline replacement

  • Some cross flow support (e.g RTSP/SIP)

  • Python automation API

  • Windows GUI for real-time latency/jitter/flow order

What it’s not

  • Stateless IXIA, Ostinato ,pktgen-dpdk like traffic generator. it has a minimal stateless support

  • There is no routing emulation support, for example, BGP/ISIS/ARP

  • There is no TCP stack.

  • Client only or Server Only.

What you can do with it

  • Beanchmark/Stress stateful features :

    • NAT

    • DPI

    • Load Balancer

    • Network cache devices

    • FireWall

    • IPS/IDS

  • Mixing Application level traffic/profile (HTTP/SIP/Video)

  • Unlimited concurent flows, limited only by memory

Wiki

Internal Wiki

Windows Client GUI

TrexViewer
Figure 1.

Other tools

  • EAST COAST - STG10G DPDK stateful Traffic Generator

  • NetLoad Inc - Performer/Developer

Contact Us

TRex team,Cisco System Inc

Roadmap

  • Stateless support, packet base see here for high level of functionality

  • High speed TCP stack support

trex-core's People

Contributors

imarom avatar hhaim avatar danklein10 avatar ybrustin avatar ibarnea avatar

Watchers

James Cloos avatar Jiho Jung avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.