| 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...
=====================================
* 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
=== 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
==== 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↔1, 2↔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⇔1, 2⇔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↔1, 2↔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. |