<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://allegro-packets.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Klaus</id>
	<title>Allegro Network Multimeter Manual - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://allegro-packets.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Klaus"/>
	<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/Special:Contributions/Klaus"/>
	<updated>2026-04-04T15:22:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300,_x310,_x400,_x410,_x500_and_x510_Series&amp;diff=4420</id>
		<title>Supported Storage Devices for x300, x310, x400, x410, x500 and x510 Series</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300,_x310,_x400,_x410,_x500_and_x510_Series&amp;diff=4420"/>
		<updated>2023-09-05T12:22:24Z</updated>

		<summary type="html">&lt;p&gt;Klaus: added comment that SAS is not supported on the x410&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some Allegro Network Multimeter appliances can be equipped with hot-swappable storage devices. This page lists which appliances support which type of storage devices.&lt;br /&gt;
&lt;br /&gt;
In general, we recommend to use devices with similar specs for best performance but there is no technical restriction to use different units.&lt;br /&gt;
When using multiple ring buffers (see [[Ring Buffer Configuration Guide]]), it can be beneficial to use different devices, for example, slow but large devices for long-term capturing with packet truncation, and fast but smaller devices for full line rate capturing.&lt;br /&gt;
&lt;br /&gt;
== Allegro x310 (1310/3310/5310/7310) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x310 series has 10 x 2.5&amp;quot; device slots with support of SATA3 and U.2. Please note that SAS is NOT supported on any of the ports.&lt;br /&gt;
&lt;br /&gt;
== Allegro x410 (1410/3410/5410/7410) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x410 series has 12 x 2.53&amp;quot; device slots. The backplane supports SATA3 and U.2 on all ports. The real support depends on the number of installed extension cards and cables. Please contact the support if you plan it extend you Allegro with more extension cards, HDDs or SSDs if and how this is possible. Please note that SAS is NOT supported on any of the ports.&lt;br /&gt;
&lt;br /&gt;
== Allegro x510 (1510/3510/5510/7510) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x510 has 36 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices. A separate hardware option allows to use up to 4 U.2 devices.&lt;br /&gt;
&lt;br /&gt;
U.2 devices can be installed at the rear of the Allegro Network Multimeter (which has 12 slots in total). The U.2 slots are the top slot in the third column and the 3 slots in the last column (at the right):&lt;br /&gt;
&lt;br /&gt;
[[File:3500-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro x300 (1300/3300/5300) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x300 series has 10 x 2.5&amp;quot; device slots, two of them also support U.2 devices.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Slot 0+1 !! Slot 2+3 !! Slot 4+5 !! Slot 6+7 !! Slot 8+9&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3&amp;lt;br /&amp;gt;2.5&amp;quot; U.2&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3&amp;lt;br /&amp;gt;2.5&amp;quot; U.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: SAS devices are not supported!&lt;br /&gt;
&lt;br /&gt;
== Allegro x400 (1400/3400/5400) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x400 has 12 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices.&lt;br /&gt;
&lt;br /&gt;
A separate hardware option allows to use up to 4 U.2 devices, in the slots highlighted in this picture:&lt;br /&gt;
&lt;br /&gt;
[[File:x400-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro x500 (1500/3500/5500) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x500 has 36 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices. A separate hardware option allows to use up to 4 U.2 devices.&lt;br /&gt;
&lt;br /&gt;
U.2 devices can be installed at the rear of the Allegro Network Multimeter (which has 12 slots in total). The U.2 slots are the top slot in the third column and the 3 slots in the last column (at the right):&lt;br /&gt;
&lt;br /&gt;
[[File:3500-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro 2U/4U JBOD extension ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter JBOD extension has 12x (2U) or 44x (4U) 3.5&amp;quot; device slots, supports SATA3 or SAS3 devices.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300,_x310,_x400,_x410,_x500_and_x510_Series&amp;diff=4412</id>
		<title>Supported Storage Devices for x300, x310, x400, x410, x500 and x510 Series</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300,_x310,_x400,_x410,_x500_and_x510_Series&amp;diff=4412"/>
		<updated>2023-09-04T09:24:09Z</updated>

		<summary type="html">&lt;p&gt;Klaus: added x310, x410 and x510&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some Allegro Network Multimeter appliances can be equipped with hot-swappable storage devices. This page lists which appliances support which type of storage devices.&lt;br /&gt;
&lt;br /&gt;
In general, we recommend to use devices with similar specs for best performance but there is no technical restriction to use different units.&lt;br /&gt;
When using multiple ring buffers (see [[Ring Buffer Configuration Guide]]), it can be beneficial to use different devices, for example, slow but large devices for long-term capturing with packet truncation, and fast but smaller devices for full line rate capturing.&lt;br /&gt;
&lt;br /&gt;
== Allegro x310 (1310/3310/5310/7310) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x310 series has 10 x 2.5&amp;quot; device slots with support of SATA3 and U.2. Please note that SAS is NOT supported on any of the ports.&lt;br /&gt;
&lt;br /&gt;
== Allegro x410 (1410/3410/5410/7410) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x410 series has 12 x 2.53&amp;quot; device slots. The backplane supports SATA3 and U.2 on all ports. The real support depends on the number of installed extension cards and cables. Please contact the support if you plan it extend you Allegro with more extension cards, HDDs or SSDs if and how this is possible.&lt;br /&gt;
&lt;br /&gt;
== Allegro x510 (1510/3510/5510/7510) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x510 has 36 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices. A separate hardware option allows to use up to 2 U.2 devices.&lt;br /&gt;
&lt;br /&gt;
U.2 devices can be installed at the rear of the Allegro Network Multimeter (which has 12 slots in total). The U.2 slots are the top two slots in the last fourth column (at the right):&lt;br /&gt;
&lt;br /&gt;
[[File:3500-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro x300 (1300/3300/5300) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x300 series has 10 x 2.5&amp;quot; device slots, two of them also support U.2 devices.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Slot 0+1 !! Slot 2+3 !! Slot 4+5 !! Slot 6+7 !! Slot 8+9&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3&amp;lt;br /&amp;gt;2.5&amp;quot; U.2&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3&amp;lt;br /&amp;gt;2.5&amp;quot; U.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: SAS devices are not supported!&lt;br /&gt;
&lt;br /&gt;
== Allegro x400 (1400/3400/5400) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x400 has 12 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices.&lt;br /&gt;
&lt;br /&gt;
A separate hardware option allows to use up to 4 U.2 devices, in the slots highlighted in this picture:&lt;br /&gt;
&lt;br /&gt;
[[File:x400-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro x500 (1500/3500/5500) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x500 has 36 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices. A separate hardware option allows to use up to 2 U.2 devices.&lt;br /&gt;
&lt;br /&gt;
U.2 devices can be installed at the rear of the Allegro Network Multimeter (which has 12 slots in total). The U.2 slots are the top two slots in the last fourth column (at the right):&lt;br /&gt;
&lt;br /&gt;
[[File:3500-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro 2U/4U JBOD extension ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter JBOD extension has 12x (2U) or 44x (4U) 3.5&amp;quot; device slots, supports SATA3 or SAS3 devices.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300/x400/x500_Series&amp;diff=4411</id>
		<title>Supported Storage Devices for x300/x400/x500 Series</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300/x400/x500_Series&amp;diff=4411"/>
		<updated>2023-09-04T09:17:10Z</updated>

		<summary type="html">&lt;p&gt;Klaus: Klaus moved page Supported Storage Devices for x300/x400/x500 Series to Supported Storage Devices for x300, x310, x400, x410, x500 and x510 Series&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Supported Storage Devices for x300, x310, x400, x410, x500 and x510 Series]]&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300,_x310,_x400,_x410,_x500_and_x510_Series&amp;diff=4410</id>
		<title>Supported Storage Devices for x300, x310, x400, x410, x500 and x510 Series</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Supported_Storage_Devices_for_x300,_x310,_x400,_x410,_x500_and_x510_Series&amp;diff=4410"/>
		<updated>2023-09-04T09:17:09Z</updated>

		<summary type="html">&lt;p&gt;Klaus: Klaus moved page Supported Storage Devices for x300/x400/x500 Series to Supported Storage Devices for x300, x310, x400, x410, x500 and x510 Series&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some Allegro Network Multimeter aplliances can be equipped with hot-swappable storage devices. This page lists which appliances support which type of storage devices.&lt;br /&gt;
&lt;br /&gt;
In general, we recommend to use devices with similar specs for best performance but there is no technical restriction to use different units.&lt;br /&gt;
When using multiple ring buffers (see [[Ring Buffer Configuration Guide]]), it can be beneficial to use different devices, for example, slow but large devices for long-term capturing with packet truncation, and fast but smaller devices for full line rate capturing.&lt;br /&gt;
&lt;br /&gt;
== Allegro x300 (1300/3300/5300) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x300 series has 10 x 2.5&amp;quot; device slots, two of them also support U.2 devices.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Slot 0+1 !! Slot 2+3 !! Slot 4+5 !! Slot 6+7 !! Slot 8+9&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3&amp;lt;br /&amp;gt;2.5&amp;quot; U.2&lt;br /&gt;
|-&lt;br /&gt;
| 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3 || 2.5&amp;quot; SATA3&amp;lt;br /&amp;gt;2.5&amp;quot; U.2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: SAS devices are not supported!&lt;br /&gt;
&lt;br /&gt;
== Allegro x400 (1400/3400/5400) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x400 has 12 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices.&lt;br /&gt;
&lt;br /&gt;
A separate hardware option allows to use up to 4 U.2 devices, in the slots highlighted in this picture:&lt;br /&gt;
&lt;br /&gt;
[[File:x400-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro x500 (1500/3500/5500) ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter x500 has 36 x 3.5&amp;quot; device slots, supporting SATA3 or SAS3 devices. A separate hardware option allows to use up to 2 U.2 devices.&lt;br /&gt;
&lt;br /&gt;
U.2 devices can be installed at the rear of the Allegro Network Multimeter (which has 12 slots in total). The U.2 slots are the top two slots in the last fourth column (at the right):&lt;br /&gt;
&lt;br /&gt;
[[File:3500-back-u2.png|frameless|U.2 slots]]&lt;br /&gt;
&lt;br /&gt;
== Allegro 2U/4U JBOD extension ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter JBOD extension has 12x (2U) or 44x (4U) 3.5&amp;quot; device slots, supports SATA3 or SAS3 devices.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Statistics_Export_via_InfluxDB&amp;diff=4125</id>
		<title>Statistics Export via InfluxDB</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Statistics_Export_via_InfluxDB&amp;diff=4125"/>
		<updated>2022-12-02T09:51:08Z</updated>

		<summary type="html">&lt;p&gt;Klaus: removed protection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Influx Export allows to write statistics from the Allegro Network Multimeter to an InfluxDB.&lt;br /&gt;
This can be found in the menu &amp;quot;Settings -&amp;gt; Remote access &amp;amp; export -&amp;gt; Influx Export&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==InfluxDB settings==&lt;br /&gt;
*&#039;&#039;&#039;Enabled&#039;&#039;&#039; → Enables the export&lt;br /&gt;
*&#039;&#039;&#039;URL&#039;&#039;&#039; → URL of the InfluxDB (for example &amp;lt;nowiki&amp;gt;http://influx.mycompany.com:8086&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*&#039;&#039;&#039;API Token&#039;&#039;&#039; → Organization → the organization set in the InfluxDB&lt;br /&gt;
*&#039;&#039;&#039;Organization&#039;&#039;&#039; → the organization set in the InfluxDB&lt;br /&gt;
*&#039;&#039;&#039;Bucket&#039;&#039;&#039; → name of the bucket in which the statistics should be stored&lt;br /&gt;
*&#039;&#039;&#039;Check TLS Certificates&#039;&#039;&#039; → For HTTPS Connections. Disable if a self signed certificate is used for the InfluxDB server.&lt;br /&gt;
&lt;br /&gt;
==Export Settings==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Option&lt;br /&gt;
!InfluxDB measurement name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|Interval (seconds)&lt;br /&gt;
| -&lt;br /&gt;
|Specifies the interval (in seconds) in which the statistics data from the Allegro Network Multimeter are written to the InfluxDB. The value must be greater than or equal to 1.&lt;br /&gt;
|-&lt;br /&gt;
|Resolution (seconds)&lt;br /&gt;
| -&lt;br /&gt;
|Specifies the resolution (in seconds) of the statistics. For example, 1 = one measurement every second, 10 = one measurement every 10 seconds. The value must be greater than or equal to 1. The value may not greater than the interval.&lt;br /&gt;
|-&lt;br /&gt;
|System Load Statistics&lt;br /&gt;
|system&lt;br /&gt;
|Save the system load, memory load, packet ingress load and statistics-availability.&lt;br /&gt;
|-&lt;br /&gt;
|System Health&lt;br /&gt;
|system&lt;br /&gt;
|Save the TBW for each disk.&lt;br /&gt;
|-&lt;br /&gt;
|Ring Buffer Usage Statistics&lt;br /&gt;
|system&lt;br /&gt;
|Save the Ring Buffer Usage in bytes&lt;br /&gt;
|-&lt;br /&gt;
|Global Counters&lt;br /&gt;
|global-counters&lt;br /&gt;
|Save the global counters mac count, ip count, connection count, connection activ, connection maximum, connection capacity.&lt;br /&gt;
|-&lt;br /&gt;
|Interface Statistics&lt;br /&gt;
|interface-[interface number]&lt;br /&gt;
|Save the Bytes and Packets (rx/tx) of all network interfaces.&lt;br /&gt;
|-&lt;br /&gt;
|Virtual Link Groups Statistics&lt;br /&gt;
|virtualLinkGroup-[name]&lt;br /&gt;
|Save the Bytes and Packets (rx) of all Virtual Link Groups.&lt;br /&gt;
|-&lt;br /&gt;
|IP Global Statistics&lt;br /&gt;
|ip-global&lt;br /&gt;
|Save the Bytes and Packets for each protocol.&lt;br /&gt;
|-&lt;br /&gt;
|IP Countries Statistics&lt;br /&gt;
|ip-countries&lt;br /&gt;
|Save the Bytes and Packets (rx/tx) of each country.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address Statistics&lt;br /&gt;
|ip-[address]&lt;br /&gt;
|Save the Bytes and Packets (rx/tx) for a list of IP-Devices. Addresses (IPv4/IPv6) separated by comma, without spaces.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address Deteils Statistics&lt;br /&gt;
|ip-[address]&lt;br /&gt;
|Save the Bytes and Packets for each protocol for a list of IP-Addresses. Addresses (IPv4/IPv6) separated by comma, without spaces.&lt;br /&gt;
|-&lt;br /&gt;
|IP Address Peers Statistics&lt;br /&gt;
|ip-[address]-peers&lt;br /&gt;
|Save the Bytes and Packets for all peers of a list of Addresses. Addresses (IPv4/IPv6) separated by comma, without spaces.&lt;br /&gt;
|-&lt;br /&gt;
|DNS Statistics&lt;br /&gt;
|dns&lt;br /&gt;
|Save the global DNS request/replies Statistic.&lt;br /&gt;
|-&lt;br /&gt;
|ARP Statistics&lt;br /&gt;
|arp&lt;br /&gt;
|Save the global ARP request/replies Statistic.&lt;br /&gt;
|-&lt;br /&gt;
|TCP Syn Response Time Statistics&lt;br /&gt;
|tcp-syn-response-time&lt;br /&gt;
|Save the global TCP syn response time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==InfluxDB &amp;amp; Grafana setup example with docker-compose==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
version: &#039;3.6&#039;&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  influxdb:&lt;br /&gt;
    image: influxdb:latest&lt;br /&gt;
    container_name: influxdb&lt;br /&gt;
    restart: always&lt;br /&gt;
    environment:&lt;br /&gt;
      - DOCKER_INFLUXDB_INIT_MODE=setup&lt;br /&gt;
      - DOCKER_INFLUXDB_INIT_USERNAME=admin&lt;br /&gt;
      - DOCKER_INFLUXDB_INIT_PASSWORD=a_secure_password&lt;br /&gt;
      - DOCKER_INFLUXDB_INIT_ORG=MyCompany&lt;br /&gt;
      - DOCKER_INFLUXDB_INIT_BUCKET=allegro-network-multimeter&lt;br /&gt;
    ports:&lt;br /&gt;
      - &#039;8086:8086&#039;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - influxdb-data:/var/lib/influxdb2&lt;br /&gt;
      - influxdb-conf:/etc/influxdb2&lt;br /&gt;
      &lt;br /&gt;
  grafana:&lt;br /&gt;
    image: grafana/grafana-oss:latest&lt;br /&gt;
    container_name: grafana&lt;br /&gt;
    restart: always&lt;br /&gt;
    depends_on:&lt;br /&gt;
      - influxdb&lt;br /&gt;
    environment:&lt;br /&gt;
      - GF_SECURITY_ADMIN_USER=admin&lt;br /&gt;
      - GF_SECURITY_ADMIN_PASSWORD=a_secure_password&lt;br /&gt;
    links:&lt;br /&gt;
      - influxdb&lt;br /&gt;
    ports:&lt;br /&gt;
      - &#039;3000:3000&#039;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - grafana-data:/var/lib/grafana&lt;br /&gt;
      - grafana-provisioning:/etc/grafana/provisioning&lt;br /&gt;
      - ./grafana.ini:/etc/grafana/grafana.ini&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  influxdb-data:&lt;br /&gt;
  influxdb-conf:&lt;br /&gt;
  grafana-data:&lt;br /&gt;
  grafana-provisioning:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# create the docker-compose.yml&lt;br /&gt;
# create a empty grafana.ini file&lt;br /&gt;
# run docker-compose up -d&lt;br /&gt;
# Login to the influxDB (Load Data -&amp;gt; API Token). &lt;br /&gt;
# Create at read API token for grafana and a write API token for the Allegro Network Multimeter.&lt;br /&gt;
# Login the Allegro Network Multimeter&lt;br /&gt;
# Setup the Influx Export (Settings -&amp;gt; Remote access &amp;amp; export -&amp;gt; Influx Export)&lt;br /&gt;
# Login to grafana&lt;br /&gt;
# Add a new Data Source from the type InfluxDB (Settings -&amp;gt; Data sources)&lt;br /&gt;
#* Query Language: Flux&lt;br /&gt;
#* URl: http://influxdb:8086&lt;br /&gt;
#* Auth: none&lt;br /&gt;
#* InfluxDB Details&lt;br /&gt;
#** Organization: your Organization from the docker-compose file&lt;br /&gt;
#** Token: your grafana read token&lt;br /&gt;
#** Default Bucket:  your Bucket from the docker-compose file&lt;br /&gt;
#* Save &amp;amp; Test&lt;br /&gt;
# Create a new Dashboard (Dashboard -&amp;gt; new Dashboard)&lt;br /&gt;
# Create a new Panel and add a flux query (you can generate simple querys in the Date Explorer of the InfluxDB)&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=4029</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=4029"/>
		<updated>2022-07-20T11:13:57Z</updated>

		<summary type="html">&lt;p&gt;Klaus: added csv examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro Network Multimeter web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro Network Multimeter with this API.&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;-SkipCertificateCheck&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jq ===&lt;br /&gt;
&lt;br /&gt;
jq ([https://stedolan.github.io/jq/]) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro Network Multimeter. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro Network Multimeter. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criteria&#039;s are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Allegro Network Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pcap extraction ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used. The end time can also be set to &#039;now&#039;, in this case the timespan parameter will be taken and the corresponding start time will be calculated.&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: The time span in seconds. Will be used if no startTime but endTime with &#039;now&#039; is set.&lt;br /&gt;
* &#039;&#039;&#039;expression&#039;&#039;&#039;: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* &#039;&#039;&#039;snapPacketLength&#039;&#039;&#039;: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* &#039;&#039;&#039;fromCaptureBuffer&#039;&#039;&#039;: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* &#039;&#039;&#039;captureBufferSlotId&#039;&#039;&#039;: In case a cluster packet ring buffer is used, the id of the ring buffer must be given. The id of the first ring buffer is 0. If this parameter is omitted, 0 will be taken as default value.&lt;br /&gt;
* &#039;&#039;&#039;captureToMedia&#039;&#039;&#039;: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
* &#039;&#039;&#039;mm-id&#039;&#039;&#039;: If you are extracting a Pcap from a parallel Pcap analysis job or a multi device connected Allegro Network Multimeter, you have to specify the device and the slot where to get the data from. The syntax is: &amp;lt;code&amp;gt;mm-id=&amp;lt;device name&amp;gt;:&amp;lt;slot id&amp;gt;&amp;lt;/code&amp;gt;. If the capture shall be performed on the local device, the device name can be omited (e.g. mm-id=:1 for the first replay slot on the local device).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(($(date --date=&amp;quot;1 hour ago&amp;quot; +%s%N)/1000))&amp;amp;endtime=$(($(date +%s%N)/1000))&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of a given time span of the first parallel Pcap analysis slot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(($(date --date=&amp;quot;2020-07-15 08:55:00&amp;quot; +%s%N)/1000))&amp;amp;endtime=$(($(date --date=&amp;quot;2020-07-15 09:55:00&amp;quot; +%s%N)/1000))&amp;amp;fromCaptureBuffer=true&amp;amp;mm-id=:1&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pcap upload and analysis ===&lt;br /&gt;
&lt;br /&gt;
Pcap upload and analysis can also be done via API calls.&lt;br /&gt;
&lt;br /&gt;
The PCAP upload is split into 3 commands. First, the replay is being initialized. Then the analyzing is started. In the last step the PCAP is streamed to the Allegro Network Multimeter. Depending on the size of the PCAP the third step could take some time, but the Allegro Network Multimeter already allows access to the statistics of the already analyzed packets via web/API.&lt;br /&gt;
&lt;br /&gt;
The example assumes that PCAP parallel analysis is enabled in the global settings, so the PCAP analysis will be done in slot 1 and a dedicated ring buffer is available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/system/replay/upload&amp;quot; -d &#039;{&amp;quot;fileName&amp;quot;: &amp;quot;abc.pcapng&amp;quot;, &amp;quot;fileSize&amp;quot;: &#039;$(stat -c %s abc.pcapng)&#039;, &amp;quot;replaySlotID&amp;quot;: 1, &amp;quot;forceSlotID&amp;quot;: true, &amp;quot;useReplayBuffer&amp;quot;: true}&#039;&lt;br /&gt;
curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/pcap?mm-id=:1&amp;quot; -d &#039;{&amp;quot;command&amp;quot;:&amp;quot;start&amp;quot;}&#039;&lt;br /&gt;
curl -F &#039;name=file&#039; -F &#039;filename=abc.pcapng&#039; -F &#039;file=@path_to/abc.pcapng&#039; -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/system/analyze-pcap?replaySlotID=1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given either the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; or the parameter mm-id with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro Network Multimeter is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add either the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; or the parameter mm-id where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== IP statistics ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Output IP Table as CSV file ====&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips_paged?csv=true&#039; &amp;gt; path_to/file.csv&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Output Connection Table as CSV file ====&lt;br /&gt;
&amp;lt;pre&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/globalConnections/csv?csv=true&#039; &amp;gt; path_to/file.csv&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Names_and_look-ups&amp;diff=3044</id>
		<title>Names and look-ups</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Names_and_look-ups&amp;diff=3044"/>
		<updated>2020-10-07T13:33:47Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is possible to label IP and MAC address with custom names and group them together into categories to allow for easy access to specific systems. &lt;br /&gt;
For example, all your internal machines could be labeled to match their actual name and you can categorize them into different departments.&lt;br /&gt;
&lt;br /&gt;
These user defined names are persistent and are available from start on. All entries are assigned per Allegro Appliance and not per user. An assigned name is available for all users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Web Interface&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|[[File:User defined names.png|600px|none]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adding or remove entries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The configuration of the list of names is available via &#039;&#039;&#039;Settings -&amp;gt; User defined names&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The configuration page shows on top the list of IP and MAC names currently set in the system. &lt;br /&gt;
It is possible to search for a specific entry by entering the IP or MAC address, or the category or actual name.&lt;br /&gt;
&lt;br /&gt;
Individual entries may be removed from the list by clicking at the trashcan symbol in the last column.&lt;br /&gt;
&lt;br /&gt;
At the bottom of the table new elements can be added by entering the IP or MAC address, and the category and name of the element. &lt;br /&gt;
By clicking at the &#039;&#039;&#039;plus&#039;&#039;&#039; symbol, the entry is added and will be used without further doing.&lt;br /&gt;
&lt;br /&gt;
The complete IP or MAC address list can be cleared by clicking at the bottom below the table. A dialog will ask for confirmation.&lt;br /&gt;
&lt;br /&gt;
Names may also be set directly at the IP or MAC detail page, see below for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Importing IP list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The IP names allows importing an IP list from an external URL or from a file in the format:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|#A line with a commend&lt;br /&gt;
1.2.3.1  &lt;br /&gt;
&lt;br /&gt;
1.2.3.2 &lt;br /&gt;
 &lt;br /&gt;
1.2.3.3 &lt;br /&gt;
|}&lt;br /&gt;
  &lt;br /&gt;
By clicking on &#039;&#039;&#039;Import list&#039;&#039;&#039; a dialog will be openend where you can choose to download such a list from a given URL or specify a file from your system. &lt;br /&gt;
The IPs are added to the already existing ones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uploading or downloading the complete list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Depending on the use case, the number of elements to add may be large. &lt;br /&gt;
In this case it is also possible to upload a comma separated text file (.csv). &lt;br /&gt;
The format is simple as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ip,192.168.0.1,category,name&lt;br /&gt;
mac,00:00:00:00:00:00,category,name &lt;br /&gt;
...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first column defines whether the line describes an IP or MAC address. &lt;br /&gt;
The second column is the actual address and the third and fourth is the category and the name of the entry.&lt;br /&gt;
&lt;br /&gt;
The web page allows to download a template file which may be opened in a spreadsheet application.&lt;br /&gt;
&lt;br /&gt;
The final file can be uploaded by clicking at the upload button and selecting the file from your local directory.&lt;br /&gt;
&lt;br /&gt;
The current list can be downloaded also by clicking at the download button. The CSV file will contain both IP and MAC addresses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name display for user defined names==&lt;br /&gt;
&lt;br /&gt;
If a user defined name is configured for an IP or MAC address, the name will be shown among the alternative names (which also include possible DNS, DHCP name, or other sources of information).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-   &lt;br /&gt;
![[File:Ap-mm-ip-list-user-defined-name.png|800px|none]] !! IP &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! [[File:Ap-mm-mac-list-user-defined-name.png|800px|none]] !! MAC  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the detailed page for a single IP or MAC address, you can click on the pencil symbol to directly set a name for this specific address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-   &lt;br /&gt;
![[File:Ap-mm-ip-alternative-names.png|800px|none]] !! IP &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! [[File:Ap-mm-mac-alternative-names.png|800px|none]] !! MAC  &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The IP and MAC overview, the IP or MAC column is highlighted to indicate such special entries for which a name is configured.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Filtering==&lt;br /&gt;
&lt;br /&gt;
It is possible to enter the category or user defined name for IP and MAC filters.&lt;br /&gt;
&lt;br /&gt;
Also, the &#039;&#039;&#039;name&#039;&#039;&#039; check in [[Live filtering of tables|complex filters]] matches the user defined name, like in this example:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 |(name=systemA)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to filter for specific category by using the &#039;&#039;&#039;category&#039;&#039;&#039; check:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
  |(category=server)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In this example, the list would only show those element for which a user defined name is set and its category contains the string &#039;&#039;&#039;server&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3021</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3021"/>
		<updated>2020-09-18T11:46:56Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how the Allegro Network Multimeter allows a user to start a capture with a USB presenter. This capture can be actioned &#039;Back in Time&#039; for a defined period. In addition, the capture files can be uploaded to an SFTP server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps when an error occurs; it also allows for captures without opening a Web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware Release 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher. One internal or external disk needs to be configured at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; and a [[Packet ring buffer|ring buffer]] must be configured. Please note that the capture is extracted from the ring buffer and a ring buffer filter rules for packet slicing will affect the exported pcap.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenters on request. An optional USB sound device will play a beep when a key has been pressed.&lt;br /&gt;
&lt;br /&gt;
== USB Capture Trigger Setup ==&lt;br /&gt;
&lt;br /&gt;
Connect the Logitech R400 USB dongle with the Allegro. If you have a Virtual Edition Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter dialog.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once any key has been pressed on the presenter, one pcap will be generated. The pcap end time is when the button has been pressed and the start time is defined by the capture interval. As example, an interval of 60 seconds will generate a capture of the last minute when a presenter key was pressed.&lt;br /&gt;
&lt;br /&gt;
The captures are stored at the root directory of the storage device or, if enabled, in the upload directory for SFTP uploads.&lt;br /&gt;
&lt;br /&gt;
== SFTP Export Setup ==&lt;br /&gt;
&lt;br /&gt;
The Allegro can automatically upload pcap files to an SFTP server from the upload directory on the disk. To configure it, please navigate to &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Remote Access and Export&#039;&#039;&#039; → &#039;&#039;&#039;Pcap export via SFTP&#039;&#039;&#039;. This allow to export all captured pcap files at a certain time of day. As example it can be used to transfer pcaps during the night from remote locations to a central SFTP server.&lt;br /&gt;
&lt;br /&gt;
[[File:Sftp export.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Advanced Multi-pcap Setup ==&lt;br /&gt;
&lt;br /&gt;
There are situations where the Allegro shall record multiple separate pcaps for a key with specific filters. This can be done by enabling the &#039;&#039;&#039;USB capture filter&#039;&#039;&#039; in the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039; dialog. The filter syntax is described in the [[Capture module]].&lt;br /&gt;
&lt;br /&gt;
A good example is the installation of an Allegro 500 with 2 links and 2 virtual link groups ( see [[Virtual Link Group Configuration Guide]]), one before and one behind the firewall.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter filter group.png|600px]]&lt;br /&gt;
&lt;br /&gt;
As a second example you can record pcaps of up to 4 different IP addresses at the same time with just one click.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter filter ip.png|600px]]&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3009</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3009"/>
		<updated>2020-09-03T07:40:14Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Advanced Multi-pcap Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens it also allows to do captures without opening the web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware version 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher. One internal or external disk needs to be configured at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; and a ring buffer must be configured. Please note that the capture is extracted from the ring buffer and a ring buffer filter rules for packet slicing will affect the exported pcap.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenter on request. An optional USB sound bar will play a beep when a key has been pressed. TODO: which soundbar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Capture Trigger Setup ==&lt;br /&gt;
&lt;br /&gt;
Please connect the Logitech R400 USB dongle with the Allegro. If you have a virtual Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert Settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter dialog.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once any key has been pressed on the presenter, one pcap will be generated. The pcap end time is when the button has been pressed and the start time is defined by the capture interval. As example, an interval of 60 seconds will generate a capture of the last minute when a presenter key has been pressed.&lt;br /&gt;
&lt;br /&gt;
The captures are stored at the root directory of the storage device or, if enabled, in the upload directory for sftp uploads.&lt;br /&gt;
&lt;br /&gt;
== SFTP Export Setup ==&lt;br /&gt;
&lt;br /&gt;
The Allegro can automatically upload pcap files to an sfp server from the upload directory on the disk. To configure it, please navigate to &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Remote Access and Export&#039;&#039;&#039; → &#039;&#039;&#039;Pcap export via SFTP&#039;&#039;&#039;. This allow to export all captured pcap files at a certain time of day. As example it can be used to transfer pcaps during the night from remote locations to a central sftp server.&lt;br /&gt;
&lt;br /&gt;
[[File:Sftp export.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Advanced Multi-pcap Setup ==&lt;br /&gt;
&lt;br /&gt;
There are situations where the Allegro shall record multiple separate pcaps for a key with specific filters. This can be done by enabling the &#039;&#039;&#039;USB capture filter&#039;&#039;&#039; in the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039; dialog. The filter syntax is described in the [[Capture module]].&lt;br /&gt;
&lt;br /&gt;
A good example is the installation of an Allegro 500 with 2 links and 2 virtual link groups ( see [[Virtual Link Group Configuration Guide]]), one before and one behind the firewall.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter filter group.png|600px]]&lt;br /&gt;
&lt;br /&gt;
As a second example you can record Pcaps of up to 4 different IP addresses at the same time with just one click.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter filter ip.png|600px]]&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Presenter_filter_ip.png&amp;diff=3008</id>
		<title>File:Presenter filter ip.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Presenter_filter_ip.png&amp;diff=3008"/>
		<updated>2020-09-03T07:39:58Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Presenter_filter_group.png&amp;diff=3007</id>
		<title>File:Presenter filter group.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Presenter_filter_group.png&amp;diff=3007"/>
		<updated>2020-09-03T07:38:38Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3006</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3006"/>
		<updated>2020-09-02T15:04:30Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Advanced Multi-pcap Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens it also allows to do captures without opening the web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware version 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher. One internal or external disk needs to be configured at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; and a ring buffer must be configured. Please note that the capture is extracted from the ring buffer and a ring buffer filter rules for packet slicing will affect the exported pcap.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenter on request. An optional USB sound bar will play a beep when a key has been pressed. TODO: which soundbar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Capture Trigger Setup ==&lt;br /&gt;
&lt;br /&gt;
Please connect the Logitech R400 USB dongle with the Allegro. If you have a virtual Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert Settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter dialog.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once any key has been pressed on the presenter, one pcap will be generated. The pcap end time is when the button has been pressed and the start time is defined by the capture interval. As example, an interval of 60 seconds will generate a capture of the last minute when a presenter key has been pressed.&lt;br /&gt;
&lt;br /&gt;
The captures are stored at the root directory of the storage device or, if enabled, in the upload directory for sftp uploads.&lt;br /&gt;
&lt;br /&gt;
== SFTP Export Setup ==&lt;br /&gt;
&lt;br /&gt;
The Allegro can automatically upload pcap files to an sfp server from the upload directory on the disk. To configure it, please navigate to &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Remote Access and Export&#039;&#039;&#039; → &#039;&#039;&#039;Pcap export via SFTP&#039;&#039;&#039;. This allow to export all captured pcap files at a certain time of day. As example it can be used to transfer pcaps during the night from remote locations to a central sftp server.&lt;br /&gt;
&lt;br /&gt;
[[File:Sftp export.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Advanced Multi-pcap Setup ==&lt;br /&gt;
&lt;br /&gt;
There are situations where the Allegro shall record multiple separate pcaps for a key with specific filters. This can be done by enabling the &#039;&#039;&#039;USB capture filter&#039;&#039;&#039; in the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039; dialog. The filter syntax is described in the [[Capture module]].&lt;br /&gt;
&lt;br /&gt;
A good example is the installation of an Allegro 500 with 2 links and 2 virtual link groups ( see [[Virtual Link Group Configuration Guide]]), one before and one behind the firewall.&lt;br /&gt;
&lt;br /&gt;
TODO screenshot with 2 configured link groups&lt;br /&gt;
&lt;br /&gt;
As a second example you can record Pcaps of up to 4 different IP addresses at the same time with just one click.&lt;br /&gt;
&lt;br /&gt;
TODO screenshot&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3005</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3005"/>
		<updated>2020-09-02T12:55:32Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* SFTP Export Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens it also allows to do captures without opening the web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware version 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher. One internal or external disk needs to be configured at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; and a ring buffer must be configured. Please note that the capture is extracted from the ring buffer and a ring buffer filter rules for packet slicing will affect the exported pcap.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenter on request. An optional USB sound bar will play a beep when a key has been pressed. TODO: which soundbar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Capture Trigger Setup ==&lt;br /&gt;
&lt;br /&gt;
Please connect the Logitech R400 USB dongle with the Allegro. If you have a virtual Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert Settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter dialog.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once any key has been pressed on the presenter, one pcap will be generated. The pcap end time is when the button has been pressed and the start time is defined by the capture interval. As example, an interval of 60 seconds will generate a capture of the last minute when a presenter key has been pressed.&lt;br /&gt;
&lt;br /&gt;
The captures are stored at the root directory of the storage device or, if enabled, in the upload directory for sftp uploads.&lt;br /&gt;
&lt;br /&gt;
== SFTP Export Setup ==&lt;br /&gt;
&lt;br /&gt;
The Allegro can automatically upload pcap files to an sfp server from the upload directory on the disk. To configure it, please navigate to &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Remote Access and Export&#039;&#039;&#039; → &#039;&#039;&#039;Pcap export via SFTP&#039;&#039;&#039;. This allow to export all captured pcap files at a certain time of day. As example it can be used to transfer pcaps during the night from remote locations to a central sftp server.&lt;br /&gt;
&lt;br /&gt;
[[File:Sftp export.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Advanced Multi-pcap Setup ==&lt;br /&gt;
&lt;br /&gt;
There are situations where the Allegro shall record multiple separate pcaps for a key with specific filters. A good example is the installation of an Allegro 500 with 2 linksand 2 virtual link groups ( see [[Virtual Link Group Configuration Guide]]), one before and one behind the firewall.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3004</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3004"/>
		<updated>2020-09-02T12:54:04Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* SFTP Export Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens it also allows to do captures without opening the web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware version 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher. One internal or external disk needs to be configured at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; and a ring buffer must be configured. Please note that the capture is extracted from the ring buffer and a ring buffer filter rules for packet slicing will affect the exported pcap.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenter on request. An optional USB sound bar will play a beep when a key has been pressed. TODO: which soundbar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Capture Trigger Setup ==&lt;br /&gt;
&lt;br /&gt;
Please connect the Logitech R400 USB dongle with the Allegro. If you have a virtual Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert Settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter dialog.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once any key has been pressed on the presenter, one pcap will be generated. The pcap end time is when the button has been pressed and the start time is defined by the capture interval. As example, an interval of 60 seconds will generate a capture of the last minute when a presenter key has been pressed.&lt;br /&gt;
&lt;br /&gt;
The captures are stored at the root directory of the storage device or, if enabled, in the upload directory for sftp uploads.&lt;br /&gt;
&lt;br /&gt;
== SFTP Export Setup ==&lt;br /&gt;
&lt;br /&gt;
The Allegro can automatically upload pcap files to an sfp server from the upload directory on the disk. To configure it, please navigate to &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Remote Access and Export&#039;&#039;&#039; → &#039;&#039;&#039;Pcap export via SFTP&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Sftp export.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Advanced Multi-pcap Setup ==&lt;br /&gt;
&lt;br /&gt;
There are situations where the Allegro shall record multiple separate pcaps for a key with specific filters. A good example is the installation of an Allegro 500 with 2 linksand 2 virtual link groups ( see [[Virtual Link Group Configuration Guide]]), one before and one behind the firewall.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Sftp_export.png&amp;diff=3003</id>
		<title>File:Sftp export.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Sftp_export.png&amp;diff=3003"/>
		<updated>2020-09-02T12:53:25Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3002</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=3002"/>
		<updated>2020-09-02T12:52:38Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens it also allows to do captures without opening the web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware version 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher. One internal or external disk needs to be configured at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; and a ring buffer must be configured. Please note that the capture is extracted from the ring buffer and a ring buffer filter rules for packet slicing will affect the exported pcap.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenter on request. An optional USB sound bar will play a beep when a key has been pressed. TODO: which soundbar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== USB Capture Trigger Setup ==&lt;br /&gt;
&lt;br /&gt;
Please connect the Logitech R400 USB dongle with the Allegro. If you have a virtual Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert Settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Presenter dialog.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once any key has been pressed on the presenter, one pcap will be generated. The pcap end time is when the button has been pressed and the start time is defined by the capture interval. As example, an interval of 60 seconds will generate a capture of the last minute when a presenter key has been pressed.&lt;br /&gt;
&lt;br /&gt;
The captures are stored at the root directory of the storage device or, if enabled, in the upload directory for sftp uploads.&lt;br /&gt;
&lt;br /&gt;
== SFTP Export Setup ==&lt;br /&gt;
&lt;br /&gt;
The Allegro can automatically upload pcap files to an sfp server from the upload directory on the disk. To configure it, please navigate to &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Remote Access and Export&#039;&#039;&#039; → &#039;&#039;&#039;Pcap export via SFTP&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Advanced Multi-pcap Setup ==&lt;br /&gt;
&lt;br /&gt;
There are situations where the Allegro shall record multiple separate pcaps for a key with specific filters. A good example is the installation of an Allegro 500 with 2 linksand 2 virtual link groups ( see [[Virtual Link Group Configuration Guide]]), one before and one behind the firewall.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Remote_access_and_export&amp;diff=3001</id>
		<title>Remote access and export</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Remote_access_and_export&amp;diff=3001"/>
		<updated>2020-09-02T12:34:08Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* pcap export via SFTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Statistics Export ==&lt;br /&gt;
&lt;br /&gt;
See [[Statistics Export via POST]] for details about exporting the measurement data via HTTP POST requests.&lt;br /&gt;
&lt;br /&gt;
== SSH port forwarding ==&lt;br /&gt;
&lt;br /&gt;
This option allows to use an external SSH server as an proxy to access the device. Via port forwarding the client PC accesses the SSH proxy which forwards the traffic to the actual Allegro Network Multimeter. See [[Self-hosted_SSH_proxy]] for detailed information how to set up such a server.&lt;br /&gt;
&lt;br /&gt;
== Allegro Remote Service ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Remote Service is similar to the SSH Port Forwarding feature, but the SSH server is provided by Allegro Packets as a public service. Traffic through is proxy is still end-to-end encrypted via your SSL certificate so the data is only accessible to you.&lt;br /&gt;
&lt;br /&gt;
See [[Using the Allegro Remote Service]] for detailed information.&lt;br /&gt;
&lt;br /&gt;
== SNMP ==&lt;br /&gt;
&lt;br /&gt;
See [[SNMP]] for details about SNMP support.&lt;br /&gt;
&lt;br /&gt;
== Pcap export via SFTP ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; allows the export of captured pcaps via SFTP.&lt;br /&gt;
pcap files can be stored in an upload queue and be automatically uploaded to a remote host&lt;br /&gt;
once a day.&lt;br /&gt;
&lt;br /&gt;
This feature only works if a disk is attached to the device.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;PCAP Export via SFTP&#039;&#039; is enabled, a new checkbox &#039;&#039;Save to SFTP export directory&#039;&#039; is&lt;br /&gt;
added to the capture dialogue. If checked, the pcap will be stored to a special&lt;br /&gt;
upload directory.&lt;br /&gt;
&lt;br /&gt;
In the configuration view, it is possible to see the files in the upload queue and&lt;br /&gt;
delete them or trigger an immediate upload.&lt;br /&gt;
&lt;br /&gt;
SFTP export allows SFTP authentication via public key or via password. The public key&lt;br /&gt;
is printed at the top of the configuration view. For public key authentication, the&lt;br /&gt;
password field in the SFTP connection parameters can be left empty.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Test upload&amp;quot; button uploads a file &#039;&#039;&#039;allegro-upload-test.txt&#039;&#039;&#039; into the configured&lt;br /&gt;
target directory on the remote host.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Remote_access_and_export&amp;diff=3000</id>
		<title>Remote access and export</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Remote_access_and_export&amp;diff=3000"/>
		<updated>2020-09-02T12:33:49Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* pcap export via SFTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Statistics Export ==&lt;br /&gt;
&lt;br /&gt;
See [[Statistics Export via POST]] for details about exporting the measurement data via HTTP POST requests.&lt;br /&gt;
&lt;br /&gt;
== SSH port forwarding ==&lt;br /&gt;
&lt;br /&gt;
This option allows to use an external SSH server as an proxy to access the device. Via port forwarding the client PC accesses the SSH proxy which forwards the traffic to the actual Allegro Network Multimeter. See [[Self-hosted_SSH_proxy]] for detailed information how to set up such a server.&lt;br /&gt;
&lt;br /&gt;
== Allegro Remote Service ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Remote Service is similar to the SSH Port Forwarding feature, but the SSH server is provided by Allegro Packets as a public service. Traffic through is proxy is still end-to-end encrypted via your SSL certificate so the data is only accessible to you.&lt;br /&gt;
&lt;br /&gt;
See [[Using the Allegro Remote Service]] for detailed information.&lt;br /&gt;
&lt;br /&gt;
== SNMP ==&lt;br /&gt;
&lt;br /&gt;
See [[SNMP]] for details about SNMP support.&lt;br /&gt;
&lt;br /&gt;
== pcap export via SFTP ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; allows the export of captured pcaps via SFTP.&lt;br /&gt;
pcap files can be stored in an upload queue and be automatically uploaded to a remote host&lt;br /&gt;
once a day.&lt;br /&gt;
&lt;br /&gt;
This feature only works if a disk is attached to the device.&lt;br /&gt;
&lt;br /&gt;
When &#039;&#039;PCAP Export via SFTP&#039;&#039; is enabled, a new checkbox &#039;&#039;Save to SFTP export directory&#039;&#039; is&lt;br /&gt;
added to the capture dialogue. If checked, the pcap will be stored to a special&lt;br /&gt;
upload directory.&lt;br /&gt;
&lt;br /&gt;
In the configuration view, it is possible to see the files in the upload queue and&lt;br /&gt;
delete them or trigger an immediate upload.&lt;br /&gt;
&lt;br /&gt;
SFTP export allows SFTP authentication via public key or via password. The public key&lt;br /&gt;
is printed at the top of the configuration view. For public key authentication, the&lt;br /&gt;
password field in the SFTP connection parameters can be left empty.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Test upload&amp;quot; button uploads a file &#039;&#039;&#039;allegro-upload-test.txt&#039;&#039;&#039; into the configured&lt;br /&gt;
target directory on the remote host.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Presenter_dialog.png&amp;diff=2999</id>
		<title>File:Presenter dialog.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Presenter_dialog.png&amp;diff=2999"/>
		<updated>2020-09-02T12:13:53Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=2998</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=2998"/>
		<updated>2020-09-02T10:21:58Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens it also allows to do captures without opening the web interface.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
This feature is supported by all Allegro Network Multimeters, even for the VM Version starting at firmware version 3.0. It requires a free USB port on the Allegro with USB 2.0 or higher.&lt;br /&gt;
&lt;br /&gt;
As of now, the Logitech R400 is supported. Allegro will add more presenter on request. &lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Please connect the Logitech R400 USB dongle with the Allegro. If you have a virtual Allegro, please pass-through the USB device directly to the Allegro VM.&lt;br /&gt;
&lt;br /&gt;
Once this is done, navigate to the &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Expert Settings&#039;&#039;&#039; page and open the &#039;&#039;&#039;USB capture trigger&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TODO screenshot.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=2997</id>
		<title>USB Presenter Capture</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=USB_Presenter_Capture&amp;diff=2997"/>
		<updated>2020-08-31T12:10:26Z</updated>

		<summary type="html">&lt;p&gt;Klaus: Created page with &amp;quot;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;  This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done b...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page describes how the Allegro Network Multimeter allows to start a capture with a USB presenter. This capture can be done back in time for a defined period. In addition, the capture files can be uploaded to an sftp server at a defined time.&lt;br /&gt;
&lt;br /&gt;
This feature has been designed to allow non-IT staff to record pcaps at when an error happens.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2996</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2996"/>
		<updated>2020-08-31T10:11:01Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Combination mark transparent.png|300px|link=https://www.allegro-packets.com]]&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&#039;&#039;&#039;This is the Allegro Packets Product Wiki. Please visit the website of [https://allegro-packets.com Allegro Packets] for more information.&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:black; background-color:#ffdda3;&amp;quot;&lt;br /&gt;
|Translation: Wiki language is English, but you can use [https://translate.google.com/translate?u=allegro-packets.com/wiki automatic Google translation] into your language!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:black; background-color:#fcfcfc; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* [[Generic Allegro Network Multimeter installation|Generic Allegro Network Multimeter installation and installation guides]]&lt;br /&gt;
* Additional installation notes for specific devices:&lt;br /&gt;
** [[Allegro 200 series]]&lt;br /&gt;
* [[Management interface settings|Configure Management IP address]]&lt;br /&gt;
* [[IPMI KVM on Allegro series 1000+]]&lt;br /&gt;
* [[User Management|Multi users and permissions]]&lt;br /&gt;
* [[Firmware update]]&lt;br /&gt;
* [[Performing a factory reset or configuration reset]]&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Typical Installation Setups ===&lt;br /&gt;
* [[In-Line Installation|In-Line Installation Guide]]&lt;br /&gt;
* [[Mirror Port, TAP and Packet Broker Installation|Mirror Port, TAP and Packet Broker Installation Guide]]&lt;br /&gt;
* [[ERSPAN Installation|ERSPAN Installation Guide]]&lt;br /&gt;
* [[VMWare Workstation Player/Pro Installation Guide]]&lt;br /&gt;
* [[VMWare ESXI Installation Guide]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[VirtualBox Installation Guide]]&lt;br /&gt;
* Amazon AWS Setup&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Configuration Guides ===&lt;br /&gt;
* [[Setup storage devices for capturing and ring buffer]]&lt;br /&gt;
* [[Ring Buffer Configuration Guide]] &amp;lt;br/&amp;gt; ( Single Disk, Multiple Cluster,... )&lt;br /&gt;
* [[Parallel packet processing|Parallel Packet Processing Configuration Guide]]&lt;br /&gt;
* [[Virtual Link Group Configuration Guide]]&lt;br /&gt;
* [[Multi-device settings|Multi-Allegro Configuration]]&lt;br /&gt;
&amp;lt;!-- * [[Remote Capture Configuration]] --&amp;gt;&lt;br /&gt;
* [[Performance Optimization Guide]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Web Interface Manual ===&lt;br /&gt;
* [[Introduction]] &lt;br /&gt;
* [[Quickstart]] &lt;br /&gt;
* [[Usage]] &lt;br /&gt;
* [[Measurement modules]]&lt;br /&gt;
* [[System Info Page]] &lt;br /&gt;
* [[Settings]] &lt;br /&gt;
* [[FAQ|FAQ - Frequently Asked Questions]]&lt;br /&gt;
* [[Error descriptions]]&lt;br /&gt;
* [[Feature documentation]] &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
* [[Investigate Network Load ]]&lt;br /&gt;
* [[Forensic pcap Analysis ]]&lt;br /&gt;
* [[Find Profinet problems]]&lt;br /&gt;
* [[Network Burst Analysis]]&lt;br /&gt;
* [[Burst analysis on a Mirror or Packet Broker input]]&lt;br /&gt;
* [[Capturing]]&lt;br /&gt;
* [[Investigating network problems on remote sites]]&lt;br /&gt;
* [[Debugging Skype Traffic]]&lt;br /&gt;
* [[USB Presenter Capture]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Data export and third-party tools ===&lt;br /&gt;
* [[REST API description]]&lt;br /&gt;
* [[Statistics Export via POST]]&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* [[NetFlow/IPFIX interface]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
* [[Using the Allegro Remote Service]]&lt;br /&gt;
* [[Self-hosted SSH proxy]]&lt;br /&gt;
|&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
* [[ Global settings]]&lt;br /&gt;
* [[ Module settings]]&lt;br /&gt;
* [[ Incident settings]]&lt;br /&gt;
* [[ User defined names]]&lt;br /&gt;
* [[ Management interface settings]]&lt;br /&gt;
* [[ Multi-device settings]]&lt;br /&gt;
* [[ Virtual_Link_Group_functionality | Virtual link groups]]&lt;br /&gt;
* [[ Administration]]&lt;br /&gt;
* [[ Ingress filter]]&lt;br /&gt;
* [[ Remote access and export]]&lt;br /&gt;
* [[ User Management]]&lt;br /&gt;
* [[ Firmware update]]&lt;br /&gt;
* [[ License upload]]&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Getting support ===&lt;br /&gt;
&lt;br /&gt;
* [[Reaching Allegro Support]]&lt;br /&gt;
* [[Reporting bugs]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
=== Support of third-party hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[List of Supported Transceiver Modules]]&lt;br /&gt;
* [[Supported storage devices for x300/x500 series]]&lt;br /&gt;
|&lt;br /&gt;
=== Addition resources ===&lt;br /&gt;
* [[Device icons|Pictograms/Icons/Stencils for all Allegro models]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Ring_Buffer_Configuration_Guide&amp;diff=2920</id>
		<title>Ring Buffer Configuration Guide</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Ring_Buffer_Configuration_Guide&amp;diff=2920"/>
		<updated>2020-06-22T06:37:40Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Filter rule examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section describes the &#039;&#039;&#039;ring buffer&#039;&#039;&#039; configuration and options for the Allegro Network Multimeter.&lt;br /&gt;
&lt;br /&gt;
== What is the &#039;&#039;&#039;ring buffer?&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
[[File:Historic capture dialog.png|thumb|300px]]&lt;br /&gt;
The &#039;&#039;&#039;ring buffer&#039;&#039;&#039; is a packet buffer. It stores raw Ethernet packets on one or many &#039;&#039;&#039;storage devices&#039;&#039;&#039;. A &#039;&#039;&#039;storage device&#039;&#039;&#039; is an internal or external HDD or SSD. If the buffer is full, it will overwrite the oldest packets in a circular manner. The &#039;&#039;&#039;ring buffer&#039;&#039;&#039; is an optional feature for the Allegro Network Multimeter. It does not store any of the statistics of the In-Memory-Database.&lt;br /&gt;
&lt;br /&gt;
Allegro recommend you to take a look at the [https://allegro-packets.com/en/resources-service/whitepaper/whitepaper-paket-ring-buffer ring buffer White Paper] from the Allegro Packets website.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Webshark&#039;&#039;&#039; and the &#039;&#039;&#039;pcap&#039;&#039;&#039; extraction works with historic dates as in the screenshot here on the right. This dialogue is shown by using the &#039;&#039;&#039;pcap&#039;&#039;&#039; button in the Allegro User Interface. The Allegro Network Multimeter will search for all packets in the &#039;&#039;&#039;ring buffer&#039;&#039;&#039; if they match the criteria and extracts the packets. &lt;br /&gt;
&lt;br /&gt;
If there is no &#039;&#039;&#039;ring buffer&#039;&#039;&#039; configured, the Allegro allows a &#039;&#039;&#039;pcap&#039;&#039;&#039; extraction of live traffic only.&lt;br /&gt;
&lt;br /&gt;
== Different &#039;&#039;&#039;ring buffer&#039;&#039;&#039; modes ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;ring buffer&#039;&#039;&#039; supports 2 different modes. &lt;br /&gt;
The &#039;&#039;&#039;single shared ring buffer&#039;&#039;&#039; can be used if you need only one ring buffer that fits into your storage device. The &#039;&#039;&#039;single shared ring buffer&#039;&#039;&#039; uses &#039;&#039;&#039;one&#039;&#039;&#039; shared storage for the &#039;&#039;&#039;ring buffer&#039;&#039;&#039; and &#039;&#039;&#039;pcap to disk&#039;&#039;&#039;.  This mode is recommended if only one storage device is used since it allows a &#039;&#039;&#039;ring buffer&#039;&#039;&#039; and space for &#039;&#039;&#039;pcap files&#039;&#039;&#039; on the same storage device. Please note that using both features at the same time may lead to a performance bottleneck.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;cluster ring buffer&#039;&#039;&#039; mode allows to use multiple ring buffers where each ring buffer can have multiple disks. It allows having a separate disk for pcap files which allows fast &#039;&#039;&#039;ring buffer&#039;&#039;&#039; and fast &#039;&#039;&#039;pcap to disk&#039;&#039;&#039; writes at the same time.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Single shared ring buffer&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
The single shared ring buffer the default setup on all Allegro Network Multimeters that are shipped with &#039;&#039;&#039;one&#039;&#039;&#039; internal or external storage device. This mode is designed for &#039;&#039;&#039;ONE&#039;&#039;&#039; internal, external or iSCSI storage device. ( Please see the section [[#iSCSI ring buffer]] for more information ). It does not allow you to use multiple ring buffers with one Allegro Network Multimeter. You can check at &#039;&#039;&#039;Generic&#039;&#039;&#039; → &#039;&#039;&#039;Storage&#039;&#039;&#039; if the Allegro Network Multimeter has detected a storage device. Here an example of ONE attached disk:&lt;br /&gt;
&lt;br /&gt;
[[File:Storage no device active.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
You can activate and deactivate the storage device for pcap files here. You can also format new disks by using the format option and erase the content of a disk if required. If the disk has not been formatted before, press the &#039;&#039;Format&#039;&#039; button here. It will show the dialogue:&lt;br /&gt;
&lt;br /&gt;
[[File:Format disk dialogue.png|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Here you can decide whether disk encryption will be used or not, see [[#Encryption]] below. You can also decide if and how much space can be used for the &#039;&#039;&#039;packet ring buffer&#039;&#039;&#039;. Please note that you cannot save any pcap files to the external disk when you use &#039;&#039;&#039;100 %&#039;&#039;&#039; for the &#039;&#039;&#039;ring buffer&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If the disk has been formatted, you can continue with the configuration of the &#039;&#039;&#039;ring buffer&#039;&#039;&#039; at &#039;&#039;&#039;Generic&#039;&#039;&#039;  → &#039;&#039;&#039;ring buffer&#039;&#039;&#039;. If you have created a disk with a ring buffer, you should see the statistics of the buffer as in the screen shot here below.&lt;br /&gt;
&lt;br /&gt;
[[File:Running packet ring buffer.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
The ring buffer is now running and all pcap buttons will work for historic dates. For advanced setup, please continue at the section [[#Filter Rules]].&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Cluster ring buffer&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
The cluster ring buffer is the default mode on all Allegro Network Multimeters that are shipped with &#039;&#039;&#039;two or more&#039;&#039;&#039; internal or external storage devices.&lt;br /&gt;
&lt;br /&gt;
By default, the Allegro Network Multimeter uses &#039;&#039;&#039;One&#039;&#039;&#039; cluster ring buffer. If you need more, please open the Settings menu at the top right corner.&lt;br /&gt;
&lt;br /&gt;
[[File:Settings button.png|border|100px]]&lt;br /&gt;
&lt;br /&gt;
Here you can increase the number of cluster ring buffers. We will continue this tutorial with 2 ring buffers to show the full flexibility of the Allegro. Please note that you need to restart the processing when you change the parameter. This can be done at &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Administration&#039;&#039;&#039; → &#039;&#039;&#039;Restart processing&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
To enable the cluster ring buffer mode, please check at &#039;&#039;&#039;Generic&#039;&#039;&#039;  → &#039;&#039;&#039;ring buffer&#039;&#039;&#039;, if the tab &#039;&#039;cluster configuration&#039;&#039; is selected or not. If it is not, selected, delete the non-cluster ring buffer with:&lt;br /&gt;
&lt;br /&gt;
[[File:Delete ring buffer button.png|border|100px]]&lt;br /&gt;
&lt;br /&gt;
Once this is done, you should see the dialogue:&lt;br /&gt;
&lt;br /&gt;
[[File:Select ring buffer.png|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Here you can select &#039;&#039;&#039;Create cluster ring buffer&#039;&#039;&#039;. Once this is selected, you will see all available clusters of ring buffers. By default, the first cluster is running but has no disk assigned to it. The size of the buffer is 0 Bytes and it drops all packets written into it.&lt;br /&gt;
&lt;br /&gt;
[[File:Cluster ring buffer initial startup.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
As a next step, please select the configuration for the cluster.&lt;br /&gt;
&lt;br /&gt;
[[File:Cluster ring buffer configuration.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
Please select here &#039;&#039;&#039;Add to cluster&#039;&#039;&#039; to format a disk and add it to the cluster. Once you have added disks to a cluster, the packets will be written to the storage device.&lt;br /&gt;
&lt;br /&gt;
[[File:Cluster ring buffer with disks.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
== Filter Rules ==&lt;br /&gt;
&lt;br /&gt;
Both ring buffer modes support packet filtering mechanisms. Most situations require that only a subset of all packets are stored to the disk. Each ring buffer can be configured by a separate list of rules. All packet that do not match a condition are captured. The first matching condition is applied to the packets.&lt;br /&gt;
&lt;br /&gt;
=== Filter rule conditions ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter supports packet slicing with the following conditions:&lt;br /&gt;
&lt;br /&gt;
* All packets → matches on all Ehternet packets&lt;br /&gt;
* MAC address → matches a specific L2 MAC address&lt;br /&gt;
* IP Address and IP Subnet → matches a specific IP address and subnet, works for IPv4 and IPv6&lt;br /&gt;
* TCP/UDP Ports → matches all TCP or UDP packets with a specific source or destination port&lt;br /&gt;
* L7 Protocol → matches one of the built-in L7 protocols&lt;br /&gt;
* Outer VLAN Tag → matches a single VLAN tag or the outer VLAN of a double-tagged VLAN frame&lt;br /&gt;
* Interface → matches a specific network interface&lt;br /&gt;
* SIP Phone Number → matches a specific SIP caller or callee phone number and its correlated RTP flow&lt;br /&gt;
* Virtual Link Group → matches a virtual link group&lt;br /&gt;
&lt;br /&gt;
All conditions can be negated to match everything except an IP subnet and similar.&lt;br /&gt;
&lt;br /&gt;
=== Filter rule actions ===&lt;br /&gt;
&lt;br /&gt;
The following items are supported as actions:&lt;br /&gt;
&lt;br /&gt;
* Snapshot Length → byte packet slicing; allows for the capture of only a certain number of bytes per packet&lt;br /&gt;
* Discard → do not capture this packet&lt;br /&gt;
* Full → capture the full packet&lt;br /&gt;
* Header+Data → capture only up to L3 or L4 or a specified quantity of L7 bytes.&lt;br /&gt;
&lt;br /&gt;
=== Filter rule examples ===&lt;br /&gt;
&lt;br /&gt;
Filter rules can be set up below the statistics of each ring buffer. This is a list of the most-used filter rules. Note that you can combine these rules. &lt;br /&gt;
&lt;br /&gt;
==== Capture all traffic from and to a single IP ====&lt;br /&gt;
&lt;br /&gt;
This use case is valid when you need to investigate the packets of one IP but you need the statistics of the total link. This is a common use case where the link bandwidth is above the ring buffer write rate. As an example, it can occur when you monitor a heavy loaded 10G or 40G link with a single HDD as the ring buffer device.&lt;br /&gt;
&lt;br /&gt;
You need to set up 2 rules to capture only one single IP. The first rule matches the IP address and captures the entire payload, the second rule drops all packets. This will also drop all non-IP packets like ARP requests.&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer filter one ip.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
==== Capture SSL traffic only up to L4 ====&lt;br /&gt;
&lt;br /&gt;
Also a common use case is to not capture encrypted content. This can be done by setting up a rule for encrypted L7 protocols to capture only up to the L4 header for IP and TCP investigation. This can be configured with the following settings:&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer rule create ssl l4.png|border|400px]]&lt;br /&gt;
&lt;br /&gt;
The configured rule will look like:&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer rule ssl l4.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
==== Capture full SIP, capture RTP to the first 12 bytes of the payload and drop all other packets ====&lt;br /&gt;
&lt;br /&gt;
This is a common VoIP use case where you are allowed to capture the signaling traffic and the RTP header ( 12 bytes ) but not the RTP traffic payload. Here is the example rule setup:&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer rule sip rtp.png|border|600px]]&lt;br /&gt;
&lt;br /&gt;
==== Capture all packets except SIP and RTP ====&lt;br /&gt;
&lt;br /&gt;
This use case is very common for all environments where no voice is allowed to be captured. Here is the example rule setup:&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer rule drop sip rtp.png|600px]]&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
&lt;br /&gt;
=== Disk read and write performance ===&lt;br /&gt;
&lt;br /&gt;
Note that one disk can have &#039;&#039;&#039;one&#039;&#039;&#039; shared ring buffer or be part of &#039;&#039;&#039;one&#039;&#039;&#039; cluster ring buffer. Hard disk drives have a high constant write rate when only one write is active.&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter has a &#039;&#039;write first&#039;&#039; policy on the ring buffer devices.  The Allegro prioritizes writes over reads for storage. A pcap read can be very slow when there is a high write rate to the ring buffer.&lt;br /&gt;
&lt;br /&gt;
=== Concurrent &#039;&#039;&#039;ring buffer&#039;&#039;&#039; and live &#039;&#039;&#039;pcap&#039;&#039;&#039; recording ===&lt;br /&gt;
&lt;br /&gt;
Note that HDDs are not made for 2 simultaneous write streams. The write rate will be very low if you capture a live pcap to the single shared storage device while having an active ring buffer. Please use the browser download feature, different disks with the cluster ring buffer or pause the ring buffer while capturing the live pcap.&lt;br /&gt;
&lt;br /&gt;
=== Buffering traffic peaks or disk slowdowns ===&lt;br /&gt;
&lt;br /&gt;
Note that most HDDs and SSDs do not have a guaranteed write rate. Especially HDDs via the USB or SATA3 protocol can have downtimes of hundreds of milliseconds between writes. Each ring buffer uses a certain amount of memory to buffer traffic peaks. This buffer can be configured at the &#039;&#039;&#039;Settings&#039;&#039;&#039; of the &#039;&#039;&#039;ring buffer&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer queue resize config.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
You can check if the queue length is large enough with the &#039;&#039;&#039;Bytes in Flight&#039;&#039;&#039; graph and the &#039;&#039;&#039;Dropped Bytes&#039;&#039;&#039; graph in the ring buffer statistics.&lt;br /&gt;
&lt;br /&gt;
[[File:Ring buffer data in flight.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
== iSCSI ring buffer ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;DISCLAIMER&#039;&#039;&#039; Whenever possible, use a direct-connected exclusive external storage device via USB. The Allegro Network Multimeter can control the USB channel far better than an iSCSI channel due to exclusivity.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The iSCSI ring buffer feature allows you to mount an iSCSI volume via the management interface. Allegro recommends to use this feature only for capture rates up to 1GBit/s. The iSCSI controller will have an exclusive low-latency connection to the Allegro Network Multimeter and the rate shall be exclusive to the Allegro Network Multimeter. Also, the management traffic between the Allegro and the iSCSI rate will not be monitored by the Allegro to prevent a write loop.&lt;br /&gt;
If the rate is non-exclusive, other reads or writes will heavily reduce the constant write rate. Note that the iSCSI connection is not encrypted.&lt;br /&gt;
&lt;br /&gt;
== Advanced Options ==&lt;br /&gt;
&lt;br /&gt;
=== Disk format ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter uses EXT4 for all formatted file systems for the ring buffer. EXT4 file systems support advanced features that are mandatory to capture with full SSD speed.&lt;br /&gt;
&lt;br /&gt;
=== Encryption ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter uses an &#039;&#039;&#039;AES256 LUKS encryption container&#039;&#039;&#039; for encrypted single shared ring buffers. You can connect and mount the encrypted disk with many Linux Distributions. It will ask for your password to mount the container.&lt;br /&gt;
The Allegro uses hardware encryption if available. The Allegro 200 does not have HW encryption support and can encrypt up to 400MBit/s in software. All other Allegro devices can encrypt with 2GB/s by using the built-in hardware encryption.&lt;br /&gt;
&lt;br /&gt;
The Allegro does &#039;&#039;not&#039;&#039; store the password of the encrypted device on the disk. you need to re-enter the password if you unmount, reboot or power-off the Allegro Network Multimeter.&lt;br /&gt;
&lt;br /&gt;
The encryption is not available for the cluster ring buffer.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Ring_buffer_rule_drop_sip_rtp.png&amp;diff=2919</id>
		<title>File:Ring buffer rule drop sip rtp.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Ring_buffer_rule_drop_sip_rtp.png&amp;diff=2919"/>
		<updated>2020-06-22T06:37:10Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2915</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2915"/>
		<updated>2020-06-19T08:56:40Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* List of tested third-party modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36432 || Fiber (LR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || fs.com 68000 || Fiber (SR) || requires Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.161HG.10 || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Cisco QSFP-100G-CU (1M, 2M, 3M, 5M) || DA(Copper, Passive) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
Original Cisco modules have many issues working in the Allegro. Allegro got the feedback from multiple customers that they have issues with Cisco modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|-&lt;br /&gt;
| QFSP28 || Cisco QSFP-100G-SM-SR || Fiber (LR4 lite) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2914</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2914"/>
		<updated>2020-06-19T08:54:03Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Non-working modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36432 || Fiber (LR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || fs.com 68000 || Fiber (SR) || requires Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.161HG.10 || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
Original Cisco modules have many issues working in the Allegro. Allegro got the feedback from multiple customers that they have issues with Cisco modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|-&lt;br /&gt;
| QFSP28 || Cisco QSFP-100G-SM-SR || Fiber (LR4 lite) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2913</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2913"/>
		<updated>2020-06-19T08:53:52Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Non-working modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36432 || Fiber (LR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || fs.com 68000 || Fiber (SR) || requires Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.161HG.10 || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
Original Cisco modules have many issues working in the Allegro. Allegro got the feedback from multiple customers that they have issues with Cisco modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || only partial support, modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|-&lt;br /&gt;
| QFSP28 || Cisco QSFP-100G-SM-SR || Fiber (LR lite) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2912</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2912"/>
		<updated>2020-06-19T08:53:04Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* List of tested third-party modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36432 || Fiber (LR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || fs.com 68000 || Fiber (SR) || requires Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.161HG.10 || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
Original Cisco modules have many issues working in the Allegro. Allegro got the feedback from multiple customers that they have issues with Cisco modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|-&lt;br /&gt;
| QFSP28 || Cisco QSFP-100G-SM-SR || Fiber (LR lite) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2911</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2911"/>
		<updated>2020-06-19T08:52:43Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Non-working modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36432 || Fiber (LR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || fs.com 68000 || Fiber (SR) || requires Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.161HG.10 || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
Original Cisco modules have many issues working in the Allegro. Allegro got the feedback from multiple customers that they have issues with Cisco modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|-&lt;br /&gt;
| QFSP28 || Cisco QSFP-100G-SM-SR || Fiber (LR lite) || does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2910</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2910"/>
		<updated>2020-06-19T08:48:12Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* List of tested third-party modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36432 || Fiber (LR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || fs.com 68000 || Fiber (SR) || requires Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.161HG.10 || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || non-standard module, does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2865</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2865"/>
		<updated>2020-05-28T08:54:52Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jq ===&lt;br /&gt;
&lt;br /&gt;
jq ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This exampe shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap extraction ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== IP statistics ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2864</id>
		<title>Burst analysis on a Mirror or Packet Broker input</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2864"/>
		<updated>2020-05-28T08:49:42Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter is connected to a mirror port or packet broker. By default, this makes it very hard to analyze a specific Link for bursts as the packet are aggregated on the mirror or packet broker port.&lt;br /&gt;
&lt;br /&gt;
Please note that this guide is based on the manual [[Burst analysis]] and on the use case guide [[Network Burst Analysis]].&lt;br /&gt;
&lt;br /&gt;
== Link Burst Measurement ==&lt;br /&gt;
&lt;br /&gt;
By default, each Multimeter measures the Bursts per Interface at &#039;&#039;&#039;L2 Ethernet&#039;&#039;&#039; → &#039;&#039;&#039; Burst Analysis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Burst link measurement.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Here you can configure the speed per link as the maximum speed.&lt;br /&gt;
&lt;br /&gt;
== MAC Burst measurement ==&lt;br /&gt;
&lt;br /&gt;
To analyze a specific link, you can use the MAC burst analysis. This is shown at the tab &#039;&#039;&#039;MACs&#039;&#039;&#039; in the burst analysis. It allows to set a specific receive and send packet rate for one mac address. If you have an uplink, simply use the routers MAC address here and the specify the maximum receive and send rate of the routers uplink.&lt;br /&gt;
&lt;br /&gt;
In this example, I have used a test link with 250MBit/s downlink and 40MBit/s uplink for the Router Mac address.&lt;br /&gt;
&lt;br /&gt;
[[File:Burst mac measurement.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Burst analysis is done with 1 millisecond resolution by default. In our example, the router is connected with 1 GBit/s and it can send more than the configured bandwidth. This is shown in the display as an utilization of &amp;quot;&amp;gt;&amp;gt; 100%&amp;quot; and indicates a burst that might not be able to be handeled by this uplink.&lt;br /&gt;
&lt;br /&gt;
== Advantage for Mirror Port and Packet Brokers ==&lt;br /&gt;
&lt;br /&gt;
The MAC burst detection can be used for a specific end device ( a file server,... ) or for the gateway of an uplink ( router,... ). It allows to monitor links and end devices even in out-of-band installations.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2863</id>
		<title>Burst analysis on a Mirror or Packet Broker input</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2863"/>
		<updated>2020-05-28T08:48:45Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter is connected to a mirror port or packet broker. By default, this makes it very hard to analyze a specific Link for bursts as the packet are aggregated on the mirror or packet broker port.&lt;br /&gt;
&lt;br /&gt;
Please note that this guide is based on the use case guide [[Network Burst Analysis]].&lt;br /&gt;
&lt;br /&gt;
== Link Burst Measurement ==&lt;br /&gt;
&lt;br /&gt;
By default, each Multimeter measures the Bursts per Interface at &#039;&#039;&#039;L2 Ethernet&#039;&#039;&#039; → &#039;&#039;&#039; Burst Analysis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Burst link measurement.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Here you can configure the speed per link as the maximum speed.&lt;br /&gt;
&lt;br /&gt;
== MAC Burst measurement ==&lt;br /&gt;
&lt;br /&gt;
To analyze a specific link, you can use the MAC burst analysis. This is shown at the tab &#039;&#039;&#039;MACs&#039;&#039;&#039; in the burst analysis. It allows to set a specific receive and send packet rate for one mac address. If you have an uplink, simply use the routers MAC address here and the specify the maximum receive and send rate of the routers uplink.&lt;br /&gt;
&lt;br /&gt;
In this example, I have used a test link with 250MBit/s downlink and 40MBit/s uplink for the Router Mac address.&lt;br /&gt;
&lt;br /&gt;
[[File:Burst mac measurement.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Burst analysis is done with 1 millisecond resolution by default. In our example, the router is connected with 1 GBit/s and it can send more than the configured bandwidth. This is shown in the display as an utilization of &amp;quot;&amp;gt;&amp;gt; 100%&amp;quot; and indicates a burst that might not be able to be handeled by this uplink.&lt;br /&gt;
&lt;br /&gt;
== Advantage for Mirror Port and Packet Brokers ==&lt;br /&gt;
&lt;br /&gt;
The MAC burst detection can be used for a specific end device ( a file server,... ) or for the gateway of an uplink ( router,... ). It allows to monitor links and end devices even in out-of-band installations.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2862</id>
		<title>Burst analysis on a Mirror or Packet Broker input</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2862"/>
		<updated>2020-05-28T08:41:07Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problem ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter is connected to a mirror port or packet broker. By default, this makes it very hard to analyze a specific Link for bursts as the packet are aggregated on the mirror or packet broker port.&lt;br /&gt;
&lt;br /&gt;
Please note that this guide is based on the use case guide [[Network Burst Analysis]].&lt;br /&gt;
&lt;br /&gt;
== Link Burst Measurement ==&lt;br /&gt;
&lt;br /&gt;
By default, each Multimeter measures the Bursts per Interface at &#039;&#039;&#039;L2 Ethernet&#039;&#039;&#039; → &#039;&#039;&#039; Burst Analysis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Burst link measurement.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Here you can configure the speed per link as the maximum speed.&lt;br /&gt;
&lt;br /&gt;
== MAC Burst measurement ==&lt;br /&gt;
&lt;br /&gt;
To analyze a specific link, you can use the MAC burst analysis. This is shown at the tab &#039;&#039;&#039;MACs&#039;&#039;&#039; in the burst analysis. It allows to set a specific receive and send packet rate for one mac address. If you have an uplink, simply use the routers MAC address here and the specify the maximum receive and send rate of the routers uplink.&lt;br /&gt;
&lt;br /&gt;
In this example, I have used a test link with 250MBit/s downlink and 40MBit/s uplink for the Router Mac address.&lt;br /&gt;
&lt;br /&gt;
[[File:Burst mac measurement.png|500px]]&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Burst_mac_measurement.png&amp;diff=2861</id>
		<title>File:Burst mac measurement.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Burst_mac_measurement.png&amp;diff=2861"/>
		<updated>2020-05-28T08:40:46Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=File:Burst_link_measurement.png&amp;diff=2860</id>
		<title>File:Burst link measurement.png</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=File:Burst_link_measurement.png&amp;diff=2860"/>
		<updated>2020-05-28T08:32:13Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KD&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2859</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2859"/>
		<updated>2020-05-28T08:26:57Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Combination mark transparent.png|300px|link=https://www.allegro-packets.com]]&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&#039;&#039;&#039;This is the Allegro Packets Documentation Wiki. Please visit the website of [https://allegro-packets.com Allegro Packets] for more information.&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:black; background-color:#fcfcfc; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* [[Generic Allegro Network Multimeter installation]]&lt;br /&gt;
* Additional installation notes for specific devices:&lt;br /&gt;
** [[Allegro 200 series]]&lt;br /&gt;
* [[Management interface settings|Configure Management IP address]]&lt;br /&gt;
* [[IPMI KVM on Allegro series 1000+]]&lt;br /&gt;
* [[User Management|Multi users and permissions]]&lt;br /&gt;
* [[Firmware update]]&lt;br /&gt;
* [[Performing a factory reset or configuration reset]]&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Typical Installation Setups ===&lt;br /&gt;
* [[In-Line Installation|In-Line Installation Guide]]&lt;br /&gt;
* [[Mirror Port, TAP and Packet Broker Installation|Mirror Port, TAP and Packet Broker Installation Guide]]&lt;br /&gt;
* [[ERSPAN Installation|ERSPAN Installation Guide]]&lt;br /&gt;
* [[VMWare Workstation Player/Pro Installation Guide]]&lt;br /&gt;
* [[VMWare ESXI Installation Guide]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[VirtualBox Installation Guide]]&lt;br /&gt;
* Amazon AWS Setup&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Configuration Guides ===&lt;br /&gt;
* [[Setup storage devices for capturing and ring buffer]]&lt;br /&gt;
* [[Ring Buffer Configuration Guide]] &amp;lt;br/&amp;gt; ( Single Disk, Multiple Cluster,... )&lt;br /&gt;
* [[Parallel packet processing|Parallel Packet Processing Configuration Guide]]&lt;br /&gt;
* [[Virtual Link Group Configuration Guide]]&lt;br /&gt;
* [[Multi-device settings|Multi-Allegro Configuration]]&lt;br /&gt;
&amp;lt;!-- * [[Remote Capture Configuration]] --&amp;gt;&lt;br /&gt;
* [[Performance Optimization Guide]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Web Interface Manual ===&lt;br /&gt;
* [[Introduction]] &lt;br /&gt;
* [[Quickstart]] &lt;br /&gt;
* [[Usage]] &lt;br /&gt;
* [[Measurement modules]]&lt;br /&gt;
* [[System Info Page]] &lt;br /&gt;
* [[Settings]] &lt;br /&gt;
* [[FAQ|FAQ - Frequently Asked Questions]]&lt;br /&gt;
* [[Error descriptions]]&lt;br /&gt;
* [[Feature documentation]] &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
* [[Investigate Network Load ]]&lt;br /&gt;
* [[Forensic pcap Analysis ]]&lt;br /&gt;
* [[Find Profinet problems]]&lt;br /&gt;
* [[Network Burst Analysis]]&lt;br /&gt;
* [[Burst analysis on a Mirror or Packet Broker input]]&lt;br /&gt;
* [[Capturing]]&lt;br /&gt;
* [[Investigating network problems on remote sites]]&lt;br /&gt;
* [[Debugging Skype Traffic]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Data export and third-party tools ===&lt;br /&gt;
* [[REST API description]]&lt;br /&gt;
* [[Statistics Export via POST]]&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* [[NetFlow/IPFIX_interface]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
* [[Using the Allegro Remote Service]]&lt;br /&gt;
* [[Self-hosted SSH proxy]]&lt;br /&gt;
|&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
* [[ Global settings]]&lt;br /&gt;
* [[ Module settings]]&lt;br /&gt;
* [[ Incident settings]]&lt;br /&gt;
* [[ User defined names]]&lt;br /&gt;
* [[ Management interface settings]]&lt;br /&gt;
* [[ Multi-device settings]]&lt;br /&gt;
* [[ Administration]]&lt;br /&gt;
* [[ Filter]]&lt;br /&gt;
* [[ Remote access and export]]&lt;br /&gt;
* [[ User Management]]&lt;br /&gt;
* [[ Firmware update]]&lt;br /&gt;
* [[ License upload]]&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Getting support ===&lt;br /&gt;
&lt;br /&gt;
* [[Reaching Allegro Support]]&lt;br /&gt;
* [[Reporting bugs]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
=== Support of third-party hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[List of Supported Transceiver Modules]]&lt;br /&gt;
* [[Supported storage devices for x300/x500 series]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2848</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2848"/>
		<updated>2020-05-26T09:12:50Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* List of tested third-party modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || fs.com 36431 || Fiber (SR) || requires Intel branding, supports only 10G operation, 1G does NOT work&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || Flexoptix Q.851HG.02 || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 || fs.com 75308 || Fiber (SR4) || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || non-standard module, does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2847</id>
		<title>List of Supported Transceiver Modules</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=List_of_Supported_Transceiver_Modules&amp;diff=2847"/>
		<updated>2020-05-25T06:42:43Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* List of tested third-party modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== DISCLAIMER ==&lt;br /&gt;
&lt;br /&gt;
Allegro Packets allows you to use third-party vendor modules in its appliances but guarantees only warranty and support for transceiver modules sold by Allegro Packets. Any malfunction or configuration issue with third-party modules are NOT covered by the warranty.&lt;br /&gt;
&lt;br /&gt;
Allegro Packets does not restrict the use of third-party SFP+ modules for the devices. However, some hardware limitations apply which are described as follows:&lt;br /&gt;
&lt;br /&gt;
== Built-in ports vs. expansion cards ==&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter 1000/1200/3000/3200 series have two on-board SFP+ ports which are restricted to original or branded &#039;&#039;&#039;Intel modules&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
All non built-in ports are &#039;&#039;&#039;not&#039;&#039;&#039; vendor locked and can accept all transceiver modules. However, there are modules that do not work because of specific vendor extensions within the modules. This applies for all ports of the Allegro Network Multimeter x300 and x500 series and all expansion cards for the Allegro Network Multimeter 1000/1200/3000/3200.&lt;br /&gt;
&lt;br /&gt;
The following table shows which kind of modules are supported by Allegro by&lt;br /&gt;
port type:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Port type !!original or branded Intel modules    !! non-Intel branded modules &lt;br /&gt;
|-           &lt;br /&gt;
| built-in SFP+ ports  || x || -&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP expansion|| x|| x&lt;br /&gt;
|-&lt;br /&gt;
| QSFP28 expansion|| x || x&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The use of Intel branded  modules is mandatory for the built-in SFP+ ports. These&lt;br /&gt;
restrictions do not apply to the additional network expansion cards&lt;br /&gt;
(2 port and 4 port SFP+, high precision GPS card, etc.) that are available for&lt;br /&gt;
the Allegro Network Multimeter 1000 and 3000 series. These ports accept&lt;br /&gt;
generic modules from a wide range of vendors.&lt;br /&gt;
&lt;br /&gt;
Since auto-negotiation is often not available on 1G/10G SFP+ interfaces, it&lt;br /&gt;
may be necessary to manually set the correct speed in the `Interface Stats`&lt;br /&gt;
section of the user interface.&lt;br /&gt;
&lt;br /&gt;
QSFP+ breakout cables are NOT supported.&lt;br /&gt;
&lt;br /&gt;
== List of tested third-party modules ==&lt;br /&gt;
&lt;br /&gt;
The following list of modules have been either tested by Allegro or customers and have been reported to operate. Please be aware that this can change due new module revisions.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPSR || Fiber (SR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel E10GSFPLR || Fiber (LR) || supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Intel XDACBL1M, XDACBL3M or XDACBL5M|| DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.8596.02 || Fiber (SR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP+ || Flexoptix P.1396.10 || Fiber (LR) || requires Intel branding, supports 1G and 10G operation&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.8525G.01 || Fiber (SR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| SFP28 || Flexoptix P.1325G.10 || Fiber (LR) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.8540G.02 || Fiber (SR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Flexoptix Q.1640G.10 || Fiber (LR4) || recommended with Intel branding&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL4C1QE1C || Fiber (LR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QD2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE1C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE2C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || FINISAR FTL410QE3C || Fiber (SR4) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ || Amphenol 603020002, 603020005 || DA(Copper, Passive) ||&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR BG || Cisco qsfp-40g-sr-bg P/N: 191402 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G SR4 || Cisco qsfp-40g-sr4 P/N: 186602 || Fiber (SR4) || modules must be (re-) inserted after power up&lt;br /&gt;
|-&lt;br /&gt;
| QSFP+ 40G AOC || Cisco qsfp-h40g-aoc10m P/N: 187627 || Fiber (SR) || modules must be (re-) inserted after power up&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Non-working modules ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Optics/Copper Module !! Transceiver P/N !! Media Type !! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| QFSP+ 40/100 SRBD || Cisco qsfp-40/100-srbd P/N: 199804 || Fiber (SR) || non-standard module, does &#039;&#039;&#039;NOT&#039;&#039;&#039; work&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2827</id>
		<title>Burst analysis on a Mirror or Packet Broker input</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Burst_analysis_on_a_Mirror_or_Packet_Broker_input&amp;diff=2827"/>
		<updated>2020-05-20T12:30:09Z</updated>

		<summary type="html">&lt;p&gt;Klaus: Created page with &amp;quot;&amp;lt;accesscontrol&amp;gt;AC:GroupXZY&amp;lt;/accesscontrol&amp;gt;  == About ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupXZY&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2826</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2826"/>
		<updated>2020-05-20T12:27:14Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Combination mark transparent.png|300px|link=https://www.allegro-packets.com]]&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&#039;&#039;&#039;This is the Allegro Packets Documentation Wiki. Please visit the website of [https://allegro-packets.com Allegro Packets] for more information.&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:black; background-color:#fcfcfc; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* [[Generic Allegro Network Multimeter installation]]&lt;br /&gt;
* Additional installation notes for specific devices:&lt;br /&gt;
** [[Allegro 200 series]]&lt;br /&gt;
* [[Management interface settings|Configure Management IP address]]&lt;br /&gt;
* [[IPMI KVM on Allegro series 1000+]]&lt;br /&gt;
* [[User Management|Multi users and permissions]]&lt;br /&gt;
* [[Firmware update]]&lt;br /&gt;
* [[Performing a factory reset or configuration reset]]&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Typical Installation Setups ===&lt;br /&gt;
* [[In-Line Installation|In-Line Installation Guide]]&lt;br /&gt;
* [[Mirror Port, TAP and Packet Broker Installation|Mirror Port, TAP and Packet Broker Installation Guide]]&lt;br /&gt;
* [[ERSPAN Installation|ERSPAN Installation Guide]]&lt;br /&gt;
* [[VMWare Workstation Player/Pro Installation Guide]]&lt;br /&gt;
* [[VMWare ESXI Installation Guide]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[VirtualBox Installation Guide]]&lt;br /&gt;
* Amazon AWS Setup&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Configuration Guides ===&lt;br /&gt;
* [[Setup storage devices for capturing and ring buffer]]&lt;br /&gt;
* [[Ring Buffer Configuration Guide]] &amp;lt;br/&amp;gt; ( Single Disk, Multiple Cluster,... )&lt;br /&gt;
* [[Parallel packet processing|Parallel Packet Processing Configuration Guide]]&lt;br /&gt;
* [[Virtual Link Group Configuration Guide]]&lt;br /&gt;
* [[Multi-device settings|Multi-Allegro Configuration]]&lt;br /&gt;
&amp;lt;!-- * [[Remote Capture Configuration]] --&amp;gt;&lt;br /&gt;
* [[Performance Optimization Guide]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Web Interface Manual ===&lt;br /&gt;
* [[Introduction]] &lt;br /&gt;
* [[Quickstart]] &lt;br /&gt;
* [[Usage]] &lt;br /&gt;
* [[Measurement modules]]&lt;br /&gt;
* [[System Info Page]] &lt;br /&gt;
* [[Settings]] &lt;br /&gt;
* [[FAQ|FAQ - Frequently Asked Questions]]&lt;br /&gt;
* [[Error descriptions]]&lt;br /&gt;
* [[Feature documentation]] &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
* [[Investigate Network Load ]]&lt;br /&gt;
* [[Forensic pcap Analysis ]]&lt;br /&gt;
* [[Find Profinet problems]]&lt;br /&gt;
* [[Network burst analysis]]&lt;br /&gt;
* [[Burst analysis on a Mirror or Packet Broker input]]&lt;br /&gt;
* [[Capturing]]&lt;br /&gt;
* [[Investigating network problems on remote sites]]&lt;br /&gt;
* [[Debugging Skype Traffic]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Data export and third-party tools ===&lt;br /&gt;
* [[REST API description]]&lt;br /&gt;
* [[Statistics Export via POST]]&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* [[NetFlow/IPFIX_interface]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
* [[Using the Allegro Remote Service]]&lt;br /&gt;
* [[Self-hosted SSH proxy]]&lt;br /&gt;
|&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
* [[ Global settings]]&lt;br /&gt;
* [[ Module settings]]&lt;br /&gt;
* [[ Incident settings]]&lt;br /&gt;
* [[ User defined names]]&lt;br /&gt;
* [[ Management interface settings]]&lt;br /&gt;
* [[ Multi-device settings]]&lt;br /&gt;
* [[ Administration]]&lt;br /&gt;
* [[ Filter]]&lt;br /&gt;
* [[ Remote access and export]]&lt;br /&gt;
* [[ User Management]]&lt;br /&gt;
* [[ Firmware update]]&lt;br /&gt;
* [[ License upload]]&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Getting support ===&lt;br /&gt;
&lt;br /&gt;
* [[Reaching Allegro Support]]&lt;br /&gt;
* [[Reporting bugs]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
=== Support of third-party hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[List of Supported Transceiver Modules]]&lt;br /&gt;
* [[Supported storage devices for x300/x500 series]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2825</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Main_Page&amp;diff=2825"/>
		<updated>2020-05-20T12:22:49Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:Combination mark transparent.png|300px|link=https://www.allegro-packets.com]]&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
|&#039;&#039;&#039;This is the Allegro Packets Documentation Wiki. Please visit the website of [https://allegro-packets.com Allegro Packets] for more information.&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color:black; background-color:#fcfcfc; width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
=== Installation ===&lt;br /&gt;
* [[Generic Allegro Network Multimeter installation]]&lt;br /&gt;
* Additional installation notes for specific devices:&lt;br /&gt;
** [[Allegro 200 series]]&lt;br /&gt;
* [[Management interface settings|Configure Management IP address]]&lt;br /&gt;
* [[IPMI KVM on Allegro series 1000+]]&lt;br /&gt;
* [[User Management|Multi users and permissions]]&lt;br /&gt;
* [[Firmware update]]&lt;br /&gt;
* [[Performing a factory reset or configuration reset]]&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Typical Installation Setups ===&lt;br /&gt;
* [[In-Line Installation|In-Line Installation Guide]]&lt;br /&gt;
* [[Mirror Port, TAP and Packet Broker Installation|Mirror Port, TAP and Packet Broker Installation Guide]]&lt;br /&gt;
* [[ERSPAN Installation|ERSPAN Installation Guide]]&lt;br /&gt;
* [[VMWare Workstation Player/Pro Installation Guide]]&lt;br /&gt;
* [[VMWare ESXI Installation Guide]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[VirtualBox Installation Guide]]&lt;br /&gt;
* Amazon AWS Setup&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Configuration Guides ===&lt;br /&gt;
* [[Setup storage devices for capturing and ring buffer]]&lt;br /&gt;
* [[Ring Buffer Configuration Guide]] &amp;lt;br/&amp;gt; ( Single Disk, Multiple Cluster,... )&lt;br /&gt;
* [[Parallel packet processing|Parallel Packet Processing Configuration Guide]]&lt;br /&gt;
* [[Virtual Link Group Configuration Guide]]&lt;br /&gt;
* [[Multi-device settings|Multi-Allegro Configuration]]&lt;br /&gt;
&amp;lt;!-- * [[Remote Capture Configuration]] --&amp;gt;&lt;br /&gt;
* [[Performance Optimization Guide]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Web Interface Manual ===&lt;br /&gt;
* [[Introduction]] &lt;br /&gt;
* [[Quickstart]] &lt;br /&gt;
* [[Usage]] &lt;br /&gt;
* [[Measurement modules]]&lt;br /&gt;
* [[System Info Page]] &lt;br /&gt;
* [[Settings]] &lt;br /&gt;
* [[FAQ|FAQ - Frequently Asked Questions]]&lt;br /&gt;
* [[Error descriptions]]&lt;br /&gt;
* [[Feature documentation]] &lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
* [[Investigate Network Load ]]&lt;br /&gt;
* [[Forensic pcap Analysis ]]&lt;br /&gt;
* [[Find Profinet problems]]&lt;br /&gt;
* [[Network burst analysis]]&lt;br /&gt;
* [[Capturing]]&lt;br /&gt;
* [[Investigating network problems on remote sites]]&lt;br /&gt;
* [[Debugging Skype Traffic]]&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Data export and third-party tools ===&lt;br /&gt;
* [[REST API description]]&lt;br /&gt;
* [[Statistics Export via POST]]&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* [[NetFlow/IPFIX_interface]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Remote access ===&lt;br /&gt;
&lt;br /&gt;
* [[Using the Allegro Remote Service]]&lt;br /&gt;
* [[Self-hosted SSH proxy]]&lt;br /&gt;
|&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
* [[ Global settings]]&lt;br /&gt;
* [[ Module settings]]&lt;br /&gt;
* [[ Incident settings]]&lt;br /&gt;
* [[ User defined names]]&lt;br /&gt;
* [[ Management interface settings]]&lt;br /&gt;
* [[ Multi-device settings]]&lt;br /&gt;
* [[ Administration]]&lt;br /&gt;
* [[ Filter]]&lt;br /&gt;
* [[ Remote access and export]]&lt;br /&gt;
* [[ User Management]]&lt;br /&gt;
* [[ Firmware update]]&lt;br /&gt;
* [[ License upload]]&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== Getting support ===&lt;br /&gt;
&lt;br /&gt;
* [[Reaching Allegro Support]]&lt;br /&gt;
* [[Reporting bugs]]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
=== Support of third-party hardware ===&lt;br /&gt;
&lt;br /&gt;
* [[List of Supported Transceiver Modules]]&lt;br /&gt;
* [[Supported storage devices for x300/x500 series]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Performance_Optimization_Guide&amp;diff=2798</id>
		<title>Performance Optimization Guide</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Performance_Optimization_Guide&amp;diff=2798"/>
		<updated>2020-05-13T11:42:26Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About ==&lt;br /&gt;
&lt;br /&gt;
This guide is about performance optimization of the &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; for specific use cases. By default, the device runs in a configuration that fits for the majority of users and you do not need to change any parameter of the configuration. Depending on the actual network traffic and measurement setup, it can be beneficial to adjust some performance-related parameters to achieve better overall performance.&lt;br /&gt;
&lt;br /&gt;
== High level Allegro system layout ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; has various components that process traffic. These components are:&lt;br /&gt;
&lt;br /&gt;
* I/O threads: responsible for all I/O operations between the network interface cards and the CPUs.&lt;br /&gt;
* Analyzer threads: responsible for decoding network traffic and most of the database operations for the statistical values.&lt;br /&gt;
* DB threads: optional threads which offload memory intensive database operations, see [[DB mode]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; uses queues to buffer packets and messages between the hardware instances (interfaces chips, central processing unit, storage) and threads. All threads measure their load individually which can be monitored at &#039;&#039;&#039;Info&#039;&#039;&#039; → &#039;&#039;&#039;System info&#039;&#039;&#039; → &#039;&#039;&#039;Load&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The utilization of the following queues can be monitored to see if and where changes to queue settings are helpful:&lt;br /&gt;
&lt;br /&gt;
== Interface hardware queues ==&lt;br /&gt;
&lt;br /&gt;
The interface hardware queue is between the network interfaces and the I/O threads of the central processing unit. Whenever the I/O threads are too slow to consume all packets from the built-in or extension network interfaces, the &#039;&#039;&#039;hardware miss&#039;&#039;&#039; counter of the [[Interface statistics]] will increase over time. &lt;br /&gt;
&lt;br /&gt;
The load of the I/O threads can be checked at the &#039;&#039;&#039;Info&#039;&#039;&#039; → &#039;&#039;&#039;System info&#039;&#039;&#039; → &#039;&#039;&#039;Load&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TODO: add overloaded Interface graph.&lt;br /&gt;
&lt;br /&gt;
If the load is near 100%, packet loss can occur and the following countermeasures can be attempted:&lt;br /&gt;
&lt;br /&gt;
# The Bridge mode requires approximately 10% - 30% more load on the I/O threads than the Sink mode. The I/O threads have to sent the incoming traffic to the corresponding outgoing network interface for forwarding. If packet forwarding is not necessary (for example when being deployed at a Mirror Port), switching to &#039;&#039;&#039;Sink mode&#039;&#039;&#039; will improve the performance of the device. For configuration, please see [[Global_settings#Packet_processing_mode|Global settings]].&lt;br /&gt;
# The number of queues can be adjusted at the cost of analyzer threads. Each queue uses a corresponding CPU thread so more queues means less CPU threads available for other components. This option is available on the Allegro 3000 and above due to the large number of internal CPU cores. Allegro Packets recommends to increase the number of queues only on the Allegro 3000 and above if necessary.&lt;br /&gt;
:: This setting can be changed at &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Global settings&#039;&#039;&#039; → &#039;&#039;&#039;Expert settings&#039;&#039;&#039;&lt;br /&gt;
:: [[File:Rx sockets io thread.png|600px]]&lt;br /&gt;
:: Allegro Packets recommends to test with HT enabled and 2 or 4 queue for I/O. If you see a high load on the analyzers, you can also test with 4 queues (I/O threads) without HT for maximum performance.&lt;br /&gt;
&lt;br /&gt;
== Analyzer queues ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; has a packet queue between I/O threads and the analyzer threads which distributes the incoming packets to the actual processing threads. There are two statistics describing the load of the queues and analyzer threads. If analyzer threads cannot process incoming packets quickly enough, the corresponding queue will eventually overflow and packets must be skipped for processing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Graphs for skipped packets: You can check at the &#039;&#039;&#039;Interface stats&#039;&#039;&#039; per interface and check whether all I/O threads were able to push all packets to the analyzer queues or not. The corresponding counter is &#039;&#039;&#039;Not processed due to overload&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Interface analyzer packet drop.png|400px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that high counters for a few seconds at the initial startup of the device are normal when it is started under high network load scenarios.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilization of individual analyzer threads: The load of the analyzer threads can be checked at the &#039;&#039;&#039;Info&#039;&#039;&#039; → &#039;&#039;&#039;System info&#039;&#039;&#039; → &#039;&#039;&#039;Load&#039;&#039;&#039;. Depending on the Allegro model, there can be two (Allegro 200, Allegro 500) or up to 120 (Allegro 5300 or 5500) analyzer threads.&lt;br /&gt;
The load graph gives an indication about the overall utilization of each thread but the important counter is the &#039;&#039;&#039;Not processed due to overload&#039;&#039;&#039; counter since this is the event when ultimately one or more packets could not be processed due to overload.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are 3 scenarios where the a queue overload can occur which are described in the following sections:&lt;br /&gt;
&lt;br /&gt;
=== Skipped packets at high analyzer load ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; has reached its processing limit for current traffic when the load of one or multiple analyzers reaches 100%.&lt;br /&gt;
&lt;br /&gt;
There are a some options to reduce the analyzer load but it always comes with the penalty of no longer seeing the entire measurement data. You can &#039;&#039;&#039;disable&#039;&#039;&#039; some features or add a &#039;&#039;&#039;NIC filter&#039;&#039;&#039; to process only parts of the traffic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can reduce the level of analysis at &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Global settings&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Detail of traffic analysis.png|600px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Every level reduction will reduce the amount of analyzed data and saved database operations, see [[Global_settings#Limit_module_processing]] for more details of this option. It is possible to adjust the setting so that live traffic is stored as fast possible to the ring buffer without further analysis and re-analyze parts of the recorded traffic with full analysis by using [[Parallel packet processing]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The NIC filter can be used to reduce the amount of monitored traffic. It excludes traffic from the analyzers for the cost of not seeing all traffic of the link. See the [[Filter|interface filter]] for more details.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If none of these options are applicable, you need to upgrade the &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; to a larger model with more performance (Allegro 1000 to 3000 or 3000 to 5000).&lt;br /&gt;
&lt;br /&gt;
=== Skipped packets at low analyzer load ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; conserves energy in very low traffic situations. Large packet bursts can lead to a high traffic situation so the analyser threads cannot keep up with the incoming packets fast enough during the period of power adjustment. After that small period of time, the analyzer threads are again fast enough to process the traffic.&lt;br /&gt;
&lt;br /&gt;
This can be identified if packets are not processed while the system load is still not very high at the same time. &lt;br /&gt;
&lt;br /&gt;
If this occurs, the option &#039;&#039;&#039;Analyzer queue overcommit&#039;&#039;&#039; at &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Global settings&#039;&#039;&#039; → &#039;&#039;&#039;Expert settings&#039;&#039;&#039; can be enabled. This option can only be used in &#039;&#039;&#039;Sink mode&#039;&#039;&#039; and it increases the queue size to be able to buffer network burts during a short time period. The disadvantage is that the queues are overcommitted so it can happen that the network card does not have enough buffers available for incoming packets.&lt;br /&gt;
&lt;br /&gt;
[[File:Queue overcommit.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Skipped packets due to analyzer load imbalance ===&lt;br /&gt;
&lt;br /&gt;
By default, the Allegro load balances the traffic between the analyzers based on the IP addresses of the client and server. This provides a good balancing in most situations. &lt;br /&gt;
&lt;br /&gt;
Network packets cannot distributed equally among all analyzer threads if there are many connections between only few IP addresses. An example is 2 SIP trunks with many RTP connections.&lt;br /&gt;
&lt;br /&gt;
The load statistics will show parts of the analyzers with a constant high load and others with a significantly lower load.&lt;br /&gt;
&lt;br /&gt;
The load balancing behavior of the &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; can be changed to flow-based load balancing mode at &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Global settings&#039;&#039;&#039; → &#039;&#039;&#039;Expert settings&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Flow load balancing.png|600px]]&lt;br /&gt;
&lt;br /&gt;
This mode improves the performance only for imbalanced traffic. Use the option only if required since it has a negative performance impact on balanced traffic.&lt;br /&gt;
&lt;br /&gt;
== Database queues ==&lt;br /&gt;
&lt;br /&gt;
The database mode is an extension for large Allegro models with multiple CPU sockets and it is disabled by default. This mode is only recommended for Allegro 3500 rev1 and Allegro 5500 rev1. The database mode helps to improve the performance for very high database loads. This could happen for millions of open and new connections in combination with NUMA bottlenecks. See [[DB mode]] for more details.&lt;br /&gt;
&lt;br /&gt;
If enabled, you can check if there are message drops between the analyzer threads and the DB threads in the load statistics.&lt;br /&gt;
&lt;br /&gt;
The ratio of DB threads vs analyzer threads can be adjusted so that ideally all threads have similar load.&lt;br /&gt;
&lt;br /&gt;
The advantage of the DB mode is that additional message queues are used which can buffer much more information and therefore reduce the load on the analyzer threads. This will reduce the likelihood of skipped packets.&lt;br /&gt;
&lt;br /&gt;
== Disk I/O queues ==&lt;br /&gt;
&lt;br /&gt;
The analyzer threads have to use additional queues for capturing packets to each disk or each disk cluster. Storage devices like HDDs and SSDs do not offer a constant write rate and have sudden write slowdowns. Please read the performance guide for the ring buffer [[Ring_Buffer_Configuration_Guide#Performance]] on how to adjust the options for high capturing performance.&lt;br /&gt;
&lt;br /&gt;
The two generic solutions are to increase the buffer and to use filter rules. Both will reduce the number of bytes that are written to the disk.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2795</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2795"/>
		<updated>2020-05-13T06:46:21Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; color: red;&amp;quot;&lt;br /&gt;
| Warning: This text is under construction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jq ===&lt;br /&gt;
&lt;br /&gt;
jq ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This exampe shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap extraction ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== IP statistics ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=Performance_Optimization_Guide&amp;diff=2794</id>
		<title>Performance Optimization Guide</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=Performance_Optimization_Guide&amp;diff=2794"/>
		<updated>2020-05-13T06:36:32Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Database queues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;AC:GroupUsers&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
This guide is about performance optimization of the &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; for specific use cases. By default, the device runs in a configuration that fits for the majority of users and you do not need to change any parameter of the configuration. Depending on the actual network traffic and measurement setup, it can be beneficial to adjust some performance-related parameters to achieve better overall performance.&lt;br /&gt;
&lt;br /&gt;
== High level Allegro system layout ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; has various components that process traffic. These components are:&lt;br /&gt;
&lt;br /&gt;
* I/O threads: responsible for all I/O operations between the network interface cards and the CPUs.&lt;br /&gt;
* Analyzer threads: responsible for decoding network traffic and most of the database operations for the statistical values.&lt;br /&gt;
* DB threads: optional threads which offload memory intensive database operations, see [[DB mode]].&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; uses queues to buffer packets and messages between the hardware instances (interfaces chips, central processing unit, storage) and threads. All threads measure their load individually which can be monitored at &#039;&#039;&#039;Info&#039;&#039;&#039; → &#039;&#039;&#039;System info&#039;&#039;&#039; → &#039;&#039;&#039;Load&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The utilization of the following queues can be monitored to see if and where changes to queue settings are helpful:&lt;br /&gt;
&lt;br /&gt;
== Interface hardware queues ==&lt;br /&gt;
&lt;br /&gt;
The interface hardware queue is between the network interfaces and the I/O threads of the central processing unit. Whenever the I/O threads are too slow to consume all packets from the built-in or extension network interfaces, the &#039;&#039;&#039;hardware miss&#039;&#039;&#039; counter of the [[Interface statistics]] will increase over time. &lt;br /&gt;
&lt;br /&gt;
The load of the I/O threads can be checked at the &#039;&#039;&#039;Info&#039;&#039;&#039; → &#039;&#039;&#039;System info&#039;&#039;&#039; → &#039;&#039;&#039;Load&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
TODO: add overloaded Interface graph.&lt;br /&gt;
&lt;br /&gt;
If the load is near 100%, packet loss can occur and the following countermeasures can be attempted:&lt;br /&gt;
&lt;br /&gt;
# The Bridge mode requires approximately 10% - 30% more load on the I/O threads than the Sink mode. The I/O threads have to sent the incoming traffic to the corresponding outgoing network interface for forwarding. If packet forwarding is not necessary (for example when being deployed at a Mirror Port), switching to &#039;&#039;&#039;Sink mode&#039;&#039;&#039; will improve the performance of the device. For configuration, please see [[Global_settings#Packet_processing_mode|Global settings]].&lt;br /&gt;
# The number of queues can be adjusted at the cost of analyzer threads. Each queue uses a corresponding CPU thread so more queues means less CPU threads available for other components. This option is available on the Allegro 3000 and above due to the large number of internal CPU cores. Allegro Packets recommends to increase the number of queues only on the Allegro 3000 and above if necessary.&lt;br /&gt;
:: This setting can be changed at &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Global settings&#039;&#039;&#039; → &#039;&#039;&#039;Expert settings&#039;&#039;&#039;&lt;br /&gt;
:: [[File:Rx sockets io thread.png|600px]]&lt;br /&gt;
:: Allegro Packets recommends to test with HT enabled and 2 or 4 queue for I/O. If you see a high load on the analyzers, you can also test with 4 queues (I/O threads) without HT for maximum performance.&lt;br /&gt;
&lt;br /&gt;
== Analyzer queues ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; has a packet queue between I/O threads and the analyzer threads which distributes the incoming packets to the actual processing threads. There are two statistics describing the load of the queues and analyzer threads. If analyzer threads cannot process incoming packets quickly enough, the corresponding queue will eventually overflow and packets must be skipped for processing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Graphs for skipped packets: You can check at the &#039;&#039;&#039;Interface stats&#039;&#039;&#039; per interface and check whether all I/O threads were able to push all packets to the analyzer queues or not. The corresponding counter is &#039;&#039;&#039;Not processed due to overload&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Interface analyzer packet drop.png|400px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that high counters for a few seconds at the initial startup of the device are normal when it is started under high network load scenarios.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Utilization of individual analyzer threads: The load of the analyzer threads can be checked at the &#039;&#039;&#039;Info&#039;&#039;&#039; → &#039;&#039;&#039;System info&#039;&#039;&#039; → &#039;&#039;&#039;Load&#039;&#039;&#039;. Depending on the Allegro model, there can be two (Allegro 200, Allegro 500) or up to 120 (Allegro 5300 or 5500) analyzer threads.&lt;br /&gt;
The load graph gives an indication about the overall utilization of each thread but the important counter is the &#039;&#039;&#039;Not processed due to overload&#039;&#039;&#039; counter since this is the event when ultimately one or more packets could not be processed due to overload.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are 3 scenarios where the a queue overload can occur which are described in the following sections:&lt;br /&gt;
&lt;br /&gt;
=== Skipped packets at high analyzer load ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; has reached its processing limit for current traffic when the load of one or multiple analyzers reaches 100%.&lt;br /&gt;
&lt;br /&gt;
There are a some options to reduce the analyzer load but it always comes with the penalty of no longer seeing the entire measurement data. You can &#039;&#039;&#039;disable&#039;&#039;&#039; some features or add a &#039;&#039;&#039;NIC filter&#039;&#039;&#039; to process only parts of the traffic.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You can reduce the level of analysis at &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Global settings&#039;&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Detail of traffic analysis.png|600px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
Every level reduction will reduce the amount of analyzed data and saved database operations, see [[Global_settings#Limit_module_processing]] for more details of this option. It is possible to adjust the setting so that live traffic is stored as fast possible to the ring buffer without further analysis and re-analyze parts of the recorded traffic with full analysis by using [[Parallel packet processing]].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The NIC filter can be used to reduce the amount of monitored traffic. It excludes traffic from the analyzers for the cost of not seeing all traffic of the link. See the [[Filter|interface filter]] for more details.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If none of these options are applicable, you need to upgrade the &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; to a larger model with more performance (Allegro 1000 to 3000 or 3000 to 5000).&lt;br /&gt;
&lt;br /&gt;
=== Skipped packets at low analyzer load ===&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; conserves energy in very low traffic situations. Large packet bursts can lead to a high traffic situation so the analyser threads cannot keep up with the incoming packets fast enough during the period of power adjustment. After that small period of time, the analyzer threads are again fast enough to process the traffic.&lt;br /&gt;
&lt;br /&gt;
This can be identified if packets are not processed while the system load is still not very high at the same time. &lt;br /&gt;
&lt;br /&gt;
If this occurs, the option &#039;&#039;&#039;Analyzer queue overcommit&#039;&#039;&#039; at &#039;&#039;&#039;Settings&#039;&#039;&#039; → &#039;&#039;&#039;Global settings&#039;&#039;&#039; → &#039;&#039;&#039;Expert settings&#039;&#039;&#039; can be enabled. This option can only be used in &#039;&#039;&#039;Sink mode&#039;&#039;&#039; and it increases the queue size to be able to buffer network burts during a short time period. The disadvantage is that the queues are overcommitted so it can happen that the network card does not have enough buffers available for incoming packets.&lt;br /&gt;
&lt;br /&gt;
[[File:Queue overcommit.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Skipped packets due to analyzer load imbalance ===&lt;br /&gt;
&lt;br /&gt;
By default, the Allegro load balances the traffic between the analyzers based on the IP addresses of the client and server. This provides a good balancing in most situations. &lt;br /&gt;
&lt;br /&gt;
Network packets cannot distributed equally among all analyzer threads if there are many connections between only few IP addresses. An example is 2 SIP trunks with many RTP connections.&lt;br /&gt;
&lt;br /&gt;
The load statistics will show parts of the analyzers with a constant high load and others with a significantly lower load.&lt;br /&gt;
&lt;br /&gt;
The load balancing behavior of the &#039;&#039;&#039;Allegro Network Multimeter&#039;&#039;&#039; can be changed to flow-based load balancing mode at &#039;&#039;&#039;Settings&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Global settings&#039;&#039;&#039; → &#039;&#039;&#039;Expert settings&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Flow load balancing.png|600px]]&lt;br /&gt;
&lt;br /&gt;
This mode improves the performance only for imbalanced traffic. Use the option only if required since it has a negative performance impact on balanced traffic.&lt;br /&gt;
&lt;br /&gt;
== Database queues ==&lt;br /&gt;
&lt;br /&gt;
The database mode is an extension for large Allegro models with multiple CPU sockets and it is disabled by default. This mode is only recommended for Allegro 3500 rev1 and Allegro 5500 rev1. The database mode helps to improve the performance for very high database loads. This could happen for millions of open and new connections in combination with NUMA bottlenecks. See [[DB mode]] for more details.&lt;br /&gt;
&lt;br /&gt;
If enabled, you can check if there are message drops between the analyzer threads and the DB threads in the load statistics.&lt;br /&gt;
&lt;br /&gt;
The ratio of DB threads vs analyzer threads can be adjusted so that ideally all threads have similar load.&lt;br /&gt;
&lt;br /&gt;
The advantage of the DB mode is that additional message queues are used which can buffer much more information and therefore reduce the load on the analyzer threads. This will reduce the likelihood of skipped packets.&lt;br /&gt;
&lt;br /&gt;
== Disk I/O queues ==&lt;br /&gt;
&lt;br /&gt;
The analyzer threads have to use additional queues for capturing packets to each disk or each disk cluster. Storage devices like HDDs and SSDs do not offer a constant write rate and have sudden write slowdowns. Please read the performance guide for the ring buffer [[Ring_Buffer_Configuration_Guide#Performance]] on how to adjust the options for high capturing performance.&lt;br /&gt;
&lt;br /&gt;
The two generic solutions are to increase the buffer and to use filter rules. Both will reduce the number of bytes that are written to the disk.&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2793</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2793"/>
		<updated>2020-05-12T14:04:30Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* jquery ( jq ) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; color: red;&amp;quot;&lt;br /&gt;
| Warning: This text is under construction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jq ===&lt;br /&gt;
&lt;br /&gt;
jq ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This exampe shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap extraction ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== IP statistics ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2792</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2792"/>
		<updated>2020-05-12T13:32:28Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* REST API Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; color: red;&amp;quot;&lt;br /&gt;
| Warning: This text is under construction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jquery ( jq ) ===&lt;br /&gt;
&lt;br /&gt;
jquery ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This exampe shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap extraction ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== IP statistics ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2791</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2791"/>
		<updated>2020-05-12T13:31:02Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Pcap parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; color: red;&amp;quot;&lt;br /&gt;
| Warning: This text is under construction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jquery ( jq ) ===&lt;br /&gt;
&lt;br /&gt;
jquery ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This exampe shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap extraction ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC or IP address statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2790</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2790"/>
		<updated>2020-05-12T13:30:43Z</updated>

		<summary type="html">&lt;p&gt;Klaus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; color: red;&amp;quot;&lt;br /&gt;
| Warning: This text is under construction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jquery ( jq ) ===&lt;br /&gt;
&lt;br /&gt;
jquery ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== List queries ===&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
This example shows IP address with the highest amount of traffic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This exampe shows up to 9999 peers of a specific IP address:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap parameters ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC or IP address statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
	<entry>
		<id>https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2789</id>
		<title>REST API description</title>
		<link rel="alternate" type="text/html" href="https://allegro-packets.com/wiki/index.php?title=REST_API_description&amp;diff=2789"/>
		<updated>2020-05-12T13:27:15Z</updated>

		<summary type="html">&lt;p&gt;Klaus: /* Pcap parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; color: red;&amp;quot;&lt;br /&gt;
| Warning: This text is under construction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page describes how to access and use the REST API. It allows to post-process data with 3rd party systems. The Allegro web interface is itself based on this REST API and all displayed statistics can be extracted from the Allegro with this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General API Setup ==&lt;br /&gt;
&lt;br /&gt;
=== REST API Interface ===&lt;br /&gt;
&lt;br /&gt;
All Allegro Network Multimeter statistics are derived from HTTPS requests and provided as JSON objects.&lt;br /&gt;
The requests are stateless, i.e. there are no prerequisites and there is no fixed sequence of requests necessary.&lt;br /&gt;
Example requests related to a specific module and statistics can be seen in the web interface by opening the browser development console (Ctrl+Shift+I for Chrome and Firefox, F12 for Edge).&lt;br /&gt;
&lt;br /&gt;
Here an example of the structured JSON data for the IP overview. This data has been extracted with the Google Chrome developer console while accessing the IP statsistics page.&lt;br /&gt;
&lt;br /&gt;
[[File:Rest api chrome console.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Credentials === &lt;br /&gt;
&lt;br /&gt;
The credentials are the same as for the web interface. The admin user allows to access all APIs. A non-admin user has read access to most of the statistics. If you have enabled the pcap role, the capture URL is also possible for the API.&lt;br /&gt;
&lt;br /&gt;
Allegro recommends to set up a separate non-admin user with or without the pcap role for the REST API of only statistics shall be gathered. This will prevent to accidentally shut down or change any configuration by calling the REST API.&lt;br /&gt;
&lt;br /&gt;
== Useful shell commands and their parameters  ==&lt;br /&gt;
&lt;br /&gt;
=== Curl ===&lt;br /&gt;
&lt;br /&gt;
Most examples are written for curl [https://en.wikipedia.org/wiki/CURL]. Curl is available as for many operating systems like Linux or Windows. Curl needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-u&#039;&#039;&#039; allows you to set a user name and password for the request. &lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-k&#039;&#039;&#039; will allow self-signed certificates.&lt;br /&gt;
&lt;br /&gt;
The parameter &#039;&#039;&#039;-s&#039;&#039;&#039; or &#039;&#039;&#039;--silent&#039;&#039;&#039; mutes any debugging output.&lt;br /&gt;
&lt;br /&gt;
The URL of the API call is the first argument. It is recommended to enclose the API call with the character &#039; to avoid replacing the argument ( unless you need to replace parts of it )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that you might need to use &amp;lt;code&amp;gt;curl.exe&amp;lt;/code&amp;gt; in windows.&lt;br /&gt;
&lt;br /&gt;
=== PowerShell ===&lt;br /&gt;
&lt;br /&gt;
The Integrated Windows PowerShell can be used to access the REST API. This guide requires at least PowerShell v6.&lt;br /&gt;
&lt;br /&gt;
The command to call a REST API is &#039;&#039;&#039;Invoke-RestMethod&#039;&#039;&#039; [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod].&lt;br /&gt;
Invoke-RestMethod on the PowerShell needs a few parameters for the access of the Allegro Network Multimeter:&lt;br /&gt;
&lt;br /&gt;
To set the user name for basic authorization, use the &#039;&#039;&#039;-Headers&#039;&#039;&#039; parameter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to announce that you accept JSON as response with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-ContentType&#039;application/json; charset=utf-8&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
To disable the certificate check, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The URL must be passed with the parameter &#039;&#039;&#039;-Uri&#039;&#039;&#039;, so the full command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/...&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== jquery ( jq ) ===&lt;br /&gt;
&lt;br /&gt;
jquery ( [https://stedolan.github.io/jq/] ) is a powerful tool to extract parameters from a json document. If called without parameters, jq formats the JSON output into a readable format with indenting and new lines. It also allows to select specific values and do basic operations like addition with this values.&lt;br /&gt;
Please read the jq documentation for more information.&lt;br /&gt;
&lt;br /&gt;
== API hierarchy ==&lt;br /&gt;
&lt;br /&gt;
=== Query available URIs with OPTIONS ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has the fixed URI &amp;lt;code&amp;gt;API/stats&amp;lt;/code&amp;gt; for statistics. To see all possible subtrees of a specific request, use the &#039;&#039;&#039;OPTIONS&#039;&#039;&#039; request instead of &#039;&#039;&#039;GET&#039;&#039;&#039;. It can be set with the parameter &amp;lt;code&amp;gt;-X OPTIONS&amp;lt;/code&amp;gt; for curl.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;modules&amp;quot;,&lt;br /&gt;
    &amp;quot;reports&amp;quot;,&lt;br /&gt;
    &amp;quot;incidentReporting&amp;quot;,&lt;br /&gt;
    &amp;quot;time&amp;quot;,&lt;br /&gt;
    &amp;quot;ringBufferReplay&amp;quot;,&lt;br /&gt;
    &amp;quot;pcap&amp;quot;,&lt;br /&gt;
    &amp;quot;reset&amp;quot;,&lt;br /&gt;
    &amp;quot;interfacesError&amp;quot;,&lt;br /&gt;
    &amp;quot;interfaces&amp;quot;,&lt;br /&gt;
    &amp;quot;load&amp;quot;,&lt;br /&gt;
    &amp;quot;processing&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to query for example for all modules that are available for a specific release of the Allegro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;pppoe&amp;quot;,&lt;br /&gt;
    &amp;quot;lldp&amp;quot;,&lt;br /&gt;
    &amp;quot;groups&amp;quot;,&lt;br /&gt;
    &amp;quot;mpls&amp;quot;,&lt;br /&gt;
    &amp;quot;opc_ua&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;,&lt;br /&gt;
    &amp;quot;ipsec&amp;quot;,&lt;br /&gt;
    &amp;quot;profinet&amp;quot;,&lt;br /&gt;
    &amp;quot;multicast&amp;quot;,&lt;br /&gt;
    &amp;quot;burst_analysis&amp;quot;,&lt;br /&gt;
    &amp;quot;global_incidents&amp;quot;,&lt;br /&gt;
    &amp;quot;ptp&amp;quot;,&lt;br /&gt;
    &amp;quot;ntp&amp;quot;,&lt;br /&gt;
    &amp;quot;icmp&amp;quot;,&lt;br /&gt;
    &amp;quot;stp&amp;quot;,&lt;br /&gt;
    &amp;quot;sip&amp;quot;,&lt;br /&gt;
    &amp;quot;smb&amp;quot;,&lt;br /&gt;
    &amp;quot;dpa&amp;quot;,&lt;br /&gt;
    &amp;quot;l4_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;netbios&amp;quot;,&lt;br /&gt;
    &amp;quot;crt&amp;quot;,&lt;br /&gt;
    &amp;quot;dpi&amp;quot;,&lt;br /&gt;
    &amp;quot;http&amp;quot;,&lt;br /&gt;
    &amp;quot;ssl&amp;quot;,&lt;br /&gt;
    &amp;quot;dns&amp;quot;,&lt;br /&gt;
    &amp;quot;dhcp&amp;quot;,&lt;br /&gt;
    &amp;quot;location&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ip&amp;quot;,&lt;br /&gt;
    &amp;quot;mac_protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;vlan&amp;quot;,&lt;br /&gt;
    &amp;quot;arp&amp;quot;,&lt;br /&gt;
    &amp;quot;packet_size&amp;quot;,&lt;br /&gt;
    &amp;quot;mac&amp;quot;,&lt;br /&gt;
    &amp;quot;capture&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== URI content parameters ===&lt;br /&gt;
&lt;br /&gt;
Some modules allow to use a parameter as part of the URI like the IP or Mac address. The path &amp;lt;code&amp;gt;API/stats/modules/ip/ips&amp;lt;/code&amp;gt; allows you to use an IP address as next uri element&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;protocol&amp;quot;,&lt;br /&gt;
    &amp;quot;:ip&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The path of an IP address shows all further available elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &#039;https://allegro-mm/API/stats/modules/ip/ips/10.0.54.254&#039; -X OPTIONS&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;subResources&amp;quot;: [&lt;br /&gt;
    &amp;quot;sip_request_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;peers_ports&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_responses&amp;quot;,&lt;br /&gt;
    &amp;quot;sip_requests&amp;quot;,&lt;br /&gt;
    &amp;quot;qos&amp;quot;,&lt;br /&gt;
    &amp;quot;ports&amp;quot;,&lt;br /&gt;
    &amp;quot;connections&amp;quot;,&lt;br /&gt;
    &amp;quot;protocols&amp;quot;,&lt;br /&gt;
    &amp;quot;macs&amp;quot;,&lt;br /&gt;
    &amp;quot;peers&amp;quot;,&lt;br /&gt;
    &amp;quot;tcpStats&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JSON output traffic counters ==&lt;br /&gt;
&lt;br /&gt;
All counters are aggregated counters, either for the selected time interval or since the processing start of the Allegro. Many traffic counters have 4 separate values. These traffic counters are represented as a JSON array with at least 4 lines. The structure is as follows:&lt;br /&gt;
* line 1: &#039;&#039;&#039;received packets&#039;&#039;&#039;, extraction example: jq .lastSecond[0]&lt;br /&gt;
* line 2: &#039;&#039;&#039;received bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[1]&lt;br /&gt;
* line 3: &#039;&#039;&#039;transmitted packets&#039;&#039;&#039;, extraction example: jq .lastSecond[2]&lt;br /&gt;
* line 4: &#039;&#039;&#039;transmitted bytes&#039;&#039;&#039;, extraction example: jq .lastSecond[3]&lt;br /&gt;
* additional lines are module specific&lt;br /&gt;
&lt;br /&gt;
The following counters exist for many REST APIs like IP, MAC, l4 protocol, l7 protocol and many more:&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;: Values of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
* &#039;&#039;&#039;allTime&#039;&#039;&#039;: Values since start of the Allegro Network Multimeter.&lt;br /&gt;
* &#039;&#039;&#039;lastSecond&#039;&#039;&#039;: Values of the last second.&lt;br /&gt;
* &#039;&#039;&#039;intervalPerSecond&#039;&#039;&#039;: Average per second value of the selected time interval. If no interval is specified, this is similar to lastSecond.&lt;br /&gt;
&lt;br /&gt;
Please note that all counters are byte counters, not bit counters. You need to multiply the counters by 8 to get the bitrate.&lt;br /&gt;
&lt;br /&gt;
This example extracts the received bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq .lastSecond[1]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This example extracts received and transmitted bytes of the last second of a specific IP.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039; | jq &#039;.lastSecond[1] + .lastSecond[3]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== API parameters ==&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API has a number of query parameters that can be added to modify the request. By default, the API will display the real time counters since the last restart of the processing unit.&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address since the processing start of the Allegro. It queries via the REST API the JSON and then adds the values second value  ( row 1, rx bytes ) and 4th value ( row 3, tx bytes ) of the interval counters together. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Time interval selection ===&lt;br /&gt;
&lt;br /&gt;
Requests can be given a time interval. If present, the &#039;&#039;&#039;interval&#039;&#039;&#039; counters are adjusted to this interval.  The following GET parameters are necessary:&lt;br /&gt;
* &#039;&#039;&#039;starttime&#039;&#039;&#039;, &#039;&#039;&#039;endtime&#039;&#039;&#039;: Start and end time of the interval. Format: seconds since 1970/01/01 UTC (Unix time, epoch). You can use &amp;lt;code&amp;gt;date +%s&amp;lt;/code&amp;gt; on your machine to adjust to the best interval. Please consult the man page of date for more parameters.&lt;br /&gt;
* &#039;&#039;&#039;skiphistorydata&#039;&#039;&#039;: shall the JSON include the history data without datasets, this reduces the amount of transferred bytes if datasets are required to render a graph, can be false/true default: false&lt;br /&gt;
* &#039;&#039;&#039;timespan&#039;&#039;&#039;: required resolution for the graph dataset&lt;br /&gt;
&lt;br /&gt;
This example extracts the amount of received and transmitted bytes for an IP address for the last 24 hours.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?starttime=$(date --date=&amp;quot;1 day ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;skiphistorydata=true&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pcap parameters ===&lt;br /&gt;
&lt;br /&gt;
The Allegro Network Multimeter allows to extract the raw packets with the REST API with the special capture URI &amp;lt;code&amp;gt;/API/data/modules/capture&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The available parameters are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;startTime&#039;&#039;&#039;: The start time of the capture. The first packet with exactly this or a later time will start the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If the start time is in the past, make sure you set fromCaptureBuffer parameter accordingly. If not specified, the current time will be used.&lt;br /&gt;
* &#039;&#039;&#039;endTime&#039;&#039;&#039;: The end time of the capture. The first packet with exactly this or a later time will stop the capture. The time format must be microseconds after January, 1st 1970 UTC (Unix time, epoch). If not specified,  unlimited will be used.&lt;br /&gt;
* expression: The filter expression. There are no whitespaces allowed. You may use ‘%20’ instead. See [[Capture module]] for available expressions.&lt;br /&gt;
* snapPacketLength: The maximum size of a packet applied on Layer 2 without frame check sequence. If a packet is larger than this value, it is truncated. Use 65535 for unlimited size.&lt;br /&gt;
* fromCaptureBuffer: Whether to extract data from the packet ring buffer (= true) or just live traffic (= false).&lt;br /&gt;
* captureToMedia: Whether to store a pcap on an external storage device (= true) or download to your computer (= false).&lt;br /&gt;
&lt;br /&gt;
Example to capture everything from now on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm/API/data/modules/capture&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example to capture a specific IP of the last hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &amp;quot;https://allegro-mm/API/data/modules/capture?expression=ip==10.1.2.3&amp;amp;starttime=$(date --date=&amp;quot;1 hour ago&amp;quot; +%s)&amp;amp;endtime=$(date +%s)&amp;amp;fromCaptureBuffer=true&amp;quot; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Link Groups ===&lt;br /&gt;
&lt;br /&gt;
The Allegro REST API allows to access all link groups by the parameter &#039;&#039;&#039;group&#039;&#039;&#039;. The group index starts at zero, which is the default value. If a virtual link group is enabled. &lt;br /&gt;
&lt;br /&gt;
This example extracts the traffic of the IP 10.54.0.254 from the second virtual link group ( index 1 ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl --silent -k -u &#039;admin:allegro&#039;  &amp;quot;https://allegro-mm/API/stats/modules/ip/ips/10.54.0.254?group=1&amp;quot; | jq &#039;.interval[1] + .interval[3]&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parallel pcap analysis ===&lt;br /&gt;
&lt;br /&gt;
The Allegro can process in parallel offline traffic like a pcap file or a ring buffer. In case a parallel PCAP analysis is running, the API call must be given the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: :1&amp;quot;&amp;lt;/code&amp;gt; with the PCAP instance ID.&lt;br /&gt;
&lt;br /&gt;
This allows to extract information of automated pcap uploads.&lt;br /&gt;
&lt;br /&gt;
=== Multi-device analysis ===&lt;br /&gt;
&lt;br /&gt;
If the Allegro is configured as a gateway for multiple Allegro devices by the [[Multi-device settings]], you need to add the additional header field &amp;lt;code&amp;gt;&amp;quot;X-AllegroPackets-Multimeter-ID: hostname&amp;quot;&amp;lt;/code&amp;gt; where the hostname must be the same as configured in the multi-device settings.&lt;br /&gt;
&lt;br /&gt;
== REST API Examples ==&lt;br /&gt;
&lt;br /&gt;
==== MAC or IP address statistics ====&lt;br /&gt;
&lt;br /&gt;
Extract the packets per second statistic of the MAC broadcast address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/mac/macs/ff:ff:ff:ff:ff:ff&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm/API/stats/modules/ip/ips/10.1.2.3&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pretty displaying JSON output with jq ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3&#039; | jq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== List queries ====&lt;br /&gt;
&lt;br /&gt;
List queries are requested with pagination parameters to reduce the size of the resulting JSON objects and to increase performance. In the resulting JSON object, the list elements are stored in the displayedItems array.&lt;br /&gt;
The following list parameters are possible:&lt;br /&gt;
&lt;br /&gt;
* sort: Sorting criteria for the list. Following criterias are supported for most lists:&lt;br /&gt;
** bytes: Received and transmitted bytes (either in selected time interval or since start of the Multimeter).&lt;br /&gt;
** rxbytes: Received bytes.&lt;br /&gt;
** txbytes: Transmitted bytes.&lt;br /&gt;
** bps: Received and transmitted bytes per second (either average per second value of the selected time interval or last second, if no interval is specified).&lt;br /&gt;
** rxbps: Received bytes per second.&lt;br /&gt;
** txbps: Transmitted bytes per second.&lt;br /&gt;
* reverse: Sort ascending (= false) or descending (= true).&lt;br /&gt;
* page: Requested page.&lt;br /&gt;
* count: Amount of entries in the list. Maximum is 100.&lt;br /&gt;
* values: Amount of maximal values in history object(s).&lt;br /&gt;
&lt;br /&gt;
==== Show IP address with the highest amount of traffic ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips_paged?sort=bps&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=1&#039; | jq .displayedItems[0].ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerShell command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;((Invoke-RestMethod -Uri &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips_paged?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=10&amp;amp;timespan=60&amp;amp;values=50&#039; -Headers @{Authorization = (&amp;quot;Basic {0}&amp;quot; -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes((&amp;quot;{0}:{1}&amp;quot; -f &#039;USER&#039;, &#039;PASSWORD&#039;))))} -ContentType&#039;application/json; charset=utf-8&#039; -Method &#039;Get&#039; -SkipCertificateCheck). displayedItems[0]).ip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Show all peers of a specific IP address ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl --silent -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/stats/modules/ip/ips/10.1.2.3/peers?sort=bytes&amp;amp;reverse=true&amp;amp;page=0&amp;amp;count=9999&amp;amp;timespan=60&amp;amp;values=100&#039; | jq &#039;.displayedItems[].ip&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture a specific IP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=ip==10.1.2.3&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Capture two IP addresses with ports on a specific Layer 4 protocol ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;curl -k -u USER:PASSWORD &#039;https://allegro-mm-XXXX/API/data/modules/capture?expression=IP==10.1.2.3:62887 and IP==10.1.2.100:548 and l4Protocol==TCP&#039; &amp;gt; path_to/capture.pcap&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Klaus</name></author>
	</entry>
</feed>