MARBEN Diameter v3.0 release

This release of the Diameter Signaling C++ Stack introduces new Diameter interfaces and applications, as well as new features such as relay and redirect agent and life cycle control.

This section presents what's new in Marben C++ Diameter release 3.0 with regards to the MARBEN C++ Diameter v2.0 release.
Next release is MARBEN C++ Diameter v4.0.

This release introduces new Diameter interfaces, relay agent, redirect agent and life cycle control.
MARBEN DiamX C++ Stack v3.0 Components Overview

New Diameter Interface

MARBEN Diameter v3.0 adds support for the TISPAN e4 interface based on Diameter.

  • TISPAN e4 enables IP-connectivity related session data to be exchanged between the NASS and the Resource and Admission Control Subsystem (RACS).

    MARBEN Diameter implements the e4 interface as per ETSI ES 283.034 v1.2.0 - May 2007.

With the addition of the e4 TISPAN interface, MARBEN Diameter completes its support the convergence of wireline networks towards IMS.

The design of this new MARBEN Diameter APIs is identical to the design of the existing APIs, i.e.:

  • Listener, provider and message factory which follow JAIN model for JAVA
  • Application, session and message factory for C++
  • Each of them has a dictionary for describing its own set of command and AVP which can be extended by application programmers to suit particular need.

This APIs come with sample code of both client and server for quick and easy getting started on the API.

Relay and redirect functions

  1. Relay

    The relay function implements the routing algorithms specified in RFC3588.

    The relay role is enabled at start-up thanks to the routing table configuration (no recompilation required). It is possible to have the relay role working alone or working with other Diameter applications. In the latter case, the relay application captures the messages targeted at application not supported locally.

    Although sharing the same application ID, relay and redirect functions are independent, that is an agent can do relay only or redirect only or both.

    Using the relay function does not require any development from the user. The relay function is made active by the provisioning of routing tables which is a configuration action.

  2. Redirect

    The stack implements the server side and client side of redirect processing. The server side computes the host(s) to redirect the request to.

    The client side handles the answer of the redirect agent i.e.: sends the redirected request to the appropriate host so that it is transparent to the Diameter application that initially sent the redirected request, updates the local routing according to redirect answer, processes subsequent requests taking into account redirect answer.

    The redirect role is enabled at start-up thanks to the routing table configuration (no recompilation required). It is possible to have the redirect role working alone or working with other Diameter applications. In the latter case, the redirect application will capture the messages targeted at application not supported locally.

    Although sharing the same application ID, relay and redirect roles shall be independent, that is an agent can do relay only or redirect only or both.

    The use of the redirect function does not require any development from the user. Setting up redirect occurs by provisioning of the redirection tables which is a configuration action.

Life Cycle control

In previous releases, the stack started its activity at core stack objects creation and stopped when the core stack objects were deleted.

The MARBEN Diameter v3.0 release has been modified to give the stack user a fine grain control over the stack initialization, start and stop. A management API has been introduced to enable the stack user to control the stack life cycle (boot, initi, start, stop, ...) at two levels:

  • Stack level, to control the whole stack, that is Diameter base protocol and all Diameter application on top of it.
  • Application level, to allow start/stop of each Diameter application running on top of the base protocol.

The stack life cycle management function enables the stack user to:

  • Have full control and synchronise start/stop of the Diameter stack and applications with other part/components of his software.
  • More easily synchronize with Diameter nodes in the network.

This is particularly beneficial in HA environments or J2EE based application servers.

The stack life cycle management function in v3.0 is fully compatible with the mode of operation of the previous v2.0 release. Software developed on MARBEN Diameter v2.0 can be migrated unmodified to v3.0, but won't benefit from the new features.

  1. Stack level

    At stack level, the life cycle management API is composed by the following methods:

    • Start of the Stack

      The stack offers a method to start its processing. The start method marks the moment when the stack begins to process network traffic as well as its local user applications requests. Before being started, the stack only accepts management or configuration requests.

      The stack establishes/accepts connections to peers only after the start.

      It is possible to start (restart) a stack that has been stopped.

    • Stop of the Stack

      The stack offers a method to stop its processing. Stopping the stack is immediate, that is, all pending requests are interrupted (after sending termination notifications).

      Once stopped, the stack does not process any network traffic nor user application requests. It only accepts management or configuration requests.

    • Graceful Stop of the Stack

      The stack offers a method to stop its processing gracefully, that is without disturbing the on going traffic. Once graceful stop is invoked, the stack refuses to process new network traffic, and request from local user applications other than those involved in on going session. Any request that would imply the creation of a diameter session is refused.

      Once stopped, the stack does not process any network traffic nor user application requests. It only accepts management or configuration requests.

    • Shutdown of the Stack

      The stack offers a method to shutdown. Shutdown means release of all environment resources the stack may use and attachments may have set up. Shutdown can only occur on a stopped stack.

      This is aimed at allowing Diameter to be unloaded/reloaded in SLEE environments that would allow it.

  2. Application level

    This new MARBEN Diameter release provides a new API allowing the user to control the application operation inside the stack, i.e. its initialization, start and stop.

    The application level, the life cycle management API is composed of three methods:

    • Start of the Application
    • Stop of the Application
    • Graceful Stop of the Application

    These methods provide same features as those described at stack level, but apply to an Application only.