CliMB: Enabling Network Function Composition with Click Middleboxes

Click has significant advantages for middlebox development, including modularity, extensibility, and reprogrammability. Despite these features, Click still has no native TCP support and only uses nonblocking I/O, preventing its applicability to middleboxes that require access to L7 data and blocking I/O. We bridge this gap by introducing Click middleboxes (CliMB). CliMB provides a full-fledged modular TCP layer supporting congestion control, TCP options, both blocking and nonblocking I/O, as well as socket and zero-copy APIs to applications. As a result, any TCP network function may now be realized in Click. As proof of concept, we develop a zero-copy SOCKS proxy server using CliMB that shows up to 4x gains compared to an equivalent implementation using the Linux in-kernel network stack.

[1]  Anat Bremler-Barr,et al.  OpenBox: Enabling Innovation in Middlebox Applications , 2015, HotMiddlebox '15.

[2]  Dongsu Han,et al.  Towards an Open Middlebox Platform for Modular Function Composition , 2014 .

[3]  Roberto Bifulco,et al.  ClickOS and the Art of Network Function Virtualization , 2014, NSDI.

[4]  Scott Shenker,et al.  E2: a framework for NFV applications , 2015, SOSP.

[5]  Vyas Sekar,et al.  The middlebox manifesto: enabling innovation in middlebox deployment , 2011, HotNets-X.

[6]  Sue B. Moon,et al.  NBA (network balancing act): a high-performance packet processing framework for heterogeneous processors , 2015, EuroSys.

[7]  Luigi Rizzo,et al.  netmap: A Novel Framework for Fast Packet I/O , 2012, USENIX ATC.

[8]  Vyas Sekar,et al.  Design and Implementation of a Consolidated Middlebox Architecture , 2012, NSDI.

[9]  K. K. Ramakrishnan,et al.  NetVM: High Performance and Flexible Networking Using Virtualization on Commodity Platforms , 2014, IEEE Transactions on Network and Service Management.

[10]  Amin Vahdat,et al.  xOMB: Extensible Open MiddleBoxes with commodity servers , 2012, 2012 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[11]  Laurent Mathy,et al.  FlowOS: a flow-based platform for middleboxes , 2013, HotMiddlebox '13.

[12]  Nick Feamster,et al.  Programming slick network functions , 2015, SOSR.

[13]  EDDIE KOHLER,et al.  The click modular router , 2000, TOCS.

[14]  Massimo Gallo,et al.  A programmable data plane for heterogeneous NFV platforms , 2016, 2016 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS).

[15]  Vyas Sekar,et al.  Making middleboxes someone else's problem: network processing as a cloud service , 2012, SIGCOMM '12.

[16]  Christoforos E. Kozyrakis,et al.  IX: A Protected Dataplane Operating System for High Throughput and Low Latency , 2014, OSDI.

[17]  Eunyoung Jeong,et al.  mTCP: a Highly Scalable User-level TCP Stack for Multicore Systems , 2014, NSDI.

[18]  Laurent Mathy,et al.  Fast userspace packet processing , 2015, 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[19]  Robert Ricci,et al.  Fast and flexible: Parallel packet processing with GPUs and click , 2013, Architectures for Networking and Communications Systems.

[20]  Mark Handley,et al.  Network stack specialization for performance , 2015, SIGCOMM 2015.

[21]  Anat Bremler-Barr,et al.  OpenBox: A Software-Defined Framework for Developing, Deploying, and Managing Network Functions , 2016, SIGCOMM.