---
title: "X Traffic"
description: ""
url: "https://docs.itrsgroup.com/docs/geneos/7.11.0/collection/x-traffic/index.html"
---
## Introduction

The Geneos X Traffic plugin monitors user-defined TCP/IP conversations and displays the data send and receive rates and connection state. When a connection is terminated, the plugin can also detect which side of the connection initiated termination.

The Netprobe must run in a location that it can "listen" to TCP/IP traffic. This typically means it must run on a host which is participating in the TCP/IP conversation which you wish to monitor.

## Views

##### View

The X Traffic plugin produces a single view, which is described below. Depending upon the plugin mode selected, the view may display summary rows, details rows or a combination of the two.

Summary rows display a summary of statistics for all conversations matching that plugin configuration item, whereas detail rows show details for a particular TCP/IP conversation. This distinction is particularly relevant when configuring conversations that only partially specify an end-point.

**Headline Legend**

The headlines produced by this plugin are only available in details mode.

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                                <col width="24%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                                <col width="76%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                                <thead>
                                    <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                        <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1"><strong>Name</strong>
                                        </th>
                                        <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1"><strong>Description</strong>
                                        </th>
                                    </tr>
                                </thead>
                                <tbody valign="top">
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">pktSendRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Total packet send rate in packets per
 second.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">pktRecvRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Total packet receive rate in packets per
 second.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">dataSendRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Total data send rate in kilobytes/s.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">dataRecvRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">Total data receive rate in
 kilobytes/s.</td>
                                    </tr>
                                </tbody>
                            </table>
                            
</div>

**Table Legend**

<div class="table-container">
<table class="legacy-table"   style="margin-left: 0;margin-right: auto;width: 100%;mc-table-style: url('../Resources/TableStyles/ref_2_col_table.css');" cellspacing="0">
                                <col width="16%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                                <col width="84%" class="TableStyle-ref_2_col_table-Column-Column1"/>
                                <thead>
                                    <tr class="TableStyle-ref_2_col_table-Head-Header1">
                                        <th class="TableStyle-ref_2_col_table-HeadE-Column1-Header1"><strong>Name</strong>
                                        </th>
                                        <th class="TableStyle-ref_2_col_table-HeadD-Column1-Header1"><strong>Description</strong>
                                        </th>
                                    </tr>
                                </thead>
                                <tbody valign="top">
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">name</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The session (or conversation) name, as
 configured by the user.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">state</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The connection state, either "connected" or
 "disconnected" followed by the time at which
 this state occurred.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">connectionCount</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The number of connections for this session.
 This field is only populated for summary
 rows.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">pktSendRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Packets sent per second, averaged over the
 sample interval.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">pktRecvRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Packets received per second, averaged over
 the sample interval.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">dataSendRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Data sent in kilobytes/s, averaged over the
 sample interval.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">dataRecvRate</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Data received in kilobytes/s, averaged over
 the sample interval.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">tmSinceLastPacket</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">Number of seconds elapsed since the last
 packet sent or received.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">localAddress</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The IP address of the local side of the
 connection.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">localPort</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The port number of the local side of the
 connection.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyE-Column1-Body1">remoteAddress</td>
                                        <td class="TableStyle-ref_2_col_table-BodyD-Column1-Body1">The IP address of the remote side of the
 connection.</td>
                                    </tr>
                                    <tr class="TableStyle-ref_2_col_table-Body-Body1">
                                        <td class="TableStyle-ref_2_col_table-BodyB-Column1-Body1">remotePort</td>
                                        <td class="TableStyle-ref_2_col_table-BodyA-Column1-Body1">The port number of the remote side of the
 connection.</td>
                                    </tr>
                                </tbody>
                            </table>
                            
</div>

## Plugin Configuration

The X Traffic plugin listens to all TCP/IP data received by a host, and matches the local/remote host and ports as configured by the user.

Plugin configuration is placed in the x-traffic configuration section.

### var-recvInterfaces

Specifies a comma-separated list of network interface names used to monitor incoming TCP/IP data.

On UNIX machines, interface names can be found using the command "ifconfig -a". Example names are "eth0" or "ce0".

On Windows machines, interface names can be listed by running Netprobe using the "-ifconfig" command-line option. A Windows interface name will look similar to the following:

```
\\Device\\NPF\_{BDFE3EAC-0275-440A-923C-C9C4CE3B37F2}
```

Mandatory: Yes

### sendInterface

The name of the network interface to be used to send packets (e.g. hme0). Usually the same as *[*recvInterface*](#recvinterface)* parameter, but can be set to a different value in certain network configurations.

Mandatory: Yes

### sessions

Specifies the list of (at least one) TCP/IP sessions that this plugin will monitor. Sessions specify the source and destination host and ports of the TCP/IP connection, and each host or port may be configured as a wildcard. Connections matching this session will then be monitored.


**Note**


It is an invalid configuration to specify all parts of a connection configuration as a wildcard - you must specify at least one host or port.



Mandatory: Yes

### sessions > session > var-name

The name of the session (or conversation) - this is the name which will be displayed in the view (as the row name). Session names should be unique within each plugin instance.

Mandatory: Yes

### sessions > session > src

Specifies the source host/IP address and port for the session. The host/IP or port may be set to a wildcard (\*) to indicate a match against any host or port.

Mandatory: Yes

### sessions > session > dst

Specifies the remote host/IP address and port and port for the session. The host/IP or port may be set to a wildcard (\*) to indicate a match against any host or port.

Mandatory: Yes

### displayMode

Specifies the display mode for this plugin. Possible values are SUMMARY, DETAILS or SUMMARY+DETAILS.

Summary mode only shows the top-level summaries for the configured sessions. Details mode shows only the details (i.e. the individual connections that match the configured sessions) while summary and details mode shows both. See the [*view section*](#views) for an example.

Mandatory: No

Default: SUMMARY+DETAILS

### var-cleanUpTime

The length of time for which a disconnected TCP/IP connection will be displayed before it is removed from the view. This setting takes a positive integer (at least 1) which specifies the number of seconds before a connection is cleared.

Mandatory: No

Default: 60 (seconds)


**Note**

  X Traffic periodically checks idle connection that does not have packet exchange for more than 60 seconds against the OS tcp table to verify if it still connected or not. 


### checkTargetHostHasChangedIp

Forces X Route to detect if the underlying IP address of a host name has +changed. This will restart the packet capture engine so X Route will +continue to check the correct host. In between restarts there is a +potential for losing packets.


**Note**

  Restarting the packet capture engine will affect all X-Set plugins as they too might miss packets.



Mandatory: No

Default: False

## Permissions

The plugin needs to open network devices, so you should run the Netprobe using root or administrator permission on Unix and Windows, respectively.

On Linux kernel versions 2.6.24 and higher, an alternative to running the Netprobe as root is by setting the `CAP_NET_RAW` and `CAP_NET_ADMIN` Linux capabilities on the Netprobe binary using the following command:

```
setcap cap_net_raw,cap_net_admin+eip <netprobe binary>
```

When running the Netprobe with set capabilities, the  `lib64/startup` folder in the Netprobe directory should be in the `ld.so` trusted paths. Otherwise, the runtime libraries will not load properly. For guidance, see [Run Netprobe under elevated privileges in Linux](https://docs.itrsgroup.com/docs/geneos/7.11.0/collection/netprobe/installation/quickstart-linux-and-other-platforms/index.html#run-netprobe-under-elevated-privileges-in-linux).


## Third Party Libraries

Windows: The Npcap packet capture library needs to be installed on the host. If Npcap is not installed using WinPcap API-compatible mode, then the Npcap installation directory must be added in the `PATH` environment variable or the `DLL_PATH` registry variable.

Unix: The shared library `libpcap.so` needs to be in the `netprobe/lib64` directory. It is recommended to use `libpcap.so` version 1.0.0 or later.

Note:  As the Netprobe needs to be run as root, the `LD_LIBRARY_PATH` is ignored for security reasons.



