How to: Latency and out-of-sequence measurements using the API
Posted by Tim De Backer, Last modified by Dries Decock on 03 April 2018 02:17 PM
|
|
IntroductionByteBlower allows performing both latency measurements and out-of-sequence detection on a stream of traffic. This guide will show you how to set up such a scenario using the ByteBlower API and how to retrieve and interpret the results. Using the ByteBlower lower-layer APIWe start by setting up a normal frame blasting scenario. For this post, we assume we have created a back-to-back scenario with:
Setting up the TX sideLatency and out-of-sequence measurements work by inserting FrameTags into the network packet. Such tags are applied to a
Then we enable one or more tags on the frame object:
Now every frame sent by the server will contain the enabled tags. The structure of these tags and their position within the frame may depend on the ByteBlower server type and which other tags are enabled. By default, the ByteBlower server will place the tags automatically at an optimal position. For a background post about what actually happens when enabling frame tags and how to configure the tag properties, see XXX. Setting up the RX sideAt the receiving ByteBlower port, we need to add an incoming packet processor.
We add such incoming packet processors to the receiving port.
The receiving side must know what tag to look for and where within the frame it can be found. Note that the receiving port may be located on another server and even on a server of a different type! That is why we always pass the TX frametag information to the RX side in our client script. This will correctly set up the receiving side.
Now we are ready to begin sending the traffic! If the frame tag properties of the transmitting and receiving servers are not compatible, an error will be shown at runtime. Interpreting the resultsAfter the scenario is finished, we can query the incoming packet processors their result values. The structure of this result depends on the type of incoming packet processor. This is done by calling the following methods:
We can just print these counters or process them further, based on our scenario. Using the ByteBlower higher-layer APIFor simple tests, using the higher-layer API simplifies the configuration significantly. Scenario configurationtodo Interpreting the resultstodo | |
|