Skip to main content

A Paradigm for Processing Network Protocols in Parallel

  • Chapter
packetC Programming

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. ANSI T1.105: SONET-Basic Description including Multiplex Structure, Rates and Formats.

    Google Scholar 

  3. ANSI T1.119/ATIS PP 0900119.01.2006: SONET-Operations, Administration, Maintenance, and Provisioning (OAM&P)-Communications.

    Google Scholar 

  4. IEEE Std 802.3ae-2002. To be superseded by more recent but not finalized IEEE Std 802.3-2008.

    Google Scholar 

  5. CloudShield Technologies. “packetC Programming Language Specification. Rev. 1.128, October 10, 2008.

    Google Scholar 

  6. ISO/IEC 9899:1999. Standard for the C programming language. May 2005 version. (‘C99’), especially section 6.3.2.3.

    Google Scholar 

  7. International Organization for Standardization (ISO) 7498. Open Systems Interconnections (OSI) reference model, 1983.

    Google Scholar 

  8. CloudShield Technologies. CS-2000 Technical Specifications. Product datasheet available from CloudShield Technologies, 212 Gibraltar Dr., Sunnyvale, CA, USA 94089, 2006.

    Google Scholar 

  9. IXIA.. IXIA 1600T/400T. Datasheet. Retrieved on 11/29/2009 from www.ixiacom.com/pdfs/datasheets/ch_1600t_400t.pdf..

    Google Scholar 

  10. 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.

    Google Scholar 

  11. Intel Microengine C Compiler Language Support: Reference Manual. Intel Corporation, order number 278426-004, August 10, 2001.

    Google Scholar 

  12. Intel Microengine C Networking Library for the IXP1200 Network Processor: Reference Guide. Intel Corporation, December, 2001.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. J. Wagner and R. Leupers: C compiler design for a network processor. IEEE Trans. On CAD, 20(11): 1–7, 2001.

    Google Scholar 

Download references

Authors

Rights and permissions

Reprints 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

Publish with us

Policies and ethics