diff options
-rw-r--r-- | draft_trex_stateless.asciidoc | 13 | ||||
-rw-r--r-- | draft_trex_stateless_moved1.asciidoc | 14 | ||||
-rw-r--r-- | packet_builder_yaml.asciidoc | 13 | ||||
-rwxr-xr-x | release_notes.asciidoc | 24 | ||||
-rwxr-xr-x | trex_book.asciidoc | 14 | ||||
-rwxr-xr-x | trex_config.asciidoc | 12 | ||||
-rw-r--r-- | trex_console.asciidoc | 15 | ||||
-rwxr-xr-x | trex_control_plane_design_phase1.asciidoc | 15 | ||||
-rwxr-xr-x | trex_control_plane_peek.asciidoc | 14 | ||||
-rwxr-xr-x | trex_preso.asciidoc | 12 | ||||
-rwxr-xr-x | trex_rpc_server_spec.asciidoc | 14 | ||||
-rwxr-xr-x | trex_vm_manual.asciidoc | 15 | ||||
-rw-r--r-- | vm_doc.asciidoc | 230 |
13 files changed, 34 insertions, 371 deletions
diff --git a/draft_trex_stateless.asciidoc b/draft_trex_stateless.asciidoc index 8d958465..7fed3d96 100644 --- a/draft_trex_stateless.asciidoc +++ b/draft_trex_stateless.asciidoc @@ -21,18 +21,7 @@ ifdef::backend-xhtml11[] :p_width_1: 400 endif::backend-xhtml11[] -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ +include::trex_ga.asciidoc[] == Stateless support (Alpha stage) diff --git a/draft_trex_stateless_moved1.asciidoc b/draft_trex_stateless_moved1.asciidoc index c0fad4be..761d2b18 100644 --- a/draft_trex_stateless_moved1.asciidoc +++ b/draft_trex_stateless_moved1.asciidoc @@ -21,19 +21,9 @@ ifdef::backend-xhtml11[] :p_width_1: 400 endif::backend-xhtml11[] +include::trex_ga.asciidoc[] -moved to link:draft_trex_stateless.html[here] - -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); +moved to link:draft_trex_stateless.html[here] -</script> -++++ diff --git a/packet_builder_yaml.asciidoc b/packet_builder_yaml.asciidoc index 5d58f986..ed80358e 100644 --- a/packet_builder_yaml.asciidoc +++ b/packet_builder_yaml.asciidoc @@ -6,20 +6,11 @@ Packet Builder Language :quotes.++: :numbered: -== change log -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +== change log - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); +include::trex_ga.asciidoc[] -</script> -++++ [options="header",cols="^1,^h,a"] |================= diff --git a/release_notes.asciidoc b/release_notes.asciidoc index fa424a94..4eb0a3c6 100755 --- a/release_notes.asciidoc +++ b/release_notes.asciidoc @@ -10,18 +10,8 @@ ifndef::backend-docbook[] <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/> ++++++++++++++ -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +include::trex_ga.asciidoc[] - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ == TRex release notes == endif::backend-docbook[] @@ -34,6 +24,18 @@ ifdef::backend-docbook[] endif::backend-docbook[] + +== Release 1.98 == + +* Minor Console issue +* [red]*Image is broken* see link:http://trex-tgn.cisco.com/youtrack/issue/trex-193[trex-193] + +== Release 1.97 == + +* Support pyATS with Python 3/32bit +* Per stream statistic supported by software for I350/82559/VXNET3 +* [red]*Image is broken* see link:http://trex-tgn.cisco.com/youtrack/issue/trex-193[trex-193] + == Release 1.96 == * Support pyATS/32bit/Python2.x for TCL diff --git a/trex_book.asciidoc b/trex_book.asciidoc index 256fe5be..6b0db870 100755 --- a/trex_book.asciidoc +++ b/trex_book.asciidoc @@ -9,18 +9,8 @@ TRex :local_web_server_url: csi-wiki-01:8181/trex :toclevels: 4 -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ +include::trex_ga.asciidoc[] + == Introduction diff --git a/trex_config.asciidoc b/trex_config.asciidoc index 148637ec..c08cac4d 100755 --- a/trex_config.asciidoc +++ b/trex_config.asciidoc @@ -9,18 +9,8 @@ TRex first time configuration :deckjs_transition: horizontal-slide :scrollable: -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); +include::trex_ga.asciidoc[] -</script> -++++ ++++++++++++++++++ <script type="text/javascript" diff --git a/trex_console.asciidoc b/trex_console.asciidoc index 0966a341..f6928399 100644 --- a/trex_console.asciidoc +++ b/trex_console.asciidoc @@ -9,20 +9,7 @@ TRex console - commands proposal :local_web_server_url: csi-wiki-01:8181/trex :toclevels: 4 -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ - - +include::trex_ga.asciidoc[] == Console diff --git a/trex_control_plane_design_phase1.asciidoc b/trex_control_plane_design_phase1.asciidoc index c90de74f..b9454b09 100755 --- a/trex_control_plane_design_phase1.asciidoc +++ b/trex_control_plane_design_phase1.asciidoc @@ -6,18 +6,9 @@ TRex Control Plane Design - Phase 1 :quotes.++: :numbered: -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ + +include::trex_ga.asciidoc[] + == Introduction diff --git a/trex_control_plane_peek.asciidoc b/trex_control_plane_peek.asciidoc index fecc7938..3392245f 100755 --- a/trex_control_plane_peek.asciidoc +++ b/trex_control_plane_peek.asciidoc @@ -7,18 +7,8 @@ TRex Control Plane Design - Phase 1 peek :numbered: -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ +include::trex_ga.asciidoc[] + === TRex traffic generator diff --git a/trex_preso.asciidoc b/trex_preso.asciidoc index 8d5ce899..b0773fd6 100755 --- a/trex_preso.asciidoc +++ b/trex_preso.asciidoc @@ -11,18 +11,8 @@ TRex realistic traffic generator :web_server_url: http://trex-tgn.cisco.com/trex -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); +include::trex_ga.asciidoc[] -</script> -++++ == What problem is being solved? diff --git a/trex_rpc_server_spec.asciidoc b/trex_rpc_server_spec.asciidoc index 81d41628..c48df052 100755 --- a/trex_rpc_server_spec.asciidoc +++ b/trex_rpc_server_spec.asciidoc @@ -9,18 +9,8 @@ The TRex RPC Server :local_web_server_url: csi-wiki-01:8181/trex :toclevels: 4 -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ +include::trex_ga.asciidoc[] + == Change log diff --git a/trex_vm_manual.asciidoc b/trex_vm_manual.asciidoc index 3cb07470..7e22d54a 100755 --- a/trex_vm_manual.asciidoc +++ b/trex_vm_manual.asciidoc @@ -6,18 +6,9 @@ TRex Virtual Machine setup and basic usage :quotes.++: :numbered: -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); - -</script> -++++ + +include::trex_ga.asciidoc[] + == Introduction diff --git a/vm_doc.asciidoc b/vm_doc.asciidoc index 3db0a752..05017a9c 100644 --- a/vm_doc.asciidoc +++ b/vm_doc.asciidoc @@ -1,232 +1,4 @@ -++++ -<script> - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-75220362-1', 'auto'); - ga('send', 'pageview'); +moved to server spec -</script> -++++ - -== VM instructions - -=== instructions_type - -these are the instructions type - - -==== fix_checksum_ipv4 - -This command will fix ipv4 checksum header - -[source,python] ----- -{ -ins_name : string ,"fix_checksum_ipv4" ## this command will recalculate the ipv4 checksum -pkt_offset : uint16_t, number, ## the offset into the packet when the ipv4 header is located -} ----- - - -==== flow_man_simple - -This command will allocate and manipulate flow object data -For example, allocate a flow variable and object from 10.0.0.1-10.0.0.10 - -[source,python] ----- -{ -ins_name: string, "flow_man_simple" ## increment a flow variable -flow_varible_name: string "name_of_varible" # internal software will allocate the object for this, the name should be unique -object_size : uint16_t #size of the variable 1,2,4,8 ( max uint64) -Operation : "inc","dec","random" # the command could be inc from min-max start at init - # decrement - # random -split_by_core : true/false ##do we want to split the range by cores -init_value : number, size of object_size (max uint64) -min_value : number, size of object_size (max uint64) -max_value : number, size of object_size (max uint64) -} ----- - -==== write_to_pkt - -This command will copy flow varible into packet offset - -[source,c] ----- -tmp_pkt_data = (flow_var +add_value) - -if (big_edian){ - (varible_size )pkt[pkt_offset] =swap(tmp_pkt_data); -} ----- - - -[source,python] ----- -{ -ins_name : string , "write_to_pkt" ## -flow_varible_name : string "name_of_varible" # flow varible value to copy from -pkt_offset : uint16_t # the offset into the packet to copy the varible -add_value : 0 (size_of_the_varible)# when writing add this value -big_edian : bool default true # swap varible when copy yo packet -} ----- - - - -=== Examples - -=== Examples1 - -an examples to a programs that change src_ip in specific range for one core -range of src_ip 10.0.0.1-10.0.0.10 start from 10.0.0.7 -update ipv4 checksum -ip offset is in 14 - - offset -[ 6 - dest mac 0 - 6 - src mac 6 - 2 network 12 - - ip[0] 14 - ip[4] 18 - ip[8]-TTL,Protocol 22 - ip[12]-src_ip 26 - ip[12]-dest_ip 30 - -} - -The program - -[source,python] ----- -[ - -{ -ins_name : "flow_data_inc" -flow_varible_name : "src_ip" -object_size : 1 -operaqtion : "inc" -split_by_core : false # one core -init_value : 7 -min_value : 1 -max_value : 10 -} , - -{ -ins_name : "write_to_pkt" -flow_varible_name : "src_ip" -pkt_offset : 26, -add_value : 0 , -big_edian : true -}, - -{ -ins_name : "fix_checksum_ipv4" -pkt_offset : 14 -} - -] ----- - -=== Examples2 - -an examples to a programs that change src_ip and dest_ip in specific range for one core -range of src_ip 10.0.0.1-10.0.0.10 start from 10.0.0.7 -range of dest_ip 48.0.0.1-48.0.0.10 start from 48.0.0.7 - -update ipv4 checksum -ip offset is in 14 - - offset -[ 6 - dest mac 0 - 6 - src mac 6 - 2 network 12 - - ip[0] 14 - ip[4] 18 - ip[8]-TTL,Protocol 22 - ip[12]-src_ip 26 - ip[12]-dest_ip 30 - -} - -The program - -[source,python] ----- - -[ - -{ -ins_name : "flow_data_inc" -flow_varible_name : "src_ip" -object_size : 1 -operaqtion : "inc" -split_by_core : false # one core -init_value : 7 -min_value : 1 -max_value : 10 -} , - -{ -ins_name : "write_to_pkt" -flow_varible_name : "src_ip" -pkt_offset : 26, -add_value : 0 , -big_edian : true -}, - -{ -ins_name : "write_to_pkt" -flow_varible_name : "src_ip" -pkt_offset : 30, -add_value : 0 , -big_edian : true -}, - - -{ -ins_name : "fix_checksum_ipv4" -pkt_offset : 14 -} -] - ----- - - -=== Considerations - - -==== Control-Plain check - -- Verify that packet offset into fix_checksum_ipv4 is less that pkt_size - min_ip_header -- There is no stream that are orphaned (not started at startup and nobody call them) - -==== Data-Plain check - -- Convert the commands to a VM compress command -- Allocate flow memory per flow for each stream (currently add the memory in each offset) -- VM runner at startup/ each packet - - - - - - - - - - - - - - - - |