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.

Highlights

  • To enable programmability for networking and in-network processing, especially for new network-layer pro-How to cite this paper: Kanada, Y. (2015) High-Level Portable Programming Language for Optimized Memory Use of Network Processors

  • Extended versions of C can usually be used for developing network processors (NPs) programs, essential libraries depend on vendor-specific proprietary hardware and software, and proprietary rights on NP programs are protected by non-disclosure agreements (NDAs) preventing programs and documents concerning an NP being ported

  • The packet headers must be stored in static random-access memory (SRAM) but the packet tails can be stored in dynamic random-access memory (DRAM) as described in the introduction and in the previous section

Read more

Summary

Introduction

To enable programmability for networking and in-network processing, especially for new network-layer pro-How to cite this paper: Kanada, Y. (2015) High-Level Portable Programming Language for Optimized Memory Use of Network Processors. (2015) High-Level Portable Programming Language for Optimized Memory Use of Network Processors. NPs, which were developed for software-based high-performance networking solutions, make it possible to quickly develop arbitrary protocol and functions in the case of hardware-based solutions as well. Because low-level languages that are similar to assembly languages must be used for developing NP programs, the programs are not portable. The second problem is high development cost and that the availability of NP program developers is limited. The third problem is restriction on publishing developed programs, papers, and documents concerning an NP. This is a serious problem for network researchers

Methods
Results
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.