A traffic control application programming interface for abstracting the
use of traffic control components to client applications to provide
quality of service. The traffic control interface accepts input from a
client application and based on that input, communicates with the
operating system to control kernel level traffic control components. The
client can register with the traffic control interface, and it can open
and close interfaces, add, modify, and delete flows on those interfaces,
and attach or delete filters on the flows. The client can also obtain
data on any currently active interface, flow, or filter. The traffic
control interface will send the appropriate message to the operating
system, directing that the necessary tasks be performed by either a
packet scheduler or a packet classifier. Those kernel level components
then return through the operating system the results of the operations
requested, and that return data will be passed back to the client
application.