ubuntu 16 disable updates, update create config script info, loopback doc update
authorYaroslav Brustinov <[email protected]>
Tue, 23 Aug 2016 17:33:05 +0000 (20:33 +0300)
committerYaroslav Brustinov <[email protected]>
Tue, 23 Aug 2016 17:33:05 +0000 (20:33 +0300)
images/loopback_example.png [new file with mode: 0755]
release_notes.asciidoc
trex_book.asciidoc

diff --git a/images/loopback_example.png b/images/loopback_example.png
new file mode 100755 (executable)
index 0000000..71cbb05
Binary files /dev/null and b/images/loopback_example.png differ
index 80c5480..a253705 100755 (executable)
@@ -31,8 +31,10 @@ endif::backend-docbook[]
 
 [source,bash]
 ----
-$sudo ./dpdk_setup_ports.py -t            # show the list of ports 
-$sudo ./dpdk_setup_ports.py  -c  03:00.0 03:00.1 -o /etc/trex_cfg.yaml # create optimum /etc/trex_cfg.yaml file 
+$sudo ./dpdk_setup_ports.py -t            # show the list of ports
+$sudo ./dpdk_setup_ports.py -l            # return DPDK interfaces to Linux (if there is proper Linux driver)
+$sudo ./dpdk_setup_ports.py -i            # interactive creation of config file
+$sudo ./dpdk_setup_ports.py -c 03:00.0 03:00.1 -o /etc/trex_cfg.yaml # create optimum /etc/trex_cfg.yaml file
 ----
 
 * Basic Cisco VIC functionality works now. Advanced Stateless/Stateful functionality is still not supported.
index b8de9f3..1df2dac 100755 (executable)
@@ -256,7 +256,10 @@ ISO images for supported Linux releases can be downloaded from:
 | link:http://fedora-mirror01.rbc.ru/pub/fedora/linux/releases/21/Server/x86_64/iso/Fedora-Server-DVD-x86_64-21.iso[Fedora 21]
     | link:http://fedora-mirror01.rbc.ru/pub/fedora/linux/releases/21/Server/x86_64/iso/Fedora-Server-21-x86_64-CHECKSUM[Fedora 21 CHECKSUM] 
 | link:http://old-releases.ubuntu.com/releases/14.04.1/ubuntu-14.04-desktop-amd64.iso[Ubuntu 14.04.1]
-    | http://old-releases.ubuntu.com/releases/14.04.1/SHA256SUMS[Ubuntu 14.04 CHECKSUM]
+    | http://old-releases.ubuntu.com/releases/14.04.1/SHA256SUMS[Ubuntu 14.04* CHECKSUMs]
+| link:http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1-server-amd64.iso[Ubuntu 16.04.1]
+    | http://releases.ubuntu.com/16.04.1/SHA256SUMS[Ubuntu 16.04* CHECKSUMs]
+
 |======================================
 
 For Fedora downloads...
@@ -285,6 +288,9 @@ xref:fedora21_example[Example of installing Fedora 21 Server]
 =====================================
  * To use TRex, you should have sudo on the machine or the root password.
  * Upgrading the linux Kernel using `yum upgrade` requires building the TRex drivers. 
+ * In Ubuntu 16, auto-updater is enabled by default. It's advised to turn it off as with update of Kernel need to compile again the DPDK .ko file. +
+Command to remove it: +
+ > sudo apt-get remove unattended-upgrades
 =====================================
 
 ==== Verify Intel NIC installation
@@ -343,23 +349,16 @@ $wget --no-cache $WEB_URL/release/vX.XX.tar.gz #<1>
 
 === Running TRex for the first time in loopback 
 
-If you have a 10Gb/sec TRex (based on Intel 520-D2 NICs), you can verify that it works correctly by loopback on the ports.
-You can install Intel SFP+ or Cisco SFP+, but you cannot connect ports that are on the same NIC to each other (it might not sync).
-If you have only one NIC of 10gb/sec you cannot perform this test because the ports will not have a valid link. 
-Another option for loopback is to use link:http://www.fiberopticshare.com/tag/cisco-10g-twinax[Cisco twinax copper cable].
-
-//TBD: perhaps rephase, using a "Prerequisites" or "Required" heading. The requirement here would be: Two (2) 10gb/sec NICs 
-//[hh] it is not accurate beacuse with 1Gb/sec you can have this test 
-
-.Correct loopback
-image:images/loopback_right.png[title="Correct Loopback"] 
-
-.Wrong loopback
-image:images/loopback_wrong.png[title="Wrong Loopback"] 
+Before jumping to check the DUT, you could verify TRex and NICs working in loopback. +
+For performance-wise, it's better to connect interfaces on the same NUMA (controlled by one physical processor) +
+However, if you have a 10Gb/sec interfaces (based on Intel 520-D2 NICs), and you connect ports that are on the same NIC to each other with SFP+, it might not sync. +
+We have checked many SFP+ (Intel/Cisco/SR/LR) and had link. +
+If you are still facing this issue you could either try to connect interfaces of different NICs or use link:http://www.fiberopticshare.com/tag/cisco-10g-twinax[Cisco twinax copper cable].
 
-If you have a 1Gb/Sec Intel NIC (I350) or XL710/X710 NIC, you can do anything you like from the loopback perspective *but* first filter the management port - see xref:trex_config[TRex Configuration].
+.Loopback example
+image:images/loopback_example.png[title="Loopback example"] 
 
-// above, clarify "you can do anything you like from the loopback perspective"
+If you have a 1Gb/Sec Intel NIC (I350) or XL710/X710 NIC, you can connect any port to any port from loopback perspective *but* first filter the management port - see xref:trex_config[TRex Configuration].
 
 ==== Identify the ports 
 
@@ -440,48 +439,52 @@ and example
 
 ==== Script for creating config file
 
-We provide a script to create configuration file by specifying as input desired interfaces.
-Examples of using:
+===== Interactive mode
+
+[source,bash]
+----
+sudo ./dpdk_setup_ports.py -i
+----
+
+Will be printed table with all interfaces and related information. +
+Then, user is asked to provide desired interfaces, MAC destinations etc.
 
-* Get view of all ports as table:
+===== Specifying input arguments from CLI
+
+Another option is to run script with all the arguments given directly from CLI. +
+Run this command to see list of all interfaces and related information:
 
 [source,bash]
 ----
 sudo ./dpdk_setup_ports.py -t
 ----
 
-* Create config file with given interfaces. You can use PCI addresses or Linux IF (eth1 etc.):
+* In case of Loopback, no need to provide destination MACs. +
+Will be assumed connection 0&#8596;1, 2&#8596;3 etc. +
+Just run:
 
 [source,bash]
 ----
-sudo ./dpdk_setup_ports.py -c 13:00.0 eth3 --dump -o /etc/trex_cfg.yaml
-### Config file generated by dpdk_setup_ports.py ###
+sudo ./dpdk_setup_ports.py -c <TRex interface 0> <TRex interface 1> ...
+----
 
-- port_limit: 2
-  version: 2
-  interfaces: ['13:00.0', '1b:00.0']
-  port_info:
-      - dest_mac: [0x00, 0x0c, 0x29, 0x2a, 0x99, 0xda] # MAC OF LOOPBACK TO IT'S DUAL INTERFACE
-        src_mac:  [0x00, 0x0c, 0x29, 0x2a, 0x99, 0xd0]
-      - dest_mac: [0x00, 0x0c, 0x29, 0x2a, 0x99, 0xd0] # MAC OF LOOPBACK TO IT'S DUAL INTERFACE
-        src_mac:  [0x00, 0x0c, 0x29, 0x2a, 0x99, 0xda]
+* In case of router (or other next hop device), should be specified MACs of router interfaces as destination.
 
-  platform:
-      master_thread_id: 0
-      latency_thread_id: 1
-      dual_if:
-        - socket: 0
-          threads: [2]
+[source,bash]
+----
+sudo ./dpdk_setup_ports.py -c <TRex interface 0> <TRex interface 1> ... --dest-macs <Router interface 0 MAC> <Router interface 1 MAC> ...
 ----
 
-.Arguments of dpdk_setup_ports.py script
+* In case of Switch, it's NICs should be transparent to config: if DUT is router, use Router's MACs. If loopback, use TRex MACs. (See previous bullets)
+
+.Additional arguments to creating script (dpdk_setup_ports.py -c)
 [options="header",cols="2,5,3",width="100%"]
 |=================
 | Arg | Description | Example
 | -c  | Create a configuration file by specified interfaces (PCI address or Linux names: eth1 etc.) | -c 03:00.1 eth1 eth4 84:00.0
 | --dump | Dump created config to screen. |
 | -o | Output the config to this file. | -o /etc/trex_cfg.yaml
-| --dest-macs | Destination MACs to be used in created yaml file per each interface. Without specifying the option, will be assumed loopback (0&#8660;1, 2&#8660;3 etc.) | --dest-macs 11:11:11:11:11:11 22:22:22:22:22:22
+| --dest-macs | Destination MACs to be used in created yaml file per each interface. Without specifying the option, will be assumed loopback (0&#8596;1, 2&#8596;3 etc.) | --dest-macs 11:11:11:11:11:11 22:22:22:22:22:22
 | --ci | Cores include: White list of cores to use. Make sure there is enough for each NUMA. | --ci 0 2 4 5 6
 | --ce | Cores exclude: Black list of cores to exclude. Make sure there will be enough for each NUMA. | --ci 10 11 12
 | --no-ht | No HyperThreading: Use only one thread of each Core in created config yaml. |