Overview and Portability
Metaswitch's network software products run within a portable operating environment
called the N-BASE. N-BASE, which has been shipping with our products since
1991, provides many benefits to developers including
- straightforward and rapid integration
- flexible integration options
- diagnostic capabilities
- a framework for creating highly available architectures.
The following is a summary of N-BASE benefits.
- Straightforward and rapid integration. All of Metaswitch's network
software products are pre-ported with the leading Operating Systems including Linux, LynxOS,
OSE, QNX, Solaris, UNIX, VxWorks and Windows. These pre-ports, which are fully supported
by our customer service engineers, dramatically reduce integration effort and time.
Furthermore, the integration required for the management and data planes are well
documented with open and back compatible APIs which require no changes to the core
stack. Reference applications of these common ports are available to further reduce
integration effort.
- Flexible integration options. For those developments where there
is a need for further customization, the N-BASE provides your developers with the
options that can maximize system performance and comply with modular system architectures.
For example, Metaswitch's portable software may run under different scheduling models
without change. These include single or multi-threaded tasks, symmetric or asymmetric
multi-processors and distribution of function over multiple processors and operating
system instances. For more information on N-BASE please see the Overview
of N-BASE.
- Creating a comprehensive testing and diagnostic environment. The
N-BASE provides development services that help us (and our customers) test every
aspect of the code and enable you and your customers to collect complete diagnostics
with ease.
- Delivering resilience and high availability. N-BASE's modularity
is designed to easily integrate and augment the high availability architectures
developed by our customers. N-BASE, coupled with our
High Availability Framework, enables systems to be implemented without a
single point of failure, thereby allowing 5 or 6 nines availability to be achieved.
Overview Of The N-BASE
The previous section provided an overview of the benefits of N-BASE. This section
provides a description of the functions that deliver these benefits.
Typical Operating System Environments
The N-BASE is common to all Metaswitch's network software products (including packet
and optical MPLS, IP routing, MGCP/Megaco/H.248, SIP, SBC, ATM and SNA) and has
been ported to many software and hardware environments, including Chorus, Integrity,
Linux, LynxOS, Nucleus, OSE©, pSOS©, QNX, Solaris / SunOS, UNIX©,
VxWorks / VxWorks / Tornado©, Windows, and proprietary OSes.
Metaswitch provides a pre-ported version of the N-BASE for a number of these environments,
including Linux, LynxOS, OSE, QNX, Solaris, UNIX, VxWorks and Windows. This list
is regularly being updated, so please contact Metaswitch for up to date information.
For other systems, we provide a sample version of the N-BASE, which is straightforward
to port to virtually any operating system.
Messaging And Scheduling
- Clean architecture. All of Metaswitch's network softare products are
broken down into distinct components that can be run in distinct memory address
spaces. A single OS 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, tasks or 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 macros 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 architecture supports static memory allocation as well as mapping
N-BASE buffers directly onto native operating system buffers, even if they are fragmented.
- Reliable. The sample N-BASE includes extensive memory diagnostics
to detect overwriting, leaks, and access to memory or buffers after they have been
freed. These can optionally be built in (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. It can also be used
to replay messages to reproduce problems off-line. Please see
Diagnostics for more details.
Testbed
- By re-vectoring all interactions between Metaswitch's network software products
and the underlying operating environment, 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 testbed is typically combined with other diagnostic tools such as memory verification
to help ensure that the code Data Connection delivers is of the highest quality.
For more information, email us at
.