SIGCOMM '88 Symposium proceedings on Communications architectures and protocols
A hierarchial CPU scheduler for multimedia operating systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Making paths explicit in the Scout operating system
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Lazy receiver processing (LRP): a network subsystem architecture for server systems
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Hierarchical packet fair queueing algorithms
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Start-time fair queueing: a scheduling algorithm for integrated services packet switching networks
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
SIGCOMM '97 Proceedings of the ACM SIGCOMM '97 conference on Applications, technologies, architectures, and protocols for computer communication
Eliminating receive livelock in an interrupt-driven kernel
ACM Transactions on Computer Systems (TOCS)
IEEE/ACM Transactions on Networking (TON)
Router plugins: a software architecture for next generation routers
Proceedings of the ACM SIGCOMM '98 conference on Applications, technologies, architectures, and protocols for computer communication
Active network vision and reality: lessions from a capsule-based system
Proceedings of the seventeenth ACM symposium on Operating systems principles
Proceedings of the seventeenth ACM symposium on Operating systems principles
OS Support for General-Purpose Routers
HOTOS '99 Proceedings of the The Seventh Workshop on Hot Topics in Operating Systems
Building a robust software-based router using network processors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Snow on Silk: A NodeOS in the Linux Kernel
IWAN '02 Proceedings of the IFIP-TC6 4th International Working Conference on Active Networks
MMNS '02 Proceedings of the 5th IFIP/IEEE International Conference on Management of Multimedia Networks and Services: Management of Multimedia on the Internet
Embedded Software in Network Processors - Models and Algorithms
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
I/O Bus Usage Control in PC-Based Software Routers
NETWORKING '02 Proceedings of the Second International IFIP-TC6 Networking Conference on Networking Technologies, Services, and Protocols; Performance of Computer and Communication Networks; and Mobile and Wireless Communications
Predictive scheduling of network processors
Computer Networks: The International Journal of Computer and Telecommunications Networking - Network processors
Building extensible routers using network processors: Research Articles
Software—Practice & Experience
Quality of service provisioning for composable routing elements
Computer Networks: The International Journal of Computer and Telecommunications Networking
Snow on silk: layering NodeOS functionality on conventional operating systems
Computer Networks: The International Journal of Computer and Telecommunications Networking - Active networks
Configurable software-based edge router architecture
Computer Communications
Serviter: A service-oriented programmable network platform for shared infrastructure
Computer Communications
Processing resource scheduling in programmable networks
Computer Communications
Network programmability for VPN overlay construction and bandwidth management
IWAN'04 Proceedings of the 6th IFIP TC6 international working conference on Active networks
Hi-index | 0.00 |
Recent efforts to add new services to the Internet have increased the interest in software-based routers that are easy to extend and evolve. This paper describes our experiences implementing a software-based router, with a particular focus on the main difficulty we encountered: how to schedule the router's CPU cycles. The scheduling decision is complicated by the desire to differentiate the level of service for different packet flows, which leads to two fundamental conflicts: (1) assigning processor shares in a way that keeps the processes along the forwarding path in balance while meeting QoS promises, and (2) adjusting the level of batching in a way that minimizes overhead while meeting QoS promises.