ByteBlower Tcl API 2.2
Posted by Tom Ghyselinck, Last modified by Tom Ghyselinck on 19 October 2016 03:58 PM

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

The larger part of changes will speed up test initialization and reporting.

Asynchronous protocol initialization

ARP, DHCP and DHCPv6 can now be initiated asynchronously. This allows the user to send out the requests in parallel and process the results afterwards.

This is especially good news for large scale tests!

Result History and batch refresh

The batch functionality supports simultaneous refresh of multiple result objects (History, snapshot of Rx.Trigger.Basic, Rx.Latency.Basic, Rx.OutOfSequence, etc.). This decreases the client-server network load, but even more it allows for shorter test scripts and much shorter test time!

Please take a look at our new example script back2back/multi-refresh.

Result History now has two additional methods on interval and cumulative results:

  1. GetByTime (Cumulative.GetByTime and Interval.GetByTime): Search the history results for a snapshot with the given timestamp.
  2. Latest.Get (Cumulative.Latest.Get and Interval.Latest.Get): Returns the latest closed snapshot. See documentation for more information.

Both of these methods will avoid the need in tests scripts for error-prone loops looking for a specific snapshot.

Added Rx.Capture.ResultSnapshot::Frames.GetByIndex <index>. This avoids the need to obtain the complete list of captures to get a single captured frame. This also improves test script speeds a lot when processing large captures.

Telnet support

This version of the ByteBlower API brings back the support for the Telnet client which was delayed from the 2.0 release.

In conjunction with ByteBlower server version >= 2.2.0, you will now be able to telnet to your devices again!

TCP Congestion Avoidance

This version supports the new CUBIC congestion avoidance algorithm extension which is introduced in server version 2.2.0.

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.2.4

  • Add exceptions: BadIPv4Address and BadIPv6Address (used by Telnet).
  • Fixed some incorrect exceptions
  • Fixed inconsistencies in DHCP and DHCPv6 Protocol
    • Renamed Layer5.Dhcp::ReleaseEnable to Layer5.Dhcp::Release.Enable
    • Added missing Layer5.Dhcp::Release.IsEnabled and Layer5.Dhcpv6::Release.IsEnabled
    • Added missing Release and Release.Enable methods in Layer5.Dhcpv6 (requires server version >= 2.2.4)
  • Added missing calls Rx.Latency.Basic.ResultData::Timestamp.First.Get and Rx.Latency.Basic.ResultData::Timestamp.Last.Get
  • Fixed possible division by zero when calculating data rates

Changelog 2.2.2

  • Added static call wrapper "ByteBlower Results.Refresh $args" (avoids the need for "[ ByteBlower Instance.Get ] Results.Refresh $args"
  • Result snapshot and result history objects now throw exceptions consistently
    when values would be returned which have no meaning (at the moment).
    E.g. "minimum/maximum frame size" have no meaning when packet count is zero.
  • Fixed compiler issues related exception handling on Mac OS X
  • Fixed several small issues with ByteBlowerPort history counters.

Changelog 2.2.0

  • Re-enabled Telnet support (Requires ByteBlower server version >= 2.2.0).
  • ARP, DHCP and DHCPv6 can now be initiated in parallel.
  • Added batch support for result history.
  • Added GetByTime and Latest.Get methods on history cumulative and interval results.
  • Added Rx.Capture.ResultSnapshot::Frames.GetByIndex <index>.
  • Updated documentation related to the realtime results (i.e. history and snapshots) and TCP.
  • Fixed some issues in installer regarding existing installations.
  • Fixed issue when ByteBlowerPort results are unavailable.
  • Fixed incorrect Clear of ByteBlowerPort (history).
  • Fixed incorrect values in ByteBlowerPort (history) counters.
  • Destructing Rx.Capture now really destroys the capture at server side.
  • Fixed Refreshtimestamp.Get on result history object.
  • Fixed issue in ByteBlowerHL ExecuteScenario which stopped.
    the ports too late after waiting for incoming packets.
  • Fixed issue where Rx.Capture.RawPacket failed to retreive new frames.
  • Add new example scripts:
    • back2back/multi-refresh
  • Updated example script to the new architecture
    • random_traffic
    • back2back/icmp_frame_blasting
    • back2back/multi-port
    • back2back/multiserver
  • Update examples with new and more efficient method calls:
    • random_traffic
    • tcp-ack-suppression
    • back2back/icmp_frame_blasting
    • back2back/multi-port
    • back2back/multiserver
    • back2back/tcp
    • back2back/tcpv6
    • tcp/multisession
    • tcp/time-based
    • tcp/with-mtu
    • http/uri-capture
    • vlan/tcp
    • igmp/querier
    • mld/with-traffic


ByteBlower API 2.2 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!