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.