News

OML version 2.7.0

Added by Olivier Mehani 29 days ago

We just released a new version, 2.7.0, of OML. Sources are available for download from the files section.

Highlights of this new version include:
  • liboml2:
    • Output to local file by default if nothing specified
    • Use simplified logging style by default
    • Unify some debug messages between bin and text
    • Implement the flush:// scheme for the file URI
    • Avoid compiler warning with omlc_set_const_string()
  • oml2-scaffold:
    • Use OML_INT32_VALUE by default
    • Exit with an error on unknown types
    • Generate per-MP injector functions
    • Generate .rb app files
    • Fix popt.h generation
    • Fix Makefile generation
    • Handle both :type and "type"
    • Brand new example oml2-scaffold-generated generator
  • manpages:
    • Fix manpage wrt --oml-list-filters
    • Fix server's data-dir option prototype

And plenty of other, smaller, bugfixes and improvements.

Packages for Debian-ish and Red Hat-ish are on their way. The same goes for updated OML applications.

This release 2.7.0 is also the first one to be cloned over to GitHub to ease collaboration. While MyTesbed.net remains the official website and host the code management (particularly, issues), GitHub can be an easier way for some of you to contribute patches and other improvement.

OML version 2.6.1

Added by Max Ott 10 months ago

We added an encoding attribute to the <collect> tag in the XML configuration file which allows an experimenter to select the encoding to use. Currently supported encoding types are binary (default for tcp and udp urls) and text (default for file urls). See source:example/config_two_streams.xml for an example.

We hope to soon release an update to omf-common which will include a new visualisation server which can directly accept OML streams and forward them (using HTML5's web socket) directly to a web browser. Stay tuned.

OML version 2.6

Added by Thierry Rakotoarivelo 11 months ago

We are pleased to announce the release of OML2 version 2.6.

Release date: 2011-06-30.

This release improves the measurement collection system, adds the support of an additional database backend, and strengthens security on the server's side.

The release is available now from our Ubuntu package repository, and in source form from our git repository or from the Files tab.

What's new

  • New output serialization and buffering scheme in the client library to decouple backend processing from application-thread sample injects. This should make measurements have less impact on the main thread. New client lib command line option --oml-bufsize controls the amount of buffer space available in the buffer that sits between the inject thread and the output stage thread.
  • The output encoding is now independent of the output transport. Text encoding can be sent to network, and binary encoding can be sent to local file, as well as the existing options (text->file, binary->network). Encoding is selectable using --oml-text and --oml-binary.
  • PostgreSQL support is now complete and considered to be supported. oml2-server now supports --pg-connect and --pg-user to help configure the connection to the PostgreSQL server.
  • oml2-server and oml2-proxy-server log to stderr when stderr is attached to a tty if --logfile is not used. If --logfile is not used and stderr is NOT attached to a tty, the servers log to their default log file names instead.
  • oml2-server now drops privileges if the --user and/or --group command line options. Privileges are dropped as soon as possible, namely after the socket has been set up (in case the admin wants to run it on a privileged port) and after the log file has been opened.
  • oml2-server now writes databases to a subdirectory of $(localstatedir), which can be configured at compile time using the --localstatedir=DIR option of configure. If the server can't write to that directory, it will abort with an error message in the log. The default is overridden by the OML_SQLITE_DIR environment variable, which is overridden by the --data-dir option (now available as -D as well).

Documentation and Support

OML has an extensive set of UNIX man pages, which are also available online via the Documentation page along with a user manual and numerous tutorials. Please send mail to our mailing list if you have any trouble with this release.

OML version 2.5.2

Added by Jolyon White about 1 year ago

We are pleased to announce the release of OML version 2.5.2.

Release date: 2011-03-17

This release is a bugfix release which fixes Issue #523 and partially fixes #168. Ubuntu packages are now available in our package repository, and a new source tarball is also available in the download section of the OML web site.

Issue #523 caused strings stored in the database to sometimes contain extra junk at the end. Issue #168 addresses SQL string escaping. This patch modifies the SQL statement building code in the oml2-server to put double quote marks around all table and column names. This allows SQL keywords to be used as column names, or spaces in column names, for example. However, this version is still vulnerable to SQL injection.

Please send mail to our mailing list if you have any trouble with this release.

OML version 2.5.1

Added by Jolyon White over 1 year ago

We are pleased to announce the release of OML version 2.5.1.

Release date: 2011-01-29

This release is a bugfix release which fixes Issues #463 and #496. These issues were known to cause server segfaults, so all users should upgrade their oml2-server installations as soon as possible. Ubuntu packages are now available on our package repository, and a new source tarball is also available in the download section of the OML web site.

Please send mail to our mailing list if you have any trouble with this release.

OML version 2.5

Added by Jolyon White over 1 year ago

We are proud to announce the release of OML2 version 2.5!

Release date: 2010-12-20.

This release strengthens the oml2-proxy-server, adds support for BLOBs, and fixes a bug in the oml2-server. The release is available now from our Ubuntu package repository, and in source form from our git repository or from the Files tab.

What's new

  • oml2-proxy-server now supports multiple RESUME->PAUSE->RESUME cycles. Its protocol parser is also enhanced and more robust, as is its threading model and buffering mechanism.
  • oml2-proxy-server can now accept control commands over a socket interface. The new Ubuntu package oml2-proxycon contains a program that provides a convenient command prompt that a remote user can use to send the RESUME and PAUSE commands to a running oml2-proxy-server instance.
  • oml2-server and the client library liboml2 now support a new data type, OML_BLOB_VALUE, for representing long strings of arbitrary binary data. The new type supports BLOBS longer than the 65536 byte restriction on measurement packets imposed by the binary protocol, so the protocol was augmented with support for packets with an unsigned 32-bit integer length field. The new protocol version is backwards compatible with all previous versions.
  • Issue #463 has been fixed. This bug appeared in OML 2.4 and sometimes caused the oml2-server to loose track of its position in the measurement stream and stop processing measurements from the affected client. This seemed to only affect clients trying to do high-rate measurements, for example per-packet measurements of network traces, such as with oml2-trace.

Documentation

OML has an extensive set of UNIX man pages, which are also available online via the Documentation page along with a user manual and numerous tutorials.

OML2 version 2.4

Added by Jolyon White over 1 year ago

We are proud to announce the release of OML2 version 2.4.0!

Release date: 2010-09-08

This release includes several new features and fixes many bugs, and maintains source and binary backwards compatibility with the OML 2.3.x release series.

What's new

  • OML now supports four new integer types:
    • OML_INT32_VALUE
    • OML_UINT32_VALUE
    • OML_INT64_VALUE
    • OML_UINT64_VALUE
The OML_LONG_VALUE is also now deprecated because it changes width between 32-bit and 64-bit x86 platforms. New applications should use one of the four types above for integers. OML_LONG_VALUE will remain supported in OML2; we plan to remove it with the future release of OML3. The behaviour of OML_LONG_VALUE has changed slightly (for the better) on 64-bit platforms. Previously it would result in errors in values transmitted over the binary protocol, which only reserves space for 32 bits for OML_LONG_VALUES. With this release, OML_LONG_VALUES are automatically clamped to [INT_MIN, INT_MAX] by the client library, liboml2, and internally mapped to OML_INT32_VALUE on the server. This should result in greater portability for older applications.
  • We added three new filters:
    • last -- like first, but takes the last sample and throws away the rest;
    • sum -- computes the sum of each sample set; and
    • delta -- computes the change in the input value over the sample set.
Thanks to Olivier Mehani for contributing this code. For more details on these filters, try man liboml2.conf or go here.
  • The OML client and server now have improved checks for the names of applications, measurement points, and measurement point fields. This removes a large class of bugs encountered when trying to parse the network protocol, and in setting up the experiment database on the server. Names must now conform to C identifier rules: they must consist of alphanumeric characters and underscores, and must start with a leading letter or underscore.
  • The SQLite backend now uses transactions, resulting in a significant increase in performance.
  • The OML binary protocol writer (client) and parser (server) have been extensively refactored and should now be much more robust.
  • OML now has a unit test suite for testing critical subsystems, which we run on 32-bit and 64-bit x86 Linux as well as Mac OS X to detect portability issues. If you want to port OML to a different platform, please run the unit test suite ('make check') as a first check for portability problems. We are always interested to hear bug reports and we accept patches via git; send email to our mailing list.
  • We now test oml2-server under Valgrind. This uncovered numerous memory leaks, which we fixed.
  • The oml2-proxy-server has been substantially re-written and should be much more robust and correct.
  • We have found and fixed numerous server segfaults.
  • The server connection handling was reworked to avoid losing measurements at the end of the measurement stream.
  • Various other bugs have been fixed; see our issue tracker
  • The OML Applications have been split off into a separate project and repository. We are releasing a new version of the applications simultaneously that link against this new version of OML.

See the Release Notes for more details of what's new and improved.

Documentation

OML now has a comprehensive set of UNIX man pages for the client API, the servers, and how to run and configure OML applications. They are included in our Ubuntu packages and also available in HTML form; see the "Reference Manual" section under the Documentation wiki page. The main pages are:

  • man 1 liboml2 -- describes how to run OML-enabled applications on the command line (see liboml2(1)).
  • man 3 liboml2 -- a top-level overview of the OML client API for application developers (see liboml2(3)).
  • man 5 liboml2.conf -- a detailed description of the run-time XML configuration file format for configuring measurement streams and filters of OML applications (see liboml2.conf(5)).
  • man 1 oml2-server -- the server daemon man page (see oml2-server(1)).
  • man 1 oml2-proxy-server -- the proxy server man page (see oml2-proxy-server(1)).
  • man 1 oml2_scaffold -- the scaffolding tool for autogenerating the framework of your OML application (see oml2_scaffold(1)).

Packages

Ubuntu packages are now available for OML v2.4.0. Just append the following line to your /etc/apt/sources.list file:

deb http://pkg.mytestbed.net/ubuntu lucid/

Then do apt-get update to get the list of new packages. We have updated the package names to reflect Debian/Ubuntu policies better and to allow multiple major versions of OML to be installed in parallel (e.g. OML2 and OML3). The new package names are:

  • oml2-server -- the server component
  • oml2-proxy-server -- the proxy server
  • liboml2-0 -- the client library
  • liboml2-dev -- the development headers, for application writers. Also includes the oml2_scaffold tool
  • libocomm0 -- an auxiliary library used by all the other components
  • libocomm-dev -- development headers for libocomm.

For more information on installing OML, see the Installation wiki page.

Source

You can also get the source as a tarball in the Files section, or directly from our source control repository. We recently converted OML from Subversion to git. Have a look at the Installing from Git. The command to clone the repository is:

git clone git://mytestbed.net/oml.git

We are currently migrating our servers, so if that command does not work, try this one instead:

git clone git://s1.mytestbed.net/oml.git

OML2 version 2.3

Added by Jolyon White over 2 years ago

Release of version 2.3 of OML2

We are pleased to announce the release of version 2.3 of OML2.

Release date: 2009-09-11.

This release incorporates significant changes to the client, the server, and the bundled applications. Notably:

  • The source (in SVN) is now Autoconfiscated. This simplifies the task of managing the OML2 build system and provides a base for making OML2 portable to other operating systems and architectures in the future.
  • The oml2-server now supports re-starting existing experiments, storing new measurements into an existing experiment database. This permits long running experiments where clients may disconnect and reconnect multiple times, and there may be long periods when no clients are connected. The server tracks re-connecting clients via their node id (i.e. --oml-id command line option on the client applications).
  • The oml2-server now supports a text-based protocol. A ruby client is provided that implements this protocol (SVN only).
  • We spent a significant effort to improve the robustness of the server component, identifying and fixing numerous crashes, buffer overflows and memory leaks.
  • The client library now provides an experimental API for implementing custom filters. This API will be further developed and released as a stable (and documented) API in the next release of OML2. We converted all the built-in filters to use this API, and we created a new 'stddev' filter that computes the standard deviation of its input stream. If you are interested in using this API ahead of its official release, please post a message in the forums.
  • We improved the bundled client applications:
    • The OTG project is now integrated with the OML2 project, see the Debian package 'otg'.
    • All of the installed client applications (except for otg2 and otr2) now follow the naming convention '<app_name>_oml2', which marks them as OML2 client applications.
    • Added Radiotap support in 'trace_oml2'.
    • Added application 'iperf_oml2' -- an OML2-enabled version of iperf.

See the Release Notes for more details of what's new and improved.

Get it now!

The release is available in our Ubuntu repository. Just append the following line to your /etc/apt/sources.list:

deb http://pkg.mytestbed.net/ubuntu karmic/
Package names:
  • oml-server -- server component;
  • liboml -- the client library;
  • liboml-dev -- the development headers (if you want to create new OML2 client applications);
  • oml-client -- the bundled client applications;
  • otg -- the OTG traffic generator and traffic receiver programs;
  • libsigar, libsigar-dev -- for the libsigar-enabled applications in oml-client.

You can also find the source code for this release in the OML SVN repository:

http://omf.mytestbed.net/wiki/oml/Installing_from_Subversion

If you have any questions concerning this new version of OML2, please first refer to the user guide. Do not hesitate to post comment in the OML2 Forums.

Also available in: Atom