Skip to content

Commit

Permalink
Merge branch 'Enhancement_#157_disable_quick_tx_default' of github.co…
Browse files Browse the repository at this point in the history
…m:appneta/tcpreplay into Enhancement_#157_disable_quick_tx_default

Conflicts:
	docs/CHANGELOG
  • Loading branch information
aindeev committed Dec 17, 2014
2 parents 35875b7 + c98d03f commit 07de7ee
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 255 deletions.
44 changes: 27 additions & 17 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -77,24 +77,25 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.

Make Tcpreplay fast
==========================

How to make Tcpreplay go fast
=============================

1) Quick TX
--------
There are two ways to add modules which will make Tcpreplay fast. On
Linux and BSD you can separately install netmap (see instructions below).
Note that netmap is disruptive to the network during a Tcpreplay test.
Specifically the network interface is completely bypassed when netmap
is active. A safer solution is Quick TX (available only for Linux).
is active. A simpler and safer solution is Quick TX (available only
for Linux). Quick TX ships with Tcpreplay as of version 4.1.

As of version 4.1.0, Tcpreplay includes the Quick TX module for Linux.
It allows Tcpreplay to bypass the kernel network stack and write directly
to the network driver. Doing so allows up to wire-rate transmissions
(tested up to 10Gbps). Unlike netmap, it does not bypass the network
stack during Tcpreplay transmission. Also, you do not have to download
kernel source code to build it. By default Quick TX is built and
installed automatically.

Neither Quick TX or netmap are part of the basic build.
Quick TX allows Tcpreplay to bypass the kernel network stack and write
directly to the network driver. Doing so allows up to wire-rate
transmissions (tested up to 10Gbps). Unlike netmap, it does not bypass
the network stack during Tcpreplay transmission. Also, you do not have
to download kernel source code to build it. By default Quick TX is built
and installed automatically.

If you would like to have Quick TX installed, do the following:

Expand All @@ -119,9 +120,9 @@ with 'qtx:', e.g.

tcpreplay -i qtx:eth0 -Kt bigFlows.pcap

Build netmap feature
====================

2) netmap
------
This feature will detect netmap capable network drivers on Linux and
BSD systems. If detected, the network driver is bypassed for the
execution duration of tcpreplay and tcpreplay-edit, and network buffers
Expand All @@ -137,9 +138,10 @@ Ensure that you have supported NICs installed. Most Intel and nForce
(nVidia) adapters will work. Some virtual adapters are supported.

FreeBSD 10 and higher already contains netmap capabilities and should
be detected automatically by "configure". But first you must enable netmap on the system
by adding 'device netmap' to your kernel config and rebuilding the kernel. When
complete, /dev/netmap will be available.
be detected automatically by "configure". But first you must enable
netmap on the system by adding 'device netmap' to your kernel config
and rebuilding the kernel. When complete, /dev/netmap will be
available.

For Linux, download latest netmap sources from http://info.iet.unipi.it/~luigi/netmap/
or run 'git clone https://code.google.com/p/netmap/'. You will also need to have
Expand All @@ -166,6 +168,7 @@ directory, for example:
make
sudo make install


Compilers and Options
=====================

Expand All @@ -181,6 +184,7 @@ is an example:

*Note Defining Variables::, for more details.


Compiling For Multiple Architectures
====================================

Expand All @@ -196,6 +200,7 @@ architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.


Installation Names
==================

Expand All @@ -219,6 +224,7 @@ you can set and what kinds of files go in them.
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.


Optional Features
=================

Expand All @@ -234,6 +240,7 @@ find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.


Specifying the System Type
==========================

Expand Down Expand Up @@ -264,6 +271,7 @@ platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.


Sharing Defaults
================

Expand All @@ -275,6 +283,7 @@ values for variables like `CC', `cache_file', and `prefix'.
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.


Defining Variables
==================

Expand All @@ -294,6 +303,7 @@ an Autoconf bug. Until the bug is fixed you can use this workaround:

CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash


`configure' Invocation
======================

Expand Down
227 changes: 0 additions & 227 deletions README

This file was deleted.

16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,20 +67,24 @@ Simple directions for Unix users:
make
sudo make install
```
Build quick_tx feature
Build Quick TX feature
----------------------
This feature will compile the quick_tx module. This module is
designed to speed up performance to wire rates on 1GigE and 10GigE, and using quick_tx does not disrupt any other traffic going through the network interface.
Quick TX allows Tcpreplay to bypass the kernel network stack and write
directly to the network driver. Doing so allows up to wire-rate
transmissions (tested up to 10Gbps). For detailed installation information
see INSTALL.

This is still an experimental feature and may not work with every kernel version or with every network driver.
**NOTE:** This feature still an experimental and may not work with every
kernel version or with every network driver.

Here are the directions for building with quick_tx
If you would like to have Quick TX installed, do the following:
```
./configure --enable-quick-tx
make
sudo make install
```
To run tcpreplay with using quick_tx on an interface use the `qtx` prefix:
To use the Quick TX module, run tcpreplay with interface names prefixed
with 'qtx:', e.g.
```
tcpreplay -i qtx:eth0
```
Expand Down
Loading

0 comments on commit 07de7ee

Please sign in to comment.