News
OML version 2.7.0
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_VALUEby 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
- Use
- manpages:
- Fix manpage wrt
--oml-list-filters - Fix server's data-dir option prototype
- Fix manpage wrt
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
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
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
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
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
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-servernow 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-servercan now accept control commands over a socket interface. The new Ubuntu packageoml2-proxyconcontains a program that provides a convenient command prompt that a remote user can use to send the RESUME and PAUSE commands to a runningoml2-proxy-serverinstance.oml2-serverand the client libraryliboml2now 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-serverto 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 withoml2-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
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
- 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.
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 componentoml2-proxy-server-- the proxy serverliboml2-0-- the client libraryliboml2-dev-- the development headers, for application writers. Also includes theoml2_scaffoldtoollibocomm0-- an auxiliary library used by all the other componentslibocomm-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
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