ACM Transactions on Computer Systems (TOCS)
Pc-based software routers: high performance and application service support
Proceedings of the ACM workshop on Programmable routers for extensible services of tomorrow
Fairness issues in software virtual routers
Proceedings of the ACM workshop on Programmable routers for extensible services of tomorrow
Towards high performance virtual routers on commodity hardware
CoNEXT '08 Proceedings of the 2008 ACM CoNEXT Conference
RouteBricks: exploiting parallelism to scale software routers
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
DROP: an open-source project towards distributed SW router architectures
GLOBECOM'09 Proceedings of the 28th IEEE conference on Global telecommunications
PacketShader: a GPU-accelerated software router
Proceedings of the ACM SIGCOMM 2010 conference
RouteBricks: enabling general purpose network infrastructure
ACM SIGOPS Operating Systems Review
NetBump: user-extensible active queue management with bumps on the wire
Proceedings of the eighth ACM/IEEE symposium on Architectures for networking and communications systems
Hi-index | 0.00 |
The advent of multicore CPUs has led to renewed interest in software routers built from commodity PC hardware[6, 5, 8, 7, 3, 4]. The typical approach to scaling network processing in these systems is to distribute packets, or rather flows of packets, across multiple cores that process them in parallel. However, the traffic arriving (departing) on an incoming (outgoing) link at a router is inherently serial and hence we need a mechanism that appropriately demultiplexes (multiplexes) the traffic between a serial link and a set of cores. I.e., multiple cores can parallelize the processing of a traffic stream but to fully exploit the parallelism due to multiple cores we must first be able to parallelize the delivery of packets to and from cores. Moreover, this parallelization must be achieved in a manner that is: (i) efficient, ensuring that the splitting/merging of traffic isn't the bottleneck along a packet's processing path and (ii) well balanced such that input processing load can be well balanced across available cores for a range of input traffic workloads (e.g., diverse flow counts, flow sizes, packet processing applications, and so forth). If either of these requirements is not met, the parallelism due to multiple cores might well be moot. In other words, achieving parallelism in packet delivery is critical for any software routing system that exploits multiple cores.