Quality of service provisioning for composable routing elements
Quality of service (QoS) provisioning for dynamically composable software elements in a programmable router has not received much attention. We present a router platform that supports extensible and configurable routing elements, and provides them with access to given resource allocations. Scheduling issues for these elements are discussed: (1) flow-based scheduling, (2) the preemptibility of a pipeline of elements, (3) CPU conservation for idle elements, (4) the CPU balance between input, output, and processing elements and its effects on buffer provisioning, and (5) performance interactions between the packet forwarding plane and the service extension control plane. To demonstrate how QoS provisioning in our system can benefit end users, we use a video scaling application that can respond gracefully to network congestion. For the application, we quantify how router resource management impacts the end-to-end quality of decoded video. Ours appears to be the first comprehensive experimental evaluation of a software system that supports QoS-aware processing of lightweight, dynamic router elements.