Merge remote-tracking branch 'upstream/master'
authorbeubanks <[email protected]>
Thu, 10 Mar 2016 19:45:38 +0000 (14:45 -0500)
committerbeubanks <[email protected]>
Thu, 10 Mar 2016 19:45:38 +0000 (14:45 -0500)
1  2 
draft_trex_stateless.asciidoc

@@@ -76,9 -76,9 +76,9 @@@ TRex has limited functionality compare
  | Feature       |  IXExplorer  |TRex | Description 
  | Line rate       | Yes |Almost ~15MPPS/core|
  | Multi stream    | 255 | [green]*Unlimited* |
 -| Packet build flexibility | Limited | [green]*Scapy- Ulimited* | e.g GRE/VXLAN/NSH is supported. Can be extended to future protocols
 +| Packet build flexibility | Limited | [green]*Scapy- Unlimited* | e.g GRE/VXLAN/NSH is supported. Can be extended to future protocols
  | Packet Field engine      | limited | [green]*Unlimited* |
- | Tx Mode | Continues/Burst/Multi burst | Continues/Burst/Multi burst|
+ | Tx Mode | Continuous/Burst/Multi burst | Continuous/Burst/Multi burst|
  | ARP Emulation | Yes | Not yet - workaround |
  | Automation  | TCL/Python wrapper to TCL | [green]*native Python/Scapy*  |
  | Automation speed sec| 30sec | [green]*1msec* | test of load/start/stop/get counters 
@@@ -127,19 -127,43 +127,43 @@@ This Architecture provides the followin
  
  image::images/stateless_objects.png[title="TRex Entities",align="left",width={p_width_1}, link="images/stateless_objects.png"]
  
 -* *TRex*: Each TRex instance includes a number of interfaces   
 -* *Interface*: For each Interface it is possible to add/remove a number of traffic profiles (TP) 
 -* *Traffic profile*: Each traffic profile includes a number of streams. This is the basic building block  of activation. It is possible to add/remove to an interface a profile while other profile already exists. A profile can be looked as a "program" with dependency between streams. It is not possible to change a profile while it is running except changing the rates. 
 -* *Stream*: Each stream includes 
 +* *TRex*: Each TRex instance includes a number of interfaces
 +* *Interface*: For each Interface it is possible to add/remove a number of traffic profiles (TP)
 +* *Traffic profile*: Each traffic profile includes a number of streams. This is the basic building block of activation. It is possible to add/remove traffic profiles on an interface while other traffic profiles are active on the interface. A profile can be looked as a "program" with dependency between it's streams. It is not possible to change a profile while it is running except for changing the rates 
 +* *Stream*: Each stream includes:
  ** *Packet*: Packet template up to 9K bytes 
 -** *Field Engine*:  which field to change, do we want to change packet size
 -** *Mode*: how to send the packet. Continuous/Burst/Multi Burst 
 -** *Rx Stats* Which Statstistic to collect for each stream 
 +** *Field Engine*:  which field to change, do we want to change the packet size
 +** *Mode*: How to send the packet. Continuous/Burst/Multi Burst
 +** *Rx Stats*: Which Statstistic to collect for each stream 
  ** *Rate*: Specified in Packet Per Second (pps) or bandwidth (bps)
- ** *Action*:  The next stream to go after this stream is finished. Valid for Burst/Continues mode
+ ** *Action*:  The next stream to go after this stream is finished. Valid for Burst/Continuous mode
  
  
- ==== TRex package folders 
+ === Statful vs Stateless 
+ TRex Stateless support is basic L2/L3 tests more for Switch/Router. 
+ With Stateless it is possible to define a Stream that has a *one* packet template, define a program to change any fields in the packet and run it in continues/burst/multi-burst mode.
+ With Statless you *can't* learn NAT translation because there is no context of flow/client/server. In Stateful the basic building block is a flow/application (That compose from many packets).
+ However, Using Stateless mode, it is much more flexible as you can define any type of packets and build simple program and in a way you can mimic Stateful but not everything.
+ For example, you can load a pcap with the number of packets as a link of streams 
+ a->b->c->d-> back to a
+ And create a program for each stream to change src_ip=10. 0.0.1-10.0.0.254 this will create something similar to Stateful but the underline is totally different.  
+ If you are confused you probably need Stateless.
+ .Statful vs Stateless 
+ [cols="1^,3^,3^", options="header"]
+ |=================
+ | Feature       |  Stateless  |Statful 
+ | Flow base       | No | Yes
+ | NAT             | No | Yes
+ | Tunnel          | Yes | Only specific 
+ | L7 App emulation | No | Yes
+ | Any type of packet | Yes | No 
+ | Latency Jitter | Per Stream | Global/Per flow
+ |=================
+ === TRex package folders 
  
  [cols="5,5", options="header",width="100%"]
  |=============================