The remainder of the paper is structured as
follows. In section II, we characterize NP
architecture as a basis for arguing, and also survey a
number of existing NP software development
support. In section III, we present our approach-
flexible development framework to programming
NPs and show how this improves on existing
approaches. Then, in section IV, we describe the
research and implementation of MPLS VPN
protocol in detail. Finally, in section V we offer our
conclusions.
2 RELATED WORK
2.1 Network Processor Architecture
The challenge in NP design is to provide fast and
flexible processing capabilities that enable a variety
of functions on the data path yet keep the simplicity
of programming similar to that of a General-Purpose
Processor (GPP). The NP system architecture plays
a significant role in this respect: such architectures
are primarily designed according to a serial model
(or pipeline) or a parallel model.
In the parallel model, each thread in an NP core
receives a different packet and executes the entire
data-path code for this packet. In the serial model,
each NP core receives each packet and executes a
different portion of the data-path code in a thread.
From a programming point of view, the serial
model requires that the code be partitioned such that
the work is evenly distributed. In the parallel model,
given that the same code can be performed by any
NP Core and packets are assigned to the next
available thread in any NP Core, the work is
inherently evenly distributed. The Intel IXP
(Matthew etc, 2002) architecture is designed
primarily on a serial model, whereas the IBM
PowerNP (James etc, 2003) is designed on a parallel
model. For realistic, changing traffic mixes, the
serial model would require a dynamic repartitioning
of the code to maintain performance, unlike the
parallel model for which no partitioning takes place.
2.2 Support of NP Software
Development
The provision of software development
environments for different NPs is almost as diverse
as NP hardware architecture.
In terms of proprietary software, we focus on
programming models and development
environments for the IXP1200 and the IBM
PowerNP. Information on the software environments
used by other NPs is unfortunately hard to obtain
without signing non-disclosure agreements.
Intel’s MicroACE (Intel, 2001) is targeted at the
IXP1200 and other Intel IXA products. In this
model, proxy-like software elements (called active
computing elements or ACEs) on the IXP1200’s
StrongARM control processor are ‘mirrored’ by
blocks of code (called microblocks) that run on
microengines. When the programmer loads a
StrongARM element, the corresponding microblock
is transparently loaded onto a microengine as a side
effect. IBM’s NPTool (James etc, 2003) includes
such related toolkits as NPScope ,NPSim, which are
loose coupled.
Turning to research-derived programming
environments, NetBind (Campbell, etc. 2002)
provides the abstraction of a set of packet processing
components that can be bound into a data path.
NetBind goes beyond MicroACE in supporting
flexible composition of microblocks, but it offers no
abstraction over the NP’s interconnects or over
different sorts of processors.
Apart from the work discussed above, additional
research has focused on creating toolsets for specific
NPs such as C compilers, simulators, debuggers and
benchmarkers; some of this work is described in
(Wagner, 2001), (Memik, 2001).
Above work can be classified into two kinds.
The first focuses on making tools more usable,
which has good performance but lack of
development efficiency without efficient integration
of those tools. The other one focus on providing
programming model that promote design portability
and transferable programming skills , which has
good software development view, but would make
performance influenced. We consider that most
emergent problem of current NPs software
development is how to provide a flexible framework
and integrated toolkit to programmers to make
complexity lower, improve the programming
efficiency and shorten time-to-market actually.
RESEARCH AND IMPLEMENTATION OF MPLS VPN PROTOCOL BASED ON NETWORK PROCESSOR
157