Skip Navigation LinksHome > Products > N-BASE > Portability

Portability

The N-BASE dramatically reduces porting effort and time.

All of Metaswitch's network software products (including packet and optical MPLS, IP routing, MGCP/Megaco/H.248, SIP, Diameter, Session Border Controller (SBC), ATM and SNA) are written to the N-BASE APIs, and only ever access operating system resources via the N-BASE APIs. This means that the task of porting the products to a new operating system environment is essentially just porting the N-BASE.

Metaswitch provides pre-ported versions of the N-BASE for the more common operating systems, including Linux, LynxOS, OSE, QNX, Solaris, UNIX, VxWorks and Windows. These pre-ported versions are fully supported by our support engineers.

The N-BASE has also been ported to many other software and hardware environments, including Integrity, Nucleus, and proprietary operating systems. For environments where we do not support a pre-ported N-BASE, it is still possible to use an appropriate pre-ported N-BASE version as a model. Our customers have used this approach to port our network software products to almost every operating system and hardware platform available.

The following diagram illustrates some of the key features of the N-BASE framework.

N-BASE portable network protocols architecture diagram

Messaging And Scheduling

  • Clean architecture. All of Metaswitch's network software products are implemented as distinct components that can be run in distinct memory address spaces. A single operating system task will typically include multiple components, and in such cases, message passing between components reduces to a simple function call with a pointer to a block of memory for maximum efficiency.
  • Core protocol code stays intact. The N-BASE messaging paradigm allows distribution of components over multiple threads, multiple tasks, multiple cores or multiple processors without altering the core protocol code. This also provides customers with the flexibility to provide a messaging mechanism of their choice, without affecting the core code.

Memory Management

  • Flexible. The N-BASE uses separate utilities for memory management (typically used for local data storage) and buffer management (typically used for sending messages to other N-BASE components). These provide flexibility in mapping onto underlying system resources.
  • Simple. It is straightforward to customize either the memory or buffer allocation code to use different schemes simply by re-vectoring the N-BASE macros. The N-BASE supports static memory allocation as well as mapping N-BASE buffers directly onto native operating system buffers, even if they are fragmented.
  • Reliable. The N-BASE includes extensive memory verification tools to detect overwriting, leaks, and access to memory or buffers after they have been freed. These can optionally be enabled (for example, during initial integration) to speed up customer development.

Problem Determination

  • Message tracing is a hugely powerful tool that records every message exchange between N-BASE components. This can be analyzed off-line using the IPS Trace Tool to produce a graphical view of the data flow, with the ability to zoom on any message to get an interpreted breakdown of every field value in a message. IPS Trace can also be used to replay messages to reproduce problems off-line. Please see Diagnostics for more details.

Utilities

  • The N-BASE provides a rich set of utilities optimized for Metaswitch's network software products. For example there are N-BASE utilities for managing and searching data structures such as

    • hash tables
    • AVL, AVLL and AVL3 trees - asynchronous binary trees of different types with different occupancy trade-offs
    • Patricia trees (also known as radix tries/trees, Patricia tries, or crit bit tries/trees)
    • dictionaries
    • doubly linked lists
    • arrays.

Testbed

  • By re-vectoring all interactions between N-BASE components, Metaswitch has developed an extensive Testbed that minutely controls scheduling, timers and error returns from all OS and environment events. Metaswitch uses this intensively during development, and each night as part of an extensive regression test tool.
  • The N-BASE Testbed is typically combined with other diagnostic tools such as N-BASE memory verification to help ensure that the code Metaswitch delivers is of the highest quality.


More Information

For more information about the N-BASE and Metaswitch's network software products and expertise contact .