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 lowlevel thread control and resources. This facilitates optimization at the cost of increased software complexity and reduced portability. In contrast, our approach provides portability by combining coarse-grained parallelism with programming in the packetC® (CloudShield Technologies) language’s high-level constructs. This paper focuses on searching packet contents for packet protocol headers. We require the host system to locate headers for layers 2, 3 and 4, and to encode their offsets 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
R. Duncan and P. Jungck. packetC language for high performance packet processing. In Proceedings of the 11th IEEE Intl. Conf. High Performance Computing and Communications, (Seoul, South Korea), pp. 450–457, June 25–27, 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. May 2005 version. (‘C99’), especially section 6.3.2.3.
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 on 11/29/2009 from www.ixiacom.com/pdfs/datasheets/ch_1600t_400t.pdf..
L. George and M. Blume. Taming the IXP network processor. In Proceedings of the ACM SIGPLAN’ 03 Conference on Programming Language Design and Implementation, San Diego, California, USA, ACM, pp. 26–37, 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.
F. Risso and M. Baldi. NetPDL: an extensible XML-based language for packet header description. In Computer Networks. The International Journal of Computer and Telecommunications Networking, 50(5), 2006.
J. Wagner and R. Leupers: C compiler design for a network processor. IEEE Trans. On CAD, 20(11): 1–7, 2001.
Rights and permissions
Copyright information
© 2011 CloudShield Technologies, Inc. An SAIC Company
About this chapter
Cite this chapter
Duncan, R., Jungck, P., Ross, K. (2011). A Paradigm for Processing Network Protocols in Parallel. In: packetC Programming. Apress. https://doi.org/10.1007/978-1-4302-4159-1_29
Download citation
DOI: https://doi.org/10.1007/978-1-4302-4159-1_29
Publisher Name: Apress
Print ISBN: 978-1-4302-4158-4
Online ISBN: 978-1-4302-4159-1
eBook Packages: Professional and Applied ComputingProfessional and Applied Computing (R0)Apress Access Books