skip to main content
10.1145/3301326.3301362acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicnccConference Proceedingsconference-collections
research-article

Designing Packetc Programming Language for Reliable Network Apps

Published:14 December 2018Publication History

ABSTRACT

Domain-specific languages for network packet processing applications emphasize representing domain entities, such as packet protocol headers, and emphasize program speed, due to the relentless increase in packet transmission rates. In addition to these concerns, packetC makes app reliability a major aspect of its design, not least because in a single second a silent programming error can send a million packets into oblivion or send sensitive information to inappropriate destinations. Our contributions to constructing a reliable packet processing language are: (1) overhauling C-style structure bitfields to eliminate ambiguity, (2) constraining enumeration variables to guarantee type-safe properties, (3) providing novel reference variables for databases and regex sets and doing so in a way in which they cannot be dereferenced to inappropriate objects, and (4) offering a coercive try/catch exception handling scheme to ensure that system-thrown exceptions are wrapped within a try/catch structure for exception handling. In a broad sense our contribution is making reliability a central design criterion in designing a DSL for packet processing, an application domain in which performance has gotten much more attention.

References

  1. Gannon, J. and Horning, J. 1975. Language design for programming reliability. IEEE Trans. Software Engineering. SE-1, 2 (1975), 179--191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Gannon, J. and Horning, J. (1975). The impact of language design on the production of reliable software. ACM SIGPLAN Notices. 10, 10--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Duncan R. and Jungck P. 2009. packetC language for high performance packet processing. In Proceedings of the 11th IEEE Intl. Conf. High Performance Computing and Communications, (Seoul, South Korea, June 25--27, 2009), 450--457. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Jungck, P., Duncan, R. and Mulcahy, D. 2011. packetC Programming. Apress, New York, NY.Google ScholarGoogle Scholar
  5. Avizienis, A., Laprie, J-C., Randell, B. and Landwehr, C. (2004). Basic concepts and taxonomy of dependable and secure computing. IEEE Trans. Dependable and Secure Computing. 1, 1, (2004) 1--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Musa J. 1999. Software Reliability Engineering. McGraw-Hill, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Musa J., Iannino A. and Okumoto K. 1987, Software Reliability: Measurement, Prediction, Application, McGraw-Hill, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. ISO/IEC 9899:1999. 2005. Standard for the C programming language ("C99," May 2005 version).Google ScholarGoogle Scholar
  9. ANSI X3.159--1989, 1989. Programming language C. ('Std. C').Google ScholarGoogle Scholar
  10. Duncan R., Jungck P., Ross K. and Mulcahy, D. 2012. Reference variables for dynamic, reliable packet operations. In Proceedings of the 9th IFIP Intl. Conf. on Network and Parallel Computing, (Gwangju, South Korea, September 6--8, 2012), 48--60.Google ScholarGoogle ScholarCross RefCross Ref
  11. Duncan R., Jungck, P. and Ross, K. 2010. packetC language and parallel processing of masked databases. In Proceedings of the 39th Intl. Conf. on Parallel Processing, (San Diego, USA, September 13--16, 2010), 472--481. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Duncan, R., Jungck, P., Ross, K. and Tillman, S. 2010. Packet Content matching with packetC searchsets. In Proceedings of the 16th Intl. Conf. on Parallel and Distributed Systems, (Shanghai, China, December 8--10, 2010), 180--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Stroustrup B. 2013. The C++ Programming Language" (Fourth edition), Addison-Wesley, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Intel® 2001. Microengine C Networking Library for the IXP 1200 Network Processor. Intel Corporation, Reference Guide, (December, 2001).Google ScholarGoogle Scholar
  15. George L. and Blume M. 2003. Taming the IXP network processor. In Proceedings of the ACM SIGPLAN '03 Conference on Programming Language Design and Implementation (San Diego, California, USA, June 2003) ACM, 26--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P4 Language Consortium. 2017. P416 Language Specification, version 1.0.0, (May 22, 2017). https://p4.org/p4-spec/docs/P4-16-v1.0.0-spec.pdf, retrieved May 31, 2018.Google ScholarGoogle Scholar

Index Terms

  1. Designing Packetc Programming Language for Reliable Network Apps

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          ICNCC '18: Proceedings of the 2018 VII International Conference on Network, Communication and Computing
          December 2018
          372 pages
          ISBN:9781450365536
          DOI:10.1145/3301326

          Copyright © 2018 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 December 2018

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited
        • Article Metrics

          • Downloads (Last 12 months)0
          • Downloads (Last 6 weeks)0

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader