Skip to main content
Log in

Using Packet Processing Object Modules Interchangeably as Stand-Alone Programs or “Multi-app” Components

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

The basic model for processing packets and routing them from one hardware system to another can be extended to describe virtual packet transmission from one module to another within a single program image. Representing virtual and physical ports interchangeably and embodying their routing relations in runtime data structures makes it possible to produce object modules that can be deployed in a variety of roles without recompilation. We describe a fielded system that combines (a) application virtual ports, (b) a software tool for specifying packet routing to virtual and physical ports, (c) an advanced linker that encapsulates routing actions in runtime tables within a single multi-application image, and (d) a table-driven dispatcher that effects control flow and packet routing. We present results that show performance advantages and demonstrate the usability and security benefits of reconfiguring and redeploying programs in object module form.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  1. Comer, D.: Network Systems Design Using Network Processors, Intel 2xxx Version. Prentice Hall, Upper Saddle River, NJ (2006)

    Google Scholar 

  2. Intel Corporation: Intel Microengine C Compiler Language Support: Reference Manual (Order number 278426-004) (2001)

  3. Applied Micro Circuits Corporation, Inc.: nPsoft Software Development Environment. Product sheet. https://myapm.apm.com/MyAMCC/retrieveDocument/SNP/nPsoft_. Accessed 12 Dec 2012

  4. CloudShield Technologies: CS-2000 System. Product datasheet. http://www.cloudshield.com/platform/CS2000.asp. Accessed 14 Dec 2012

  5. International Business Machine Corporation: IBM BladeCenter PN41. Product datasheet. IBM Systems and Technology Group, Route 100, Somers, New York, USA 10589 (2008)

  6. Jungck, P., Duncan, R., Mulcahy, D.: packetC Programming. Apress, New York, NY (2011)

    Book  Google Scholar 

  7. Duncan, R., Jungck, P., Ross, K., Mulcahy, D.: Reference variables for dynamic, reliable packet operations. In: Proceedings of the 9th IFIP International Conference on Network and Parallel Computing, (Gwangju, South Korea), pp. 48–60 (2012)

  8. Johnson, E.K., Kunze, A.R.: IXP 2400/2800 Programming: The Complete Microengine Coding Guide. Intel Press, Hillsboro, OR (2003)

    Google Scholar 

  9. Duncan, R., Jungck, P., Ross, K.: packetC language and parallel processing of masked databases. In: Proceedings of the 39th International Conference on Parallel Processing, (San Diego), pp. 472–481 (2010)

  10. Duncan, R., Jungck, P., Ross, K., Tillman, S.: Packet content matching with packetC searchsets. In: Proceedings of the 16th International Conference on Parallel and Distributed Systems, (Shanghai, China), pp. 180–188 (2010)

  11. IXIA: XM12 High Performance Chassis: Product Datasheet. http://www.ixiacom.com/pdfs/datasheets/ch_optixia_xm12.pdf (2014). Accessed 28 July 2014

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

    Article  Google Scholar 

  13. 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, CA, USA, ACM, pp. 26–37 (2003)

  14. Vin, H.M., Mudigonda, J., Jason, J., Johnson, E.J., Ju, R., Kunze, A., Lian, R.: A programming environment for packet-processing systems: design considerations. In: Network Processor Design: Issues and Practices, vol. 3, pp. 145–173. Morgan Kaufmann, Burlington, Massachusetts (2004)

  15. Cavium Networks, Inc.: Octeon multi-core processor family. Retrieved December 13, 2012 from http://www.cavium.com/OCTEON_MIPS64.html

  16. Integrated Device Technology, Inc.: IDT strengthens collaboration with AMCC by delivering NSE development kit with AMCC network processor evaluation system. Retrieved December 12, 2012 from http://ir.idt.com/releasedetail.cfm?ReleaseID=414510

  17. Melnick, R., Morris, K.: AMCC nPcore NISC architecture. In: Franklin, M.A., Crowley, P., Hadimioglu, H., Onufryk, P.Z. (eds.) Network Processor Design: Issues and Practices, vol. 2, pp. 327–342. Morgan Kaufmann, Burlington, Massachusetts (2003)

  18. Yamagiwa, S., Sousa, L.: Modelling and programming stream-based distributed computing based on the meta-pipeline approach. Int. J. Parallel Emerg. Distrib. Syst. 24(4), 311–330 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  19. Wikipedia: GStreamer, http://en.wikipedia.org/wiki/Gstreamer. Accessed 26 April 2012

  20. Beynon, M., Ferreira, R., Kure, T., Sussman, A., Saltz, J.: DataCutter: middleware for filtering very large scientific datasets on archival storage systems. In: Proceedings of the Eighth Goddard Conference on Mass Storage Systems and Technologies/17th IEEE Symposium on Mass Storage Systems, National Aeronautics and Space Administration, NASA/CP 2000-209888, pp. 119–133 (2000)

Download references

Acknowledgments

Peder Jungck, Matt White and Dwight Mulcahy developed the basics of the multi-application approach. Key implementers included Matt White, Dwight Mulcahy, Minh Nguyen, Mary Pham and Jim Frandeen. Ralph Duncan, Peder Jungck and Dwight Mulcahy designed the packetC language. Ken Ross created and timed the applications used in this paper. Kareem Khan contributed key insights to the paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ralph Duncan.

Additional information

Ixia is a trademark of Ixia in the United States and/or other countries. NetLogic is a trademark of NetLogic Microsystems, Inc. in the United States and/or other countries. Xilinx and Virtex are trademarks of Xilinx Inc. in the United States and/or other countries. VMWare is a registered trademark of VMWare, Inc. vSphere is a trademark of VMWare, Inc. ESX is a trademark of VMWare, Inc.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Duncan, R., Jungck, P., Ross, K. et al. Using Packet Processing Object Modules Interchangeably as Stand-Alone Programs or “Multi-app” Components. Int J Parallel Prog 44, 26–45 (2016). https://doi.org/10.1007/s10766-014-0332-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-014-0332-7

Keywords

Navigation