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