Agent: reflect - Installation and Usage
  • 08 May 2023
  • 6 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Agent: reflect - Installation and Usage

  • Dark
    Light
  • PDF

Article Summary

This article provides information on how to use the standalone, unmanaged reflector agent software application

Introduction


The Skylight agent: reflect is a small foot-print, user-space application and is used for network performance monitoring in the Skylight solution. The reflector is used in co-operation with a Skylight sensor agent: actuate or sensor control, which sets up one or more bidirectional measurement streams towards the reflector (uplink direction) and the reflector will “reflect” the measurement packets back to the originator (downlink direction). Moreover, all measurement analysis is performed by the sender, the reflector does not keep any result information, nor analysis the reflected packets.
The agent reflect is designed to only use one (1) UDP port (or RAW socket in case of Ethernet OAM), but to provide multiple (8) stateful reflector instances. Each reflector instance implements the functionality to serve one (1) bidirectional measurement stream.
If more than 8 stateful instances are required, multiple reflectors can be started up on different UDP ports as desired.
The current version of the reflector supports the following bidirectional measurement functions

Mode / functionsocket typeinstance detectiondescription
TWAMP light statefulUDP🗸RFC-5357 with session detection
TWAMP light statelessUDPn/aRFC-5357 without session detection
* 2xOneWayUDP🗸Accedian proprietary L3
* EchoUDPn/aRFC-862
* ETH-OAM LBRAWn/a802.1ag / Y.1731
* ETH-OAM DMRAWn/a802.1ag / Y.1731
* ETH-OAM SLMRAW🗸802.1ag / Y.1731
* ETH-OAM VSRAW🗸Accedian proprietary L2

Items marked with * are to be considered experimental, but may be fully supported fully in an upcoming release

Hosting system requirements


The Skylight sensor agent: reflect can be installed in virtually any Linux environment as a user space application. For best accuracy the agent should be run on the "metal" operating system, and not inside a virtual machine - unless the performance of the virtualization is of interrest to the monitoring use case.

Minimum Requirements – Typical PM Accuracy of ~500us on percentile 95
Operating system: Linux 2.6 or later 64bit
CPU requirements: 300MHz
Memory requirements: 1MB free RAM
Disk requirements: 0.5MB free disk space

Recommended Requirements – Typical PM Accuracy of ~50us on percentile 95
Operating system: Linux 3.0 or later 64bit
CPU requirements: 1Ghz – Agent process prioritized with "nice" command
Memory requirements: 1MB free RAM
Disk requirements: 0.5MB free disk space

Agent reflect configuration


General

The reflector is configured when it is started through command-line options and the configuration cannot be changed in runtime.
See below for more information about available command line options.

Need more reflection instances?

You may run more than one agent reflect process on a system, limited only by system resources such as number of allowed UDP sockets, or number of running processes. To set up two TWAMP responders on different ports simply launch two agent reflect listening on different UDP ports.

Operation Mode

Configure mode of operation by altering the configuration attribute -M=’mode’. ’mode’ can be one of: 2xoneway, twamp, echo or ethoam.
Note: The reflector must be started by root/superuser when running in Ethernet OAM mode to be able to open the raw packet socket.

Local UDP Port

Alter the configuration attribute -L =’portnumber’ to change the local UDP port, the default port is 5000. This attribute is only used when running in 2xoneway, twamp or echo mode.

Timestamping

Use the configuration attribute -T to enable timestamping. Timestamping must be enabled to take advantage of the feature to measure one-way delay for uplink and downlink directions. See also Chapter 7. If the hosting platform runs on a very small or loaded CPU it may be necessary to disable the timestamping in the reflector and rely on roundtrip measurements only.

Stateless TWAMP

Use the configuration attribute -Z to run without reflector instances, i.e. stateless. This attribute is only used when running in twamp mode.
Note: It will not be possible to separate packet statistics (i.e. loss, reorder, etc) for each direction (uplink and downlink) if the reflector is running in stateless mode.

Interfaces

Alter the configuration attribute -I={ifname} to configure the reflector to only accept packet from one specific interface (interface binding). Default is to accept packets from all interfaces. This attribute is only used when running in 2xoneway, twamp or echo mode.

Support for IPv6

Set the configuration attribute -6 to enable support for IPv6. The reflector will handle both IPv4 and IPv6 if IPv6 is enabled. This attribute is only used when running in 2xoneway, twamp or echo mode.

Maintenance Entity Groups (MEG) Level

Configure the MEG level by configuring the attribute -m={num}. The default is to accept all MEG levels, i.e. -m=all. This attribute is only used when running in ethoam mode.

Maintenance Endpoints (MEP) ID

Configure the MEP identifier by configuring the attribute -n=. The default is MEP identifier is 1. This attribute is only used for ETH-SLM when running in ethoam mode.

Agent reflect installation


To access the installation archive for agent reflect, contact your local sales representative or technical support.

The agent reflect is provided as a linux precompiled binary app in a tar.bz2 file, and as such has no formal installation package. Extract the archive and copy the reflector agent to the desired location, for example /usr/bin/ and then either start it manually, or add a line in a startup script to automatically start it at system reboot.

tar xvf skylight-agent-reflect-amd64_21.12_27.tar.bz2
sudo cp agent-reflect /usr/bin/
sudo /usr/bin/agent-reflect –<see previous section for startup options>

    Note that using sudo to start the agent-reflect is only required for ETH-OAM (layer-2) reflectors

Sample line for typical /etc/rc.local startup script, enabling a TWAMP responder on interface eth0, UDP port 6000 with timestamping enabled.

. #appended at the end of file /etc/rc.local
.
#Start reflector-agent on port 6000
/usr/bin/agent-reflect –M=twamp –T –L=6000 –I=eth0
.
.

Stopping the reflector

To stop the reflector process, use “grep” to find its PID, then use kill command to stop it.

ps ax | grep reflect

sudo kill -9 <PID of REFLECTOR>

Or, if pkill command is available

sudo pkill agent-reflect

Command line options reference

Start the reflector with the -h or -? command line option to display a concise command line help topic

2xOneWay Options

-M=2xoneway Run in 2xOneWay mode (default)
-T Timestamp packets (default off)
-f Do _not_ fork
-S Respond to PTScan requests (default off)
-6 Enable IPv6 (and IPv4)
-s=<ipsrc> Accept packets only from this IP source (default ’all’). See also ’-R’
-R=<port> UDP source port filtering (default ’any’), Used together with ’-s’
-r Enable REUSEADDR on socket
-I=<ifname> Use ’interface’ MAC address (default eth0)
-L=<port> Local UDP port (default 5000)

TWAMP Options

-M=twamp Run in TWAMP mode
-T Timestamp packets (default off)
-f Do _not_ fork
-6 Enable IPv6 (and IPv4)
-s=<ipsrc> Accept packets only from this IP source (default ’all’). See also ’-R’
-R=<port> UDP source port filtering (default ’any’), Used together with ’-s’
-r Enable REUSEADDR on socket
-I=<ifname>|all Bind to ’interface’ (default is all interfaces)
-L=<port> Local UDP port (default 5000)
-z Run stateless, i.e. no reflector instances (default off).

ECHO Options

-M=echo Run in ECHO mode
-f Do _not_ fork
-6 Enable IPv6 (and IPv4)
-s=<ipsrc> Accept packets only from this IP source (default ’all’). See also ’-R’
-R=<port> UDP source port filtering (default ’any’), Used together with ’-s’
-r Enable REUSEADDR on socket
-I=<ifname>|all Bind to ’interface’ (default is all interfaces)
-L=<port> Local UDP port (default 5000)

Ethernet OAM Options

-M=ethoam Run in Ethernet OAM mode
-T Timestamp packets (default off)
-f Do _not_ fork
-I=<ifname> Bind to ’interface’ (default eth0)
-m=<mel>|all MEG Level (mel) 0..7 (default is all)
-n=<mepid> MEP Id 1..8192 (used for ETH-SLM)

Examples

Start reflector in 2xOneWay mode using UDP port 6000:

> agent-reflect -M=2xoneway -L=6000

Start reflector in 2xOneWay mode using UDP port 6000 and support for IPv6:

> agent-reflect -M=2xoneway -L=6000 -6

Start reflector in TWAMP mode using UDP port 7000, bind to eth0 and let the reflector timestamp measurement packets:

> agent-reflect -M=twamp -L=7000 -I=eth0 -T

Start reflector in Ethernet OAM mode using MEG Level 3:

> agent-reflect -M=ethoam -m=3

© 2024 Accedian Networks Inc. All rights reserved. Accedian®, Accedian Networks®,  the Accedian logo™, Skylight™, Skylight Interceptor™ and per-packet intel™, are trademarks or registered trademarks of Accedian Networks Inc. To view a list of Accedian trademarks visit: http://accedian.com/legal/trademarks/. 


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.