Download Abstraction layers enable cross-platform, reusable software for next

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
S
P
E
C
I
A
L
F
E
A
T
U
R
E
LINUX
Abstraction layers enable cross-platform, reusable
software for next-generation networking equipment
By Michael Ward
Developers of network-based devices for
distributed network computing equipment
face many challenges in making their
products interoperate efficiently with
other devices across a network, whether
private or public. Networking technology
is evolving so fast that today’s advanced
networking devices may be obsolete in
a year or even six months. Developers
have to consider this rapid evolution and
plan their products for interoperability,
scalability, and high performance for
today and for the future.
Hardware and OS independence
Today’s networking software needs to be
independent of any specific hardware infrastructure. If you write software specifically
for a fixed configuration ASIC-based product with 24-ports and no system redundancy, you cannot port that software to a
network processor-based product housed in
a AdvancedTCA based chassis with full
hardware level redundancy. You would
have to invest a large block of time in
rewriting major portions of the software.
T
In addition, many companies leverage
multiple embedded operating systems
across a family of products to optimize the
performance/cost requirements for each
point within the product family. Network
vendors are producing low-end products
where costs are kept low by using royaltyfree Linux as the OS, while in the high end
of their product line that requires advanced
functionality they may use a commercial
RTOS such as VxWorks, or perhaps a mix
of VxWorks and Linux. To avoid rewriting
the interface for each product, you need
software that is OS-independent as well as
hardware independent.
The most crucial issue to be faced is the
need for interoperability between all network platforms, regardless of the type of
hardware and operating system used. A
network device vendor should select a set
of system components such as networking
silicon, CPUs, embedded OS, and chassis
and be confident that a system software
architecture can be rapidly integrated and
that they can reuse any previous application developed for a similar system.
There are a number of other important
issues facing system designers. Today’s network devices must support multiple standards including any future standards that
emerge. Network systems must be able to
incorporate new technology as it becomes
available, allowing the vendor to insert its
own value-added functions and accommodate unique customer requirements.
How does a manufacturer produce a system that will work with any other system,
anywhere? One proven approach is to use
a networking software framework that utilizes abstraction to make the system scalable and adaptable not only to any present
or future standard, but to any hardware
device and operating system as well. Such
an approach will allow the system designer to not only leverage the reuse of
internal software development, but also
rapidly incorporate components for other
sources, whether it be open-source or third
party commercial software.
Embedded Linux is a popular choice
among system designers for reasons beyond its royalty-free business model. The
availability of CPU and board support and
the increasing number of engineers who
are familiar with this operating environment are contributing to the Linux popularity. As well, the real-time extensions available through the Linux community and
commercial Linux vendors are bringing
users the same level of robustness that
many commercial RTOSs offer. Development tools offered from the open-source
community and commercial vendors make
Linux a cost effective and productive environment for the cross platform development required by networking vendors.
The solution to hardware and OS independence is to write the system software as
reusable building blocks using a set of
Reprinted from CompactPCI Systems / July-August 2003
abstractions that will detect the hardware
platform specifics and integrate with any
OS. A software architecture with abstraction layers allows you to preserve your
software application development investment as you move across the hardware
technology. This provides a common
interface between applications and other
programs. Since these abstraction interfaces interact primarily with the control
plane elements, there is little to no impact
on the overall system performance imposed by these layers.
For example, software can be designed to
allow all protocol applications to assume
that they are talking to a single network
device. There should be a layer that interprets a forwarding database modification
request and directs it to one or multiple
network forwarding elements (network
processors or ASIC/ASSPs), as appropriate. The forwarding hardware can even be
a different type of networking silicon and
reside in different devices.
By abstracting the control distribution
function, a protocol application writer can
develop complex software without needing to know the specifics of the system
that will use the software.
Network hardware independence can be
achieved by using an abstraction layer
such as LVL7’s FASTPATH Device
Transformation Layer (DTL), to write an
interface between application software and
network hardware. Where multiple networking silicon devices are used, the DTL
resolves the interface to the actual physical
port on a given network hardware device.
Core services such as add route, delete
route, enable port, disable port, get port
stats, and so on are mapped through as
APIs. While the DTL interface addresses
the abstraction between the application
protocol layers and the networking hardware specifics, it does not address platform
hardware issues, which are dealt with
using a system abstraction later.
©Copyright 2003
A system abstraction layer (called SYSAPI in LVL7’s FASTPATH software)
allows you to implement software that
is transparent to the RTOS, CPU, and
physical characteristics of the product
on which it runs. This layer contains the
board support package (BSP) or Linux
Support Package (LSP). Using common
generic interfaces, the higher-level software can access services such as a nonvolatile memory without knowing the
specifics of the hardware.
Common OS services such as task
management, memory management and
semaphores can be mapped through an
RTOS abstraction layer (called OSAPI
in LVL7’s FASTPATH software) so that
applications can be written to the OSAPI
APIs without making direct calls to a specific OS. By providing such an abstraction
layer, one can take advantage of the
numerous commercial and open source
based OSs or utilize an internal OS for
development. It is important to require the
applications to utilize the abstraction calls
and not the underlying OS API calls.
Services of the underlying operating systems’ IP network stack can be mapped
through as if they were OS services. For
example, socket calls can be mapped
through the OSAPI layer. Another option
is to consider the IP stack as a separate
entity and not capture it with the OS
abstraction interfaces.
API independence
Another key means to cross-platform
interoperability is a management system
abstraction layer (called the Unit Stack
Manager Database or USMDB in LVL7’s
FASTPATH software) that allows the user
interfaces to see the specific network ports
as interfaces without having to know the
specifics of where the physical port exists
or what type of port it is. This layer can
route the request to the proper subsystems
without involvement from the user interface.
The management system abstraction layer
provides a single interface between the
software applications and the managing
entities, allowing multiple user interfaces
to control the same underlying set of
application services regardless of the network processors or ASICs below. Every
data object that needs to be managed is
mapped through the management system
layer interface, resulting in the singular set
of access routines. This applies to both
protocol and application data (such as
OSPF interface info and L2 Bridge
entries) as well as any hardware specific
Figure 1
system data (such as port counters and
serial port speed).
gral facilities. Overall FASTPATH architecture is illustrated in Figure 1.
All user interfaces go through a common
set of APIs with the underlying applications, allowing a single set of interfaces
to be written for a function to set or get
configuration parameters or other data.
SNMP, CLI, Web, TL1, and XML all
access the management system interface
to get or set data. This is a huge advantage
over the traditional method of implementation where each management interface
had its own set of access routines to call
down to the application code or hardware
drivers to get information. The traditional
approach resulted in an unsustainable
code base that required an extensive effort
to add or extend a new function due to the
need to replicate essentially the same
effort for each management interface.
Designing the core networking protocols
and services as a part of the architecture
allows future protocols and applications
to be more easily integrated within
the overall system. When designing an
IP Routing subsystem, considering issues
of route leaking between multiple routing
protocols such as OSPF and RIP expose a
number of other issues that if properly
addressed, allow additional routing protocols to be more easily added. By providing a registration mechanism for
the various routing protocols to a single
Route Table Manager, a common point
is established for the distribution for new
route information to whatever routing
protocols or other system components
may require this information. Providing this protocol framework and registration mechanism through an abstract
API allows programmers new to the system to quickly understand how to extend
the software to provide the additional
functionality.
Support for multiple networking
protocol standards
Hardware and OS independence are not
enough, however. Because of the many
broadband communication standards that
already exist, as well as the continuing
emergence of new standards, it is imperative that embedded networking platforms
support multiple protocol standards. The
system software must be able to support
and interoperate with whatever standards
are being used on any given installation on
the network as well as those emerging
standards that will need to be supported
tomorrow. This is achieved by utilizing an
architecture that provides a base set of
protocols and facilities that allow for
enhanced protocols to be implemented
and underlying protocols to serve as inte-
Reprinted from CompactPCI Systems / July-August 2003
As any veteran of the networking industry
knows, the moment a product is shipped
to customers, a new set of protocols and
RFCs emerge that need to be supported by
the device. Many system designers find
that Embedded Linux is an attractive option for the system’s operating system due
to the vast amount of networking protocol
related software that exists within the
Linux and open source community. The
completeness and quality of this software
varies from component to component. In
many cases, this software can provide pro©Copyright 2003
S
P
E
C
duction quality functionality, or at a minimum serves as a viable option to utilize
during an early system prototype.
One aspect that must be considered when
pulling components from various distributions is the level of integration of these
components with one another. While certain higher level network applications
such as Trivial File Transfer Protocol
(TFTP) and Network Time Protocol
(NTP) clients can be treated as separate
applications, there is still a level of integration that is required to provide an
appropriate, unified user interface to the
system. In other cases, such as with Layer
2 Ethernet protocols including Spanning
Tree, 802.3AD Link Aggregation, and
Dynamic VLAN Registration (GVRP),
the protocols must provide a unified management interface as well as be tightly
integrated with one another. In these
cases, the system designer should carefully weigh the overall value of using
these minimally integrated components
available from various distributions versus
using a set of tightly integrated components provided from commercial source.
I
A
L
F
E
A
Flexibility in software maximizes
returns on hardware investments
If the network device vendor utilizes a
software architecture that is open and has
the necessary interfaces and hooks to allow
the addition of value-added functionalities,
the platform becomes attractive for end
manufacturers because it allows them to
add their own value-added features. The
network device vendor can then sell a single core platform to companies that are targeting vastly different markets. For example, one company may target the home
access market, but its device can also be
marketed to companies that focus on the
enterprise by adding multicast routing protocols. Indeed, by making devices configurable, scalable, and flexible via the software, a network device vendor can greatly
expand the markets for a given architecture, as well as reuse the software on future
generations of products. Since much of the
high-level functionality is implemented
through the software, the device can be
built with minimal investment and, with
simple upgrades, serve an extended and
profitable term in the market.
Reprinted from CompactPCI Systems / July-August 2003
T
U
R
E
Michael Ward is
Program Director,
Product Management for the FASTPATH product line
at LVL7 Systems.
Michael holds a
Masters of
Engineering with a concentration in
Computer Engineering from North
Carolina State University and is
currently pursuing an MBA from the
University of North Carolina.
For more information, contact
Michael at:
Michael Ward
LVL7 Systems
100 Perimeter Parkway
Suite H
Morrisville, NC 27560
Tel: 919-865-2707
Fax: 919-865-2703
E-mail: [email protected]
Web site: www.lvl7.com
©Copyright 2003