Virtualization has become the powerhouse for several networking concepts, from local area networks (VLANs) to software switches, software-defined control plane, etc. Recent proposals like HyPer4, HyperVDP, and P4Visor brought the concept to the forwarding plane, by enabling emulation of several network contexts and/or composing several functions through a single program. In spite of the progress achieved, the real power of forwarding plane virtualization remains untapped. In this letter, we present P4VBox, a reconfigurable architecture for data plane virtualization. P4VBox provides parallel execution and hot-swapping of virtual switch instances, without requiring switch source code (for either emulation or program composition). We experimented P4VBox on a NetFPGA-SUME board with three virtual switches: a layer-2 switch, a simple router, and a firewall. Area occupation measurements evidence the feasibility of running up to 13 virtual switches in parallel. Compared to existing work, performance data show an improvement of up to two orders of magnitude for bandwidth and six orders for latency.
[1]
Luciano Paschoal Gaspary,et al.
Data Plane Programmability Beyond OpenFlow: Opportunities and Challenges for Network and Service Operations and Management
,
2017,
Journal of Network and Systems Management.
[2]
Chengchen Hu,et al.
P4Visor: lightweight virtualization and composition primitives for building and testing modular programs
,
2018,
CoNEXT.
[3]
George Varghese,et al.
P4: programming protocol-independent packet processors
,
2013,
CCRV.
[4]
Haoyu Song,et al.
Protocol-oblivious forwarding: unleash the power of SDN through a future-proof forwarding plane
,
2013,
HotSDN '13.
[5]
Jianping Wu,et al.
HyperVDP: High-Performance Virtualization of the Programmable Data Plane
,
2019,
IEEE Journal on Selected Areas in Communications.
[6]
Nick McKeown,et al.
The P4->NetFPGA Workflow for Line-Rate Packet Processing
,
2019,
FPGA.
[7]
Jacobus E. van der Merwe,et al.
HyPer4: Using P4 to Virtualize the Programmable Data Plane
,
2016,
CoNEXT.