ByteBlower Tcl API 2.3
Posted by Tom Ghyselinck, Last modified by Tom Ghyselinck on 02 June 2016 02:33 PM

This release of the Tcl API brings some exiting new features!


Multiple VLANs can be added to:

  • transmit and receive frames
  • and on our protocol stack.

The implementation conforms 802.11ad specs.

Please take a look at our update example script vlan/ipv4.

Frame Field Modifiers

When using ByteBlower Server version >= 2.3.0, you will be able to add conent modifiers on frame. The first content modifiers are the frame field modifiers. You can modify a certain field in the frame with either incrementing or random values.

Please take a look at our new example script back2back/framefieldmodifier.

Extended information can be found in our documentation.

Configurable result history

It is now possible to change the duration of the sampling interval and the sampling buffer length.

This allows the user to either obtain very fine-grained history or a more "averaged" result of your traffic history.

Please take a look at the methods on the ResultHistory objects:

  • Sampling.Interval.Duration.Set: Configures the duration of a sampling interval. All snapshots will be aligned to the new interval duration.
  • Sampling.BufferLength.Set: Configures the maximum number of snapshots maintained at the server.

and the methods on the ResultData and ResultSnapshot objects:

  • Interval.Duration.Get: Returns the actual interval duration of a result snapshot.

You can find the details on how the server and client manage the history buffer in our API documentation.

Backwards compatibility

The changes between to API 1.x and 2.x are significant. We won't provide the details of every change here but focus on the major ideas and changes. More info can be found in the documentation of the API.

The 2.x API supports ByteBlower server versions >= 2.1.0. Older versions of the server are no longer supported.

We preserved backwards compatibility at API level as much as possible. Many users will be able to just run the existing code using the new API. If this is not the cases, minor changes might be needed. If you don't succeed doing so, please don't hesitate to contact us for support.

Known issues

  • Unimplemented protocols
    • Real-time Transport Protocol (RTP)
    • Real-time Transport Control Protocol (RTCP)
    • Port Control Protocol (PCP)
  • Unavailable features
    • USB interfaces

Changelog 2.3.0

New features

  • Add support for Q-inQ
    • Updated Tcl-HL example scripts
  • Add support for Frame Field Modifiers
    • Including new Tcl-HL example script
  • Allow the user to configure the result history metrics
  • x86 support has been dropped for Mac OS X


  • ExecuteScenario frame specification now has extra options to enable auto-correction L3/L4 checksum and L3/L4 length.
  • ExecuteScenario frame specification now has the option to specify the size modifier (since the size modifier moved from stream to the frame since API/server version 2.1.0).
  • The tcp ack-suppression example now uses information from the protocol stack instead of TX capture (which was not possible on 2x00, 3100 and 4100 series servers).
  • Added call to get current server timestamp (ByteBlowerServer::TimestampGet).
  • Result history snapshots and history data objects now contain info about the actual interval duration.
    • Revised and cleaned up generation of flat-list of history snapshots.
  • Fixed some consistency in the API:
    • Added missing result objects for ICMP and ICMPv6 protocol (via Layer3.IcmpEchoSession::Result.Get, resp. Layer3.Icmpv6EchoSession::Result.Get).
    • Layer3.IcmpEchoSession::DestinationIp.Get and Layer3.IcmpEchoSession::DestinationIp.Set have been renamed to Layer3.IcmpEchoSession::Remote.Address.Get, resp. Layer3.IcmpEchoSession::Remote.Address.Set.
      • Idem for Layer3.Icmpv6EchoSession.
      • The old method names are kept for backward-compatibility.
  • Enhanced documentation on several places.


  • Telnet client was not destructible.
  • Telnet client did not check for valid remote port range.
  • Fixes in documentation since move of size modifiers from stream to frame.
  • FrameSizeModifier.Result::Timestamp.Get always returned 0.
  • Fixed issues on 32-bit Tcl for back2back/multi-refresh example script.


ByteBlower API 2.3 is no longer available for download. Please contact our support desk of you think you need this specific version.

(0 vote(s))
Not helpful

Comments (0)

We to help you!