blob: c951f60527aeda779d5ef68ab7fc2e37da0a734f [file] [log] [blame] [view]
# NDN Traffic Generator
![Language](https://img.shields.io/badge/C%2B%2B-17-blue)
[![CI](https://github.com/named-data/ndn-traffic-generator/actions/workflows/ci.yml/badge.svg)](https://github.com/named-data/ndn-traffic-generator/actions/workflows/ci.yml)
This tool is designed to generate Interest and Data traffic in an NDN network.
The client and server tool accept traffic configuration files which can be
used to specify the pattern of NDN traffic that is required to be generated.
Sample configuration files are provided which include instructions on how
to configure various parameters.
## Prerequisites
Compiling and running ndn-traffic-generator requires the following dependencies:
1. [ndn-cxx and its dependencies](https://docs.named-data.net/ndn-cxx/current/INSTALL.html)
2. [NDN Forwarding Daemon (NFD)](https://docs.named-data.net/NFD/current/INSTALL.html)
## Compilation & Installation
```shell
./waf configure
./waf
sudo ./waf install
```
## Command Line Options
### `ndn-traffic-server`
Usage: ndn-traffic-server [options] <Traffic_Configuration_File>
Respond to Interests as per provided Traffic_Configuration_File.
Multiple prefixes can be configured for handling.
Set the environment variable NDN_TRAFFIC_LOGFOLDER to redirect output to a log file.
Options:
-h [ --help ] print this help message and exit
-c [ --count ] arg maximum number of Interests to respond to
-d [ --delay ] arg (=0) wait this amount of milliseconds before responding to each Interest
-t [ --timestamp-format ] arg format string for timestamp output (see below)
-q [ --quiet ] turn off logging of Interest reception and Data generation
### `ndn-traffic-client`
Usage: ndn-traffic-client [options] <Traffic_Configuration_File>
Generate Interest traffic as per provided Traffic_Configuration_File.
Interests are continuously generated unless a total number is specified.
Set the environment variable NDN_TRAFFIC_LOGFOLDER to redirect output to a log file.
Options:
-h [ --help ] print this help message and exit
-c [ --count ] arg total number of Interests to be generated
-i [ --interval ] arg (=1000) Interest generation interval in milliseconds
-t [ --timestamp-format ] arg format string for timestamp output (see below)
-q [ --quiet ] turn off logging of Interest generation and Data reception
-v [ --verbose ] log additional per-packet information
* These tools need not be used together and can be used individually as well.
* Please refer to the sample configuration files provided for details on how to create your own.
* Use the command line options shown above to adjust traffic configuration.
* By default, timestamps are logged in Unix epoch format with microsecond granularity.
For custom output, the `--timestamp-format` option expects a format string using the syntax given in the
[Boost.Date_Time documentation](https://www.boost.org/doc/libs/1_71_0/doc/html/date_time/date_time_io.html#date_time.format_flags).
## Example
#### ON MACHINE #1
(NFD must be running)
Start the traffic server:
```shell
ndn-traffic-server ndn-traffic-server.conf
```
#### ON MACHINE #2
(NFD must be running)
Start the traffic client:
```shell
ndn-traffic-client ndn-traffic-client.conf
```
## License
ndn-traffic-generator is free software distributed under the GNU General Public License version 3.
See [`COPYING.md`](COPYING.md) for details.