, Est-ce que notre mécanisme de mise en cache des extensions est ecace ?

, Comment Oko se situe en terme de performance par rapport aux autres approches d'extension du commutateur logiciel ?

, Les évaluations sont réalisées sur deux serveurs directement connectés. La conguration du serveur qui exécute le commutateur logiciel est détaillée en Section 3.5.1. Les évaluations suivent deux scénarios : un premier scénario très simple pour lequel Open vSwitch atteint les meilleures performances et un second scénario plus réaliste qui constitue un pire cas

, Nous observons par contre une légère dégradation, sous le scénario simple, lorsque le premier niveau de cache est désactivé (Figure 3.4a). Cette dégradation peut s'expliquer par le fait que, sous ce scénario, Open vSwitch a très peu de traitements à eectuer pour chaque paquet, Nous montrons tout d'abord que, sous le scénario réaliste, les performances d

, Nous évaluons ensuite le coût de longue chaînes de programmes BPF dans le cache

, Avec 10 programmes chaînés, nous observons une forte dégradation des performances, de l'ordre de -44%. Cette dégradation est en accord avec une expérimentation proche mené pour

. Softflow, , vol.80

. Néanmoins, sans les chaînes de programmes, les performances seraient moins bonnes (voir Slowpath sur la Figure 3.6)

. Enn, nous comparons le débit atteint par Oko pour nos trois programmes exemples avec les mêmes programmes s'exécutant dans (i) un processus séparé ayant une mémoire partagée avec le commutateur ; (ii) une machine virtuelle. Oko obtient un débit de traitement deux à trois fois supérieur à celui des machines virtuelles et 1.71.9 fois supérieur à celui du processus séparé

, Nous résumons maintenant notre seconde contribution, permettant la délocalisation de traitements réseaux clients vers les machines hôtes de l'informatique en nuage

, ab -Apache HTTP server benchmarking tool

V. Addanki, Controlling software router resource sharing by fair packet dropping, Proc. IFIP Networking, 2018.
URL : https://hal.archives-ouvertes.fr/hal-02288031

F. Anhalt and P. Primet, Analysis and evaluation of a XEN based virtual router
URL : https://hal.archives-ouvertes.fr/inria-00320620

. Inria, , 2008.

J. , Language-independent sandboxing of just-in-time compilation and self-modifying code, Proc

A. Sigplan-pldi, , 2011.

B. Anwer, A slick control plane for network middleboxes, Proc

. Acm-sigcomm-hotsdn, , 2013.

, API-aware networking and security using BPF and XDP, 2015.

M. Armbrust, A View of Cloud Computing, Commun. ACM, 2010.

J. Aumasson and D. J. Bernstein, SipHash: a fast short-input PRF, International Conference on Cryptology in India, 2012.

F. Baboescu and G. Varghese,

, Scalable Packet Classication, Proc. ACM SIGCOMM, 2001.

G. Banga, P. Druschel, and J. C. Mogul, Resource containers: A new facility for resource management in server systems, Proc. USENIX OSDI, 1999.

T. Barbette, C. Soldani, and L. Mathy, Fast userspace packet processing, Proc. IEEE ANCS, 2015.

P. Barham, Xen and the art of virtualization, Proc. ACM SOSP, 2003.

A. Belay, IX: A protected dataplane operating system for high throughput and low latency, Proc. USENIX OSDI, 2014.

B. N. Bershad, Extensibility, safety, and performance in the SPIN operating system, Proc. ACM SOSP, 1995.

G. Bertin, Introducing the p0f BPF compiler, 2016.

M. Bertrone, Accelerating Linux security with eBPF iptables, Proc. ACM SIGCOMM Posters and Demos, 2018.

, BESS: Berkeley extensible software switch

Z. Bloom, Cloud computing without containers, 2018.

D. Borkmann, net: add bplter, 2018.

P. Bosshart, Forwarding Metamorphosis: Fast programmable match-action processing in hardware for SDN, Proc. ACM SIGCOMM, 2013.

P. Bosshart, P4: Programming protocol-independent packet processors, ACM SIGCOMM Comput. Commun. Rev, 2014.

L. Braun, Comparing and improving current packet capturing solutions based on commodity hardware, Proc. ACM IMC, 2010.

A. Bremler-barr, Y. Harchol, and D. Hay, OpenBox: A software-dened framework for developing, deploying, and managing network functions, Proc. ACM SIGCOMM, 2016.

B. M. Cantrill, M. W. Shapiro, and A. H. , Dynamic instrumentation of production systems, Proc. USENIX ATC, 2004.

A. Cardigliano, Towards wire-speed network monitoring using virtual machines, Proc. ACM IMC, 2011.

M. Casado, Rethinking packet forwarding hardware, Proc. ACM HotNets, 2008.

P. Chaignon, Extending Open vSwitch with stateful lters, Proc. ACM SOSR, 2018.

J. S. Chase, A. J. Gallatin, and K. G. Yocum, End system optimizations for high-speed TCP, Comm. Mag, 2001.

B. Chen and R. Morris, Flexible control of parallelism in a multiprocessor PC router, Proc. USENIX ATC, 2001.

J. Corbet, BPF: The universal in-kernel virtual machine, 2014.

J. Corbet, Linux and TCP ooad engines, 2005.

P. Cousot and R. Cousot, Abstract Interpretation: A unied lattice model for static analysis of programs by construction or approximation of xpoints, Proc. ACM SIGPLAN POPL, 1977.

M. Dalton, Andromeda: Performance, isolation, and velocity at scale in cloud network virtualization, USENIX NSDI, 2018.

B. Davie and J. Gross, A stateless transport tunneling protocol for network virtualization (STT), 2012.

B. Davie, A database approach to SDN control plane design, SIGCOMM Comput, 2017.

M. Dobrescu, Exploiting parallelism to scale software routers, Proc. ACM SOSP, 2009.

. Dpdk, , 2011.

D. Drake and J. Berg, Unaligned Memory Access -Kernel.org, 2008.

P. Druschel and G. Banga, Lazy receiver processing (LRP): A network subsystem architecture for server systems, Proc. USENIX OSDI, 1996.

D. E. Eisenbud, Maglev: A fast and reliable software network load balancer, Proc. USENIX NSDI, 2016.

P. Emmerich, A scriptable high-speed packet generator, Proc. ACM IMC, 2015.

, ENA poll mode driver -Documentation -DPDK

, ENIC poll mode driverDocumentation -DPDK

Ú. Erlingsson, XFI: Software guards for system address spaces, Proc. USENIX OSDI, 2006.

J. Fastabend and J. Wang, bpf, bounded loop support work in progress, 2018.

E. L. Fernandes,

S. Finucane, DPDK vHost User ports, 2019.

D. Firestone, VFP: A virtual switch platform for host SDN in the public cloud, Proc. USENIX NSDI, 2017.

D. Firestone, H. Katebi, and G. Varghese, Virtual switch packet classication

D. Firestone, Azure accelerated networking: SmartNICs in the public cloud, Proc. USENIX NSDI, 2018.

, Open Networking Foundation

, OpenFlow Switch Specication Version 1.3.1 (Wire Protocol 0x04), 2012.

M. Gallo and R. Laufer, ClickNF: A modular stack for custom network functions, Proc. USENIX ATC, 2018.

S. Garzarella, G. Lettieri, and L. Rizzo, Virtual device passthrough for high speed VM networking, Proc

. Acm/ieee-ancs, , 2015.

A. Gember-jacobson, Enabling innovation in network function control, Proc. ACM SIGCOMM, 2014.

G. P. Georgios and P. Katsikas, Metron: NFV service chains at the true speed of the underlying hardware, USENIX NSDI, 2018.

E. Gershuni, Simple and precise static analysis of untrusted Linux kernel extensions, Proc. ACM SIGPLAN PLDI, 2019.

M. Ghasemi, T. Benson, and J. Rexford, Dapper: Data plane performance diagnosis of TCP, Proc. ACM SOSR, 2017.

G. Gibb, Design principles for packet parsers, Proc. ACM/IEEE ANCS, 2013.

. Google, libFuzzer -a library for coverage-guided fuzz testing, 2014.

. Google, syzkaller: an unsupervised, coverage-guided kernel fuzzer, 2015.

B. Gregg, Linux 4.X tracing tools: Using BPF superpowers, USENIX LISA, 2016.

J. Gross, The Rise of Soft Switching, 2011.

D. Gupta, Enforcing performance isolation across virtual machines in Xen, Proc. ACM/IFIP/USENIX Middleware, 2006.

P. Gupta and N. Mckeown, Packet classication on multiple elds, Proc. ACM SIGCOMM, 1999.

A. Haas, Bringing the web up to speed with WebAssembly, Proc

A. Sigplan-pldi, , 2017.

J. Hamilton, AWS Nitro system, 2019.

S. Han, SoftNIC: A software NIC to augment hardware

T. Herbert, UDP encapsulation in Linux, 2015.

P. Hickey, Announcing Lucet: Fastly's native WebAssembly compiler and runtime, 2019.

T. Høiland-jørgensen, The eXpress Data Path: Fast programmable packet processing in the operating system kernel, Proc. ACM CoNEXT, 2018.

M. Honda, mSwitch: A highly-scalable, modular software switch, Proc. ACM SOSR, 2015.

R. Huggahalli, R. Iyer, and S. Tetrick, Direct cache access for high bandwidth network I/O, Proc

A. Isca, , 2005.

J. Hwang, K. K. Ramakrishnan, and T. Wood, NetVM: High performance and exible networking using virtualization on commodity platforms, Proc. USENIX NSDI, 2014.

, Jupyter Networks Inc. Contrail Virtual Router. url: https

, Pica8 Inc. Pica8 XorPlus

. Intel, How to set up Intel Ethernet Flow Director, 2017.

. Intel, Intel VMDq technology overview, 2008.

. Intel, . Pci-sig-sr-iov, and . Primer, , 2011.

E. J. Jackson, SoftFlow: A middlebox architecture for Open vSwitch, Proc. USENIX ATC, 2016.

S. Jain, B4: Experience with a globally-deployed software dened WAN, Proc. ACM SIGCOMM, 2013.

B. Jenkins, A hash function for hash table lookup, 2016.

L. Jose, Compiling packet programs to recongurable switches, Proc. USENIX NSDI, 2015.

S. Jouet, R. Cziva, and D. Pezaros, Programmable dataplane for next generation networks, 2016.

S. Jouet and D. P. Pezaros, BPFabric: Data plane programmability for software dened networks, Proc. IEEE ANCS, 2017.

P. Kazemian, G. Varghese, and N. Mckeown, Header Space Analysis: Static checking for networks, Proc. USENIX NSDI, 2012.

J. Kicinski and N. Viljoen, eBPF/XDP hardware ooad to SmartNICs, 2016.

C. Kim, Revisiting route caching: The world should be at, Proc. PAM, 2009.

T. Koponen, Network virtualization in multi-tenant datacenters, Proc. USENIX NSDI, 2014.

T. Koponen, Onix: A distributed control platform for large-scale production networks, Proc. USENIX OSDI, 2010.

T. V. Lakshman and D. Stiliadis, High-speed policy-based packet forwarding using ecient multi-dimensional range matching, Proc. ACM SIGCOMM, 1998.

R. Lane, Userspace eBPF VM, 2015.

X. Leroy, Java bytecode verication: Algorithms and formalizations, J. Autom. Reason, 2003.

B. Li, KV-Direct: High-performance in-memory key-value store with programmable NIC, Proc. SOSP, 2017.

, Linux Socket Filtering aka Berkeley Packet Filter (BPF), 2005.

Z. Liu, One sketch to rule them all: Rethinking network ow monitoring with UnivMon, Proc

A. Sigcomm, , 2016.

J. Martins, ClickOS and the art of network function virtualization, Proc. USENIX NSDI, 2014.

S. Mccamant and G. Morrisett,

, Evaluating SFI for a CISC architecture, Proc. USENIX Security, 2006.

S. Mccanne and V. Jacobson, The BSD packet lter: A new architecture for user-level packet capture, Proc. USENIX Winter Conf, 1993.

N. Mckeown, Enabling innovation in campus networks, SIGCOMM Comput, 2008.

H. Mekky, Application-aware data plane processing in SDN, Proc. ACM SIGCOMM HotSDN, 2014.

H. Mekky, Network function virtualization enablement within SDN data plane, IEEE INFOCOM, 2017.

A. Menon, A. L. Cox, and W. Zwaenepoel, Optimizing network virtualization in Xen, Proc. ATC, 2006.

J. Mogul, R. Rashid, and M. Accetta, The Packer Filter: An ecient mechanism for user-level network code, Proc. ACM Symp. Oper. Syst. Principles, 1987.

J. C. Mogul, TCP ooad is a dumb idea whose time has come, Proc. HotOS, 2003.

L. Molnár, Dataplane specialization for high-performance OpenFlow software switching, Proc. ACM SIGCOMM, 2016.

R. Morris, The Click modular router, Proc. ACM SOSP, 1999.

R. Nakamura, Y. Sekiya, and H. Tazaki, Grafting sockets for fast container networking, Proc. ANCS, 2018.

G. C. Necula and P. Lee, Safe kernel extensions without run-time checking, Proc. USENIX OSDI, 1996.

P. Newman, G. Minshall, and T. L. Lyon, IP switchingATM under IP, 1998.

R. Niranjan-mysore, G. Porter, and A. Vahdat, FasTrak: Enabling express lanes in multi-tenant data centers, Proc. ACM CoNEXT, 2013.

Z. Niu, Network stack as a service in the cloud, Proc. ACM HotNets, 2017.

. Opendaylight, , 2013.

A. Panda, NetBricks: Taking the V out of NFV, Proc. USENIX OSDI, 2016.

S. Peter, Arrakis: The operating system is the control plane, Proc. USENIX OSDI, 2014.

J. Pettit, Bringing Platform Harmony to VMware NSX, SIGOPS Oper. Syst. Rev, 2018.

J. Pettit, Virtual switching in an era of advanced edges, Proc. DCCAVES, 2010.

B. Pfa, Converging approaches in software switches, 2016.

B. Pfa, Extending networking into the virtualization layer, Proc. ACM HotNets, 2009.

B. Pfa, The design and implementation of Open vSwitch, Proc. USENIX NSDI, 2015.

, Poll mode driver for paravirtual VMXNET3 NIC -Documentation -DPDK

J. Rediger, Network function ooading in virtualized environments, 2017.

L. Rizzo, Netmap: A novel framework for fast packet I/O, Proc. USENIX ATC, 2012.

L. Rizzo and G. Lettieri, VALE, a switched Ethernet for virtual machines, Proc. CoNEXT, 2012.

R. Russell, Virtio: Towards a de-facto standard for virtual I/O devices, SIGOPS Oper. Syst. Rev, 2008.

S. Sanlippo, Hping -Active network security tool, 2006.

J. R. Santos, Bridging the gap between software and hardware techniques for I/O virtualization, Proc. USENIX ATC, 2008.

M. Shahbaz, PISCES: A programmable, protocol-independent software switch, Proc. ACM SIGCOMM, 2016.

N. Shelly, Flow caching for high entropy packet elds, Proc. ACM SIGCOMM HotSDN, 2014.

J. Sherry, Middleboxes as a Cloud Service, 2016.

S. Singh, Packet classication using multidimensional cutting, Proc. ACM SIGCOMM, 2003.

M. Sipser, Introduction to the Theory of Computation. 1st. International Thomson Publishing, p.53494728, 1996.

A. Sivaraman, Packet Transactions: High-level programming for line-rate switches, Proc. ACM SIGCOMM, 2016.

J. Sonchack, Enabling practical software-dened networking security applications with OFX, 2016.

Y. Song, fuzzing framework based on libfuzzer and clang sanitizer, 2015.

V. Srinivasan, S. Suri, and G. Varghese, Packet classication using Tuple Space Search, Proc

A. Sigcomm, , 1999.

V. Srinivasan, Fast and scalable layer four switching, Proc. ACM SIGCOMM, 1998.

J. Tan, VIRTIO-USER: A new versatile channel for kernel-bypass networks, Proc. KBNets, 2017.

D. E. Taylor, Survey and taxonomy of packet classication techniques, ACM Comput. Surv, 2005.

, The CAIDA anonymized OC48 Internet traces, 2002.

C. Tu, A. Starovoitov, and . Re,

C. Tu, J. Stringer, and J. Pettit, Building an extensible Open vSwitch datapath, ACM SIGOPS Oper. Syst. Rev, 2017.

B. Vamanan, G. Voskuilen, and T. N. Vijaykumar, ECuts: Optimizing packet classication for memory and throughput, Proc

A. Sigcomm, , 2010.

, Vector packet processing (VPP), 2017.

R. Wahbe, Ecient software-based fault isolation, Proc. ACM SOSP, 1993.

H. Wang, P4FPGA: A rapid prototyping framework for P4, Proc. ACM SOSR, 2017.

X. Wang, Jitk: A trustworthy in-kernel interpreter infrastructure, Proc. USENIX OSDI, 2014.

B. Yee, Native Client: A sandbox for portable, untrusted x86 native code, Proc. IEEE S&P, 2009.

M. Yu, L. Jose, and R. Miao, Software dened trac measurement with OpenSketch, Proc. USENIX NSDI, 2013.

M. Zalewski,

M. Zalewski, american fuzzy lop, 2013.

W. Zhang, OpenNetVM: A platform for high performance network service chains, Proc. HotMiddlebox, 2016.