Receive-side packet processor which calculates latency on the incoming frames, matching a filter. More...
Methods | |
Counters.Clear | |
Clears the current counters and resets them to zero. More... | |
Counters.Get timeunit | |
Returns the current values of the counters. More... | |
Description.Get | |
Returns a textual description of the object. | |
Filter.Get | |
Returns the current installed BPF filter string. More... | |
Filter.Set bpfString | |
Sets a BPF filter on a RX object. More... | |
FrameTag.Default.Set | |
Resets the receive-side frame tag to its server-default settings. | |
FrameTag.Get | |
Returns the FrameTag.Rx object related to this trigger. More... | |
FrameTag.Set transmittedFrameTag | |
Configure the FrameTag.Rx to match the given FrameTag.Tx. More... | |
Parent.Get | |
Returns the parent object. | |
Result.Clear | |
Resets the counter values to zero and empties the Result.History. More... | |
Result.Get | |
Returns the current result counters. More... | |
Result.History.Get | |
Returns the current trigger history counters. More... | |
Receive-side packet processor which calculates latency on the incoming frames, matching a filter.
The basic latency processor extends the basic trigger . It provides additional information like latency and jitter. See Result.Get for more information.
This latency calculation is always active and starts processing frames as soon as it is created. Processing continues until the packet processor is destructed.
The transmit time stamp of a packet is obtained from a time tag in the frame. This tag is configured on the FrameTag.Tx, which can be obtained via Frame::FrameTag.Time.Get.
A basic latency object can be created via a ByteBlowerPort, using ByteBlowerPort::Rx.Latency.Basic.Add
This packet processor processes frames received on the ByteBlower interface where its parent ByteBlowerPort is located.
Receive all frames on "trunk-1-45" of some server, matching UDP source or destination port 49523.
Rx.Latency.Basic::Counters.Clear |
Clears the current counters and resets them to zero.
Rx.Latency.Basic::Counters.Get | timeunit | ||
Returns the current values of the counters.
timeunit | (optional) The time unit used to represent latency times. The default time unit is microseconds. Nanosecond resolution is supported for versions 1.8.22 and beyond (older versions only supported up to microsecond resolution).
us |
This example returns a list of name-value pairs of packet processor counter values.
Returns:
NrOfFrames 20 MinLatency 2733 AvgLatency 3023 MaxLatency 3337 Jitter 190
Rx.Latency.Basic::Filter.Get |
Returns the current installed BPF filter string.
The filter string can be configured using Filter.Set
Suppose we configured the trigger with filter string:
where $ipv4_1
and $ipv4_2
are Layer3.IPv4 objects and $frameSize
is the (layer2) size of the frames (without CRC!). The BPF filter string would then become for example:
Returns:
ip src 10.10.10.2 and ip dst 10.10.10.3 and len = 252
Rx.Latency.Basic::Filter.Set | bpfString | ||
Sets a BPF filter on a RX object.
bpfString | Valid BPF filter string. For creating valid BPF filter strings, please have a look at http://www.tcpdump.org/#documentation for more information. |
ByteBlower.Rx.* | When the {server-side} RX object could not be resolved. |
ByteBlower.Rx.Filter.CompilationFailed | When an invalid BPF filter string is given. |
ByteBlower.InvalidFilter | When an invalid BPF filter string is given. |
This will filter only UDP traffic.
Set the filter on packets that match:
Rx.Latency.Basic::FrameTag.Get |
Returns the FrameTag.Rx object related to this trigger.
Each (transmitted) frame can be enabled to have a time tag and/or an sequence tag inserted into the frame. The FrameTag.Rx object on this trigger can be used to define how that transmitted tag is processed.
The FrameTag.Rx object which is returned by this method represents the current configuration of the frame tag processing. This object can be used to configure the processing of the injected frame tag.
For more detailed information about Frame tagging, you can also take a look at ByteBlower API Knowledgebase: Background: Adding FrameTags to your ByteBlower frame - structure and behaviour
In this example, we will retrieve the FrameTag.Rx object for the frame tag:
Returns:
<FrameTag.Rx object>
Rx.Latency.Basic::FrameTag.Set | transmittedFrameTag | ||
Configure the FrameTag.Rx to match the given FrameTag.Tx.
This method takes a FrameTag.Tx and applies its metrics and format configuration on this trigger's FrameTag.Rx.
The transmitted frame tag (sequence number, time stamp) can be obtained from the Frame (Frame::FrameTag.Sequence.Get, resp. Frame::FrameTag.Time.Get)
transmittedFrameTag | The FrameTag.Tx to obtain the metrics and format configuration from. |
ByteBlower.Server.NotSupported | Unsupported Server Capability: 'Manage TX/RX Frame Tag placement': When a transmitted frame tag with unsupported metrics and/or format is given. |
<tcl_error> | "FrameTag is of incorrect Type": When a transmitted frame tag of invalid type is given (sequence vs. time) |
This example applies the transmitted time tag configuration on the receiver's time tag:
Rx.Latency.Basic::Result.Clear |
Rx.Latency.Basic::Result.Get |
Returns the current result counters.
Returns:
<Rx.Latency.Basic.ResultSnapshot object>
Rx.Latency.Basic::Result.History.Get |
Returns the current trigger history counters.
Returns:
<Rx.Latency.Basic.ResultHistory object>