TITLE:
High-Level Portable Programming Language for Optimized Memory Use of Network Processors
AUTHORS:
Yasusi Kanada
KEYWORDS:
Network Processors, Portability, High-Level Language, Hardware Independence, Memory Usage, DRAM, SRAM, Network Virtualization
JOURNAL NAME:
Communications and Network,
Vol.7 No.1,
February
16,
2015
ABSTRACT: Network processors (NPs) are widely used
for programmable and high-performance networks; however, the programs for NPs
are less portable, the number of NP program developers is small, and the
development cost is high. To solve these problems, this paper proposes an open,
high-level, and portable programming language called “Phonepl”, which is
independent from vendor-specific proprietary hardware and software but can be
translated into an NP program with high performance especially in the memory
use. A common NP hardware feature is that a whole packet is stored in DRAM, but
the header is cached in SRAM. Phonepl has a hardware-independent abstraction
of this feature so that it allows programmers mostly unconscious of this
hardware feature. To implement the abstraction, four representations of packet
data type that cover all the packet operations (including substring,
concatenation, input, and output) are introduced. Phonepl have been implemented
on Octeon NPs used in plug-ins for a network-virtualization environment called
the VNode Infrastructure, and several packet-handling programs were evaluated.
As for the evaluation result, the conversion throughput is close to the wire
rate, i.e., 10 Gbps, and no packet loss (by cache miss) occurs when the packet
size is 256 bytes or larger.