Capabilities
Overview
ByteBlower uses “capabilities” to indicate whether or not features are supported.
A use case for these is adapting a test or script to use ByteBlower features when supported, but ignore parts of the script when the ByteBlower Endpoint runs on a system that does not support this feature.
e.g. Skip the IPv6 flows when the Endpoint device does not support IPv6.
Capabilities can have 3 different data types:
boolean: A feature is either supported or not
numberic: A feature can be limited in use. e.g. a ByteBlower Endpoint can only have 1 frame defined in a stream, whilst a ByteBlower Port can have an unlimited number of frames defined in a stream.
text: Everything else that cannot be expressed as a boolean or numeric value
- Combine.L4Checksum.TxTimestamp
Indicates when the ByteBlower server supports TCP/UDP checksum correction whilst inserting latency timestamp injection.
- Http.Request.Duration
Indicates whether the HTTP Client supports duration based HTTP sessions.
New in version 2.0.0.
Changed in version 2.22.0: This capability was introduced.
- Http.Request.Size
Indicates whether the HTTP Client supports size based HTTP sessions.
New in version 2.0.0.
Changed in version 2.22.0: This capability was introduced.
Changed in version 2.22.0: The ByteBlower Endpoint added support for size based HTTP sessions
- Http.Request.Uri
Indicates whether the HTTP Client supports URL based HTTP sessions.
New in version 2.0.0.
Changed in version 2.22.0: This capability was introduced.
Note
The ByteBlower Endpoint application does not support this feature.
- IPv4
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support traffic emulation over the Layer3 IPv4 protocol.
- IPv6
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support traffic emulation over the Layer3 IPv6 protocol.
On a ByteBlower Endpoint this capability can be disabled when e.g. the operating system does not have any IPv6 support.
- Monitor.NetworkInfo
Indicates whether the ByteBlower Endpoint supports monitoring the Network Interfaces for changes in statistics.
E.g.
Wi-Fi RSSI
IPv4 addresses
Link speed
New in version 2.11.0.
- PacketDump
Indicates whether the ByteBlower server supports the PacketDump feature.
byteblowerll.byteblower.PacketDump
is a feature allowing the user to capture bi-directional traffic on a ByteBlower Interface.New in version 2.9.0.
- Rx.Latency.Basic
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support basic processing latency measurement timestamps from received frames.
Basic processing is calculating some basic statistics such as
Average Latency
Minimum Latency
Maximum Latency
Jitter
Changed in version 2.6.0: ByteBlower Endpoint gained support for this.
- Rx.Latency.Distribution
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support latency histogram measurements based on latency measurement timestamps from received frames.
Next to latency histograms, this trigger also includes the basic latency measurements.
Changed in version 2.13.0: ByteBlower Endpoint support for Latency Distribution triggers.
- Rx.Latency.Distribution.OverTime
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support latency histogram measurements with results split per snapshot interval.
New in version 2.20.0: ByteBlower support for Latency Distribution results over time.
- Rx.OutOfSequence.Basic
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support processing of incoming sequence numbers to detect packet reordering or real-time loss.
New in version 2.21.0: ByteBlower server support for real-time loss detection
- Scenario.LiveResultUpdates
Indicates whether or not a ByteBlower Endpoint can report the intermediate results back to the MeetingPoint during a test.
New in version 2.21.0.
- Scenario.Stop
Indicates whether or not a ByteBlower Endpoint supports stopping a running scenario through the ByteBlower API / ByteBlower GUI.
New in version 2.19.0.
- Tcp.L4S
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support L4S measurements using TCP sessions.
The ByteBlower Server and ByteBlower Endpoint on Linux support both Accurate ECN and a TCP Prague implementation.
The ByteBlower Endpoint on macOS only supports Accurate ECN.
New in version 2.22.0.
- Tcp.Restart
Indicates whether or not the ByteBlower Endpoint can be configured to automatically restart HTTP sessions which were interrupted.
New in version 2.10.0.
- Tx.Latency
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support inserting latency measurement timestamps into transmitted frames.
- Tx.OutOfSequence
Indicates whether or not the ByteBlower Port or ByteBlower Endpoint support inserting sequence numbers into transmitted frames.
The feature is usually used in combination with a OutOfSequence trigger to detect packet reordering or real-time loss with the ByteBlower Port
Note
The ByteBlower Endpoint does not support this feature.
- Vlan.Stacking
Indicates how many VLAN headers can be stacked on a given ByteBlower Port.
Note
ByteBlower Endpoint does not support dynamic VLAN configurations, and this value will always be 0.
New in version 2.3.0.
- Unknown
The ByteBlower API installation does not know this capability yet. This usually means that the ByteBlower API should be updated in order to use the new ByteBlower features
Using the Capabilities
from byteblowerll import byteblower as api
instance = api.ByteBlower.InstanceGet()
meetingpoint = instance.MeetingPointAdd('10.10.1.202')
for endpoint in meetingpoint.DeviceListGet():
given_name = endpoint.DeviceInfoGet().GivenNameGet()
print(f"Endpoint: {given_name}" )
for capability in endpoint.CapabilityListGet():
print(f" - {capability.NameGet()}: {capability.ValueGet().DescriptionGet()")
import pytest
from byteblowerll import byteblower as api
instance = api.ByteBlower.InstanceGet()
def test_l4s():
instance = api.ByteBlower.InstanceGet()
server = instance.ServerAdd('10.10.1.202')
port = server.PortCreate('trunk-1-1')
if port.CapabilityIsSupported('Tcp.L4S'):
pytest.skip("This ByteBlower installation does not support L4S. "
"Please update the API and/or ByteBlower Server")
# ... do test.