Administration > Tools > Link Integrity Test
Used for debugging, the link integrity test enables you to measure the throughput and integrity (amount of loss) of your WAN link. You can run either iperf or tcpperf (Version 1.4.8).
- These tests run on the two selected appliances using user-specified parameters for bandwidth, duration, DSCP marking, and type of traffic (tunnelized / pass-through-shaped / pass-through-unshaped).
- Orchestrator runs the selected test twice—once passing traffic from Appliance A to Appliance B, and a second run passing traffic from Appliance B to Appliance A.
- Custom Parameters are available for tcpperf and should be used cautiously by advanced users.
|-s||server: Run tcpperf in server mode (not applicable for file generation). Listens on TCP port 2153 by default. [server_port [server_port [server_port]..]]|
|-sr||server range: <server_port_start:server_port_end>|
|-c||client server_IP: TCPperf Server’s IP address (not applicable for file generation). [server_port [server_port [server_port]..]]|
|-g||generate basefilename: Dump generated data to a file.|
- The default server ports are 2153 and 2154.
- You can specify multiple odd-numbered server ports.
- The next even-numbered server ports will also be assigned automatically.
- These even numbers are reserved for double connection testing (see -I, interface IP).
- Generate mode generates a local file per flow with the same content that the client would have generated with the specified parameters.
- SG write mode is like generate mode, except that it writes to an SG device.
|-6||ip6: Forces tcpperf to use IPv6 addresses only. Default is IPv4 addresses.|
|-I||interface IP: Specify source interface IP address. Default is any.|
|-o||outname: Output filename. Default is stdout.|
|-u||update <secs>: Frequency of printed updates in seconds. Default is 1.|
|-d||duration <secs>: Set maximum test duration in seconds. Default is infinite.|
|-w||wait <secs>: Wait until <secs> since 1970 before transmitting data.|
|-z||realtime: Elevate to realtime priority. Requires root privilege.|
|-cm||cpu mask: Specify CPU affinity. Requires root privilege.|
|-q||quiet <level>: Suppresses detail based on level:|
0: None. Print results when test is complete.
1: Default. Periodic packet/byte statistics.
2: Verbose. Adds connection state changes.
3: Debug. Prints everything.
|-tw||tcpwindow: TCP window_size. Default is OS default.|
|-tm||tcpmss: TCP mss. Default is OS default.|
|-tn||tcpnodelay: TCP nodelay option. Default is nagle enabled.|
|-tq||tcpquickack: TCP quick ack option. Default is delayed acks.|
|-td||tcpdscp <cp>: Sets IP DSCP to <cp> (decimal). Default is 0.|
|-tr||tcpretries <n>: Sets number of times to retry TCP connections.|
|-tp||tcppace <n> <mode>: Pace TCP connection setup rate. Limits number of half-open connections to <n>. Valid <mode> types are:|
preestablish: All connections are established before data transmission. Default.
simultaneous: Begin data transmission as soon as connection made.
|-ta||tcpabort: Sends RSTs instead of FINs on close.|
|-tf||tcpfindelay <secs>: Time to wait after all data is sent before sending FIN/RST.|
|-f||file: Source filename to load. Default is 10MB of random data.|
|-i||test id <i>: Set test ID. The same test ID produces the same data set. User different test IDs to generate unique data for each test run. Default is zero.|
|-n||number <n>: Generate <n> flows. Default is one.|
|-b||begin <byte>: First byte in transmission. Default is zero.|
|-e||end <byte>: End byte in transmission (number of bytes to transmit). Default is file size.|
Begin and end bytes can be greater than file size. The content is repeated to create extra bytes.
|-a||antipat <mode>: Antipattern mode: default is mutate.|
none: Repeats same content verbatim on all flows. Repeats content if end byte exceeds content size.
mutate: Ensures all flows and data repeats are unique. Preserves short range patterns within flow. Destroys cross flow similarity. Destroys original byte code distribution.
shuffle: Ensures all flows and data repeats are unique. Preserves short range patterns within flow. Preserves cross flow similarity. Preserves original byte code distribution.
fast: Ensures all flows and data repeats are unique. Does not preserve short range patterns. Destroys cross flow similarity. Destroys original byte code distribution. Uses less CPU than mutate or shuffle.
|-l||loopback [mode]: Loopback. Default is unidirectional.|
uni: Unidirectional client to server.
rev: Unidirectional server to client.
bidir: Bidirectional, client and server independently send data on the same TCP connection.
bidir2: Bidirectional, client and server independently send data on secondary TCP connections.
loop: Bidirectional, server loops data back to client on the same TCP connection.
loop2: Bidirectional, server loops data back to client on a secondary TCP connection.
bidir2: Bidirectional, transmits one transaction at a time. Client waits for previous transaction to be echoed. Emulates transactional data.
NOTES: Content source for traffic originating at the server is determined by the server (not client) command line. loop2 and bidir2 modes 2 x <n> TCP connections and requires that the server has even-numbered ports available.
|-r||rate <bps>: Limits aggregate transmission rate to |
|-t||trans <min> [max]: Sets size of each socket transaction. Default is 64000.|
If <min> and <max> are specified, client generates transactions with random sizes between <min> and <max>. This feature is often used with -l and -r. Set the minimum transaction size to 100000 to improve single-flow performance.
|-v||verify <mode>: Verify integrity of received data. Default is global.|
none: No verification. Fastest/least CPU load.
global: Single global hash per flow. Fast, but cannot isolate an errored block.
literal: Literal comparison of data upon reception. Fast, can isolate errors to the byte level. Requires that server has same content as client. Use random data gen or same -f file at server.
embedded: Embedded hashes every 4096 bytes. Slower, can isolate errors to 4096 byte block.
|-p||repeat <n>: Repeat each content byte n times. Default is 1 (no repeats). Works for both random data and file content.|
|-k||corrupt <n> <m> <s> [<%change>[<%insert>[<%delete>]]] : Corrupt 0 to n bytes of data every m bytes using seed s. Delta bytes will require 0.5*n/m percent overhead. Each corrupt can be a change, insert or delete with the probability of each being specifiable. The default is 33.3% changes, 33.3% inserts, and 33/3% deletes.|
|-x||excerpts <b> <e> <l> [s]: Send random excerpts of average <l> length bytes from content between <b>egin and <e>nd bytes. The -b and -e options still specify total bytes to send. Uses random seed s.|
|-y||defred <s% > <m%> <l%> <sb> <smin> <smax> <mb> <mmin> <mmax> <lb> <lmin lmax>: Generate content based on defined reduction model.|
Content is drawn from three data sets: s, m, and l:
s%: Specifies fraction [50%] of s-type content (short term reducible).
m%: Specifies fraction [30%] of m-type content (medium term reducible).
l%: Specifies fraction [20%] of l-type content (long term reducible).
Short-term content comes from data set of sb Mbytes [100MB] with excerpts uniformly distributed between smin and smax bytes [10K-1M].
Medium-term content comes from data set of mb Mbytes [100GB] with excerpts uniformly distributed between lmin and lmax bytes [10K-1M].
Long-term content comes from data set of lb Mbytes [100TB] with excerpts uniformly distributed between smin and smax bytes [10K-1M].
The -b and -e options still specify total bytes to send. Performance is best if -b is 0.
Uses random seed s.
|-ssl [param=value …]||Enable SSL on connection with optional parameters.|
version=2|3|t10|t11|t12: Set the protocol version.
cipher=OPENSSL-CIPHER-DESC: Set the choice of ciphers.
ticket=yes|no: Enable/disable session ticket extension.
cert=FILENAME: Use this certificate file.
key=FILENAME: Use this private keyfile.
compression=none|any|deflate|zlib|rle: Set the compression method.
sslcert: Print the SSL certificate in PEM format.
sslkey: Print the SSL key in PEM format.