From: Yaroslav Brustinov Date: Tue, 23 Aug 2016 17:33:05 +0000 (+0300) Subject: ubuntu 16 disable updates, update create config script info, loopback doc update X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=c15438ed1e4682768e500016e916e1e393f5be5f;p=trex.git ubuntu 16 disable updates, update create config script info, loopback doc update --- diff --git a/images/loopback_example.png b/images/loopback_example.png new file mode 100755 index 00000000..71cbb053 Binary files /dev/null and b/images/loopback_example.png differ diff --git a/release_notes.asciidoc b/release_notes.asciidoc index 80c54803..a2537059 100755 --- a/release_notes.asciidoc +++ b/release_notes.asciidoc @@ -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. diff --git a/trex_book.asciidoc b/trex_book.asciidoc index b8de9f35..1df2dac3 100755 --- a/trex_book.asciidoc +++ b/trex_book.asciidoc @@ -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↔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 ... +---- -- 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 ... --dest-macs ... ---- -.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. |