Abstract
Network packet processing applications increasingly execute at speeds of 1-40 Gigabits per second, often running on multi-core chips that contain multithreaded network processing units (NPUs) and a general-purpose processor core. Such applications are typically programmed in a language that exposes NPU specifics needed to optimize low-level thread control and resource management. This facilitates optimization at the cost of increased software complexity and reduced portability. In contrast, our approach provides portability by combining coarse-grained, SPMD parallelism with programming in the packetC languageās high-level constructs. This paper focuses on searching packet contents for packet protocol headers. We require the host system to locate protocol headers for layers 2, 3 and 4, and to encode their offsets data in a packet information block (PIB). packetC provides descriptors, C-style structures superimposed on the packet array at runtime-calculable, user or PIB-supplied offsets. We deliver state-of-the-practice performance via an FPGA for locating layer offsets and via micro-coded interpretation that treats PIB layer offsets as a special addressing mode.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Duncan, R., Jungck, P.: packetC Language for High Performance Packet Processing. In: Proceedings of the 11th IEEE International Conference on High Performance Computing and Communications, Seoul, South Korea, pp. 450ā457. IEEE, Los Alamitos (June 2009)
ANSI T1.105: SONET - Basic Description including Multiplex Structure, Rates and Formats
ANSI T1.119/ATIS PP 0900119.01.2006: SONET - Operations, Administration, Maintenance, and Provisioning (OAM&P) - Communications
IEEE Std 802.3ae-2002. To be superseded by more recent but not finalized IEEE Std 802.3-2008
CloudShield Technologies. packetC Programming Language Specification. Rev. 1.128 (October 10, 2008)
ISO/IEC 9899:1999. Standard for the C programming language, version (āC99ā) (May 2005)
International Organization for Standardization (ISO) 7498. Open Systems Interconnections (OSI) reference model (1983)
CloudShield Technologies. CS-2000 Technical Specifications. Product datasheet available from CloudShield Technologies, 212 Gibraltar Dr., Sunnyvale, CA, USA 94089 (2006)
IXIA. IXIA 1600T/400T. Datasheet (retrieved 11/29/2009), www.ixiacom.com/pdfs/datasheets/ch_1600t_400t.pdf
George, L., Blume, M.: Taming the IXP network processor. In: Proceedings of the ACM SIGPLAN ā03 Conference on Programming Language Design and Implementation, San Diego, California, USA, pp. 26ā37. ACM, New York (June 2003)
Intel Microengine C Compiler Language Support: Reference Manual. Intel Corporation, order number 278426-004 (August 10, 2001)
Intel Microengine C Networking Library for the IXP1200 Network Processor: Reference Guide. Intel Corporation (December 2001)
Risso, F., Baldi, M.: NetPDL: an extensible XML-based language for packet header description. Computer Networks. The International Journal of Computer and Telecommunications NetworkingĀ 50(5) (2006)
Wagner, J., Leupers, R.: C compiler design for a network processor. IEEE Trans. on CADĀ 20(11), 1ā7 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Duncan, R., Jungck, P., Ross, K. (2010). A Paradigm for Processing Network Protocols in Parallel. In: Hsu, CH., Yang, L.T., Park, J.H., Yeo, SS. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2010. Lecture Notes in Computer Science, vol 6082. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13136-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-13136-3_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13135-6
Online ISBN: 978-3-642-13136-3
eBook Packages: Computer ScienceComputer Science (R0)