@article {18553,
	title = {Building a fast, virtualized data plane with programmable hardware},
	journal = {SIGCOMM Comput. Commun. Rev.},
	volume = {40},
	year = {2010},
	month = {2010/01//},
	pages = {75 - 82},
	abstract = {Network virtualization allows many networks to share the same underlying physical topology; this technology has offered promise both for experimentation and for hosting multiple networks on a single shared physical infrastructure. Much attention has focused on virtualizing the network control plane, but, ultimately, a limiting factor in the deployment of these virtual networks is data-plane performance: Virtual networks must ultimately forward packets at rates that are comparable to native, hardware-based approaches. Aside from proprietary solutions from vendors, hardware support for virtualized data planes is limited. The advent of open, programmable network hardware promises flexibility, speed, and resource isolation, but, unfortunately, hardware does not naturally lend itself to virtualization. We leverage emerging trends in programmable hardware to design a flexible, hardware-based data plane for virtual networks. We present the design, implementation, and preliminary evaluation of this hardware-based data plane and show how the proposed design can support many virtual networks without compromising performance or isolation.},
	keywords = {netfpga, network virtualization},
	isbn = {0146-4833},
	doi = {10.1145/1672308.1672323},
	url = {http://doi.acm.org/10.1145/1672308.1672323},
	author = {Anwer,Muhammad Bilal and Feamster, Nick}
}
@conference {18589,
	title = {Network I/O fairness in virtual machines},
	booktitle = {Proceedings of the second ACM SIGCOMM workshop on Virtualized infrastructure systems and architectures},
	series = {VISA {\textquoteright}10},
	year = {2010},
	month = {2010///},
	pages = {73 - 80},
	publisher = {ACM},
	organization = {ACM},
	address = {New York, NY, USA},
	abstract = {We present a mechanism for achieving network I/O fairness in virtual machines, by applying flexible rate limiting mechanisms directly to virtual network interfaces. Conventional approaches achieve this fairness by implementing rate limiting either in the virtual machine monitor or hypervisor, which generates considerable CPU interrupt and instruction overhead for forwarding packets. In contrast, our design pushes per-VM rate limiting as close as possible to the physical hardware themselves, effectively implementing per-virtual interface rate limiting in hardware. We show that this design reduces CPU overhead (both interrupts and instructions) by an order of magnitude. Our design can be applied either to virtual servers for cloud-based services, or to virtual routers},
	keywords = {netfpga, network virtualization, xen},
	isbn = {978-1-4503-0199-2},
	doi = {10.1145/1851399.1851412},
	url = {http://doi.acm.org/10.1145/1851399.1851412},
	author = {Anwer,Muhammad Bilal and Nayak,Ankur and Feamster, Nick and Liu,Ling}
}
@article {18601,
	title = {SwitchBlade: a platform for rapid deployment of network protocols on programmable hardware},
	journal = {SIGCOMM Comput. Commun. Rev.},
	volume = {40},
	year = {2010},
	month = {2010/08//},
	pages = {183 - 194},
	abstract = {We present SwitchBlade, a platform for rapidly deploying custom protocols on programmable hardware. SwitchBlade uses a pipeline-based design that allows individual hardware modules to be enabled or disabled on the fly, integrates software exception handling, and provides support for forwarding based on custom header fields. SwitchBlade{\textquoteright}s ease of programmability and wire-speed performance enables rapid prototyping of custom data-plane functions that can be directly deployed in a production network. SwitchBlade integrates common packet-processing functions as hardware modules, enabling different protocols to use these functions without having to resynthesize hardware. SwitchBlade{\textquoteright}s customizable forwarding engine supports both longest-prefix matching in the packet header and exact matching on a hash value. SwitchBlade{\textquoteright}s software exceptions can be invoked based on either packet or flow-based rules and updated quickly at runtime, thus making it easy to integrate more flexible forwarding function into the pipeline. SwitchBlade also allows multiple custom data planes to operate in parallel on the same physical hardware, while providing complete isolation for protocols running in parallel. We implemented SwitchBlade using NetFPGA board, but SwitchBlade can be implemented with any FPGA. To demonstrate SwitchBlade{\textquoteright}s flexibility, we use SwitchBlade to implement and evaluate a variety of custom network protocols: we present instances of IPv4, IPv6, Path Splicing, and an OpenFlow switch, all running in parallel while forwarding packets at line rate.},
	keywords = {netfpga, network virtualization},
	isbn = {0146-4833},
	doi = {10.1145/1851275.1851206},
	url = {http://doi.acm.org/10.1145/1851275.1851206},
	author = {Anwer,Muhammad Bilal and Motiwala,Murtaza and Bin Tariq,Mukarram and Feamster, Nick}
}
