PacketC Language and Parallel Processing of Masked Databases

R. Duncan, P. Jungck, Kenneth Ross
{"title":"PacketC Language and Parallel Processing of Masked Databases","authors":"R. Duncan, P. Jungck, Kenneth Ross","doi":"10.1109/ICPP.2010.55","DOIUrl":null,"url":null,"abstract":"Network packet processing’s increasing speeds and volume create an incentive to use parallel processing. Such processing often involves comparing selected packet data to the contents of large tables (e.g., for routing packets or controlling system access). Thus, commercial systems often use multiple network processors [1] to provide parallel processing in general and use associative memory chips to provide parallel table operations in particular. Parallel network programming is usually done in a C dialect with machine-specific extensions. The associative memory capabilities are often provided by ternary content addressable memory (TCAM) chips in order to supply the fast, masking-based searches needed in this domain. TCAM use is normally controlled by vendor software, rather than by the application developer. Thus, an application is typically restricted to a small number of predefined templates and mediated by vendor system software. Thus, application developers cannot use high-level languages to express network table operations in an intuitive, portable way, nor exploit parallel devices like TCAMs in a flexible manner. This paper presents CloudShield's packetC® language [2], a C dialect that hides most host-machine specifics, supports coarse-grain parallelism and supplies high-level data type and operator extensions for packet processing. We describe packetC’s database and record constructs that support network application table operations, including masked matching. We show how our implementation of packetC with network processors, FPGAs and TCAMs lets the user enjoy parallel performance benefits without the usual vendor constraints or reliance on hardware-specific programming.","PeriodicalId":180554,"journal":{"name":"2010 39th International Conference on Parallel Processing","volume":"26 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2010-09-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2010 39th International Conference on Parallel Processing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICPP.2010.55","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

Network packet processing’s increasing speeds and volume create an incentive to use parallel processing. Such processing often involves comparing selected packet data to the contents of large tables (e.g., for routing packets or controlling system access). Thus, commercial systems often use multiple network processors [1] to provide parallel processing in general and use associative memory chips to provide parallel table operations in particular. Parallel network programming is usually done in a C dialect with machine-specific extensions. The associative memory capabilities are often provided by ternary content addressable memory (TCAM) chips in order to supply the fast, masking-based searches needed in this domain. TCAM use is normally controlled by vendor software, rather than by the application developer. Thus, an application is typically restricted to a small number of predefined templates and mediated by vendor system software. Thus, application developers cannot use high-level languages to express network table operations in an intuitive, portable way, nor exploit parallel devices like TCAMs in a flexible manner. This paper presents CloudShield's packetC® language [2], a C dialect that hides most host-machine specifics, supports coarse-grain parallelism and supplies high-level data type and operator extensions for packet processing. We describe packetC’s database and record constructs that support network application table operations, including masked matching. We show how our implementation of packetC with network processors, FPGAs and TCAMs lets the user enjoy parallel performance benefits without the usual vendor constraints or reliance on hardware-specific programming.
PacketC语言与掩码数据库并行处理
网络数据包处理的速度和容量的增加促使人们使用并行处理。这种处理通常涉及将选定的数据包数据与大型表的内容进行比较(例如,用于路由数据包或控制系统访问)。因此,商业系统通常使用多个网络处理器[1]来提供并行处理,特别是使用关联存储芯片来提供并行表操作。并行网络编程通常使用带有特定于机器的扩展的C方言完成。联想存储器功能通常由三元内容可寻址存储器(TCAM)芯片提供,以便提供该领域所需的快速、基于掩码的搜索。TCAM的使用通常由供应商软件控制,而不是由应用程序开发人员控制。因此,应用程序通常被限制在少量预定义模板中,并由供应商系统软件进行调节。因此,应用程序开发人员不能使用高级语言以直观的、可移植的方式表达网络表操作,也不能以灵活的方式利用tcam等并行设备。本文介绍了CloudShield的packetC®语言[2],这是一种隐藏了大多数主机细节的C方言,支持粗粒度并行性,并为数据包处理提供高级数据类型和操作符扩展。我们描述了packetC的数据库和记录结构,这些结构支持网络应用程序表操作,包括掩码匹配。我们展示了使用网络处理器、fpga和tcam实现的packetC如何让用户在不受通常的供应商限制或依赖于特定硬件编程的情况下享受并行性能优势。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信