Method and system of an application program interface for abstracting network traffic control components to application programs
First Claim
1. A method for providing network traffic control to at least one application program sending data over a network connection comprising the steps of:
- receiving a registration message from the application program as a request to establish a connection with the network;
assigning a client identification to the application program responsive to the registration message;
saving the client identification to identify the application program for subsequent calls;
receiving an open interface message having the client identification from the application program as a request to open an interface that controls network traffic;
assigning an interface identification to an interface opened in response to the open interface message;
saving the interface identification to identify, the interface for subsequent calls;
communicating a control instruction to a traffic control component to open the interface; and
returning the interface identification to the application program to indicate that the interface has been opened.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
133 Citations
43 Claims
-
1. A method for providing network traffic control to at least one application program sending data over a network connection comprising the steps of:
-
receiving a registration message from the application program as a request to establish a connection with the network;
assigning a client identification to the application program responsive to the registration message;
saving the client identification to identify the application program for subsequent calls;
receiving an open interface message having the client identification from the application program as a request to open an interface that controls network traffic;
assigning an interface identification to an interface opened in response to the open interface message;
saving the interface identification to identify, the interface for subsequent calls;
communicating a control instruction to a traffic control component to open the interface; and
returning the interface identification to the application program to indicate that the interface has been opened. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
receiving a response data message from the traffic control component;
deciphering the response data message in a format that the application program can interpret; and
providing the deciphered response data to the application program.
-
-
3. The method of claim 1, further comprising the steps of:
-
receiving a flow install message having the interface identification from the application program as a request to install a flow to the opened interface;
assigning a flow identification to the flow responsive to the flow install message;
saving the flow identification to identify the flow for subsequent calls; and
communicating a control instruction to the traffic control component to install the flow to the opened interface; and
providing the flow identification to the application program to indicate that the flow has been installed to the opened interface.
-
-
4. The method of claim 3, further comprising the steps of:
-
receiving an add filter message having the flow identification from the application program as a request to add a filter to the installed flow;
assigning a filter identification to a filter responsive to the add filter message;
saving the filter identification to identify the filter for subsequent calls;
communicating a control instruction to the traffic control component to add the filter to the installed flow; and
providing the filter identification to the first application program to indicate that the filter has been added to the installed flow.
-
-
5. The method of claim 4 further comprising the steps of:
-
receiving a delete filter message having the filter identification from the application program as a request to delete the filter; and
communicating a control instruction to the traffic control component to delete the filter identified by the flow identification.
-
-
6. The method of claim 3 further comprising the steps of:
-
receiving a modify flow message having the flow identification from the application program as a request to modify the flow of the opened interface; and
communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
-
-
7. The method of claim 3 further comprising the steps of:
-
receiving a delete flow message having the flow identification from the application program as a request to delete the flow of the opened interface;
communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
-
-
8. The method of claim 3 further comprising the steps of:
-
receiving a registration message from a second application program as a request to register with the network;
assigning a second client identification to the second application program;
receiving an open interface message from the second application program as a request to open the interface assigned with the interface identification;
providing the interface identification to the second application program to indicate that the interface has been opened;
receiving a flow install message having the interface identification from the second application program as a request to install a second flow to the opened interface; and
assigning a second flow identification to the second flow responsive to the flow install message;
communicating a control instruction to the traffic control component to aggregate the second flow with the first flow from the first application program on the interface assigned with the interface identification.
-
-
9. The method of claim 3 further comprising the steps of:
-
receiving a retrieve flow name message having the flow identification from the application program as a request to retrieve a flow name of the flow;
querying the traffic control component to obtain the flow name of the flow identified by the flow identification responsive to the retrieve flow name message;
deciphering response data including the flow name from the traffic control component; and
providing the deciphered response data with the flow name to the application program.
-
-
10. The method of claim 3 further comprising the steps of:
-
receiving a query flow properties message having the flow identification from the application program as a request to retrieve a flow property of the flow;
querying the traffic control component to obtain the flow property of the flow identified by the flow identification responsive to the retrieve flow name message;
deciphering response data including the flow property from the traffic control component; and
providing the deciphered response data with the flow property to the application program.
-
-
11. The method of claim 1, wherein any control instruction to the traffic control component is a windows management instrumentation message or an input/output control message.
-
12. The method of claim 1, further comprising the steps of:
-
receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic;
querying the traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message;
deciphering response data including the list of available interfaces from the traffic control component; and
providing the deciphered response data with the list to the application program.
-
-
13. The method of claim 12, wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, wherein the first network connection is different from the second network connection.
-
14. The method of claim 13, wherein the first and second network connections include any one from the group of a local area network, wide area network, and asynchronous transfer mode network.
-
15. The method of claim 1 further comprising the steps of:
-
receiving a close interface message having the interface identification from the application program as a request to close the opened interface;
communicating a control instruction to the traffic control component to close the opened interface identified by the interface identification.
-
-
16. The method of claim 1 further comprising the steps of:
-
receiving a query traffic control message having the interface identification from the application program as a request to obtain a traffic control parameter for the opened interface;
querying the traffic control component to obtain the traffic control parameter of the opened interface identified by the interface identification responsive to the query traffic control message;
deciphering response data including the traffic control parameter from the traffic control component; and
providing the deciphered response data with the traffic control parameter to the application program.
-
-
17. The method of claim 16 wherein the query traffic control message includes a notify change boolean as a request to notify the application program whenever the traffic control parameter is changed in the network.
-
18. The method of claim 1 further comprising the steps of:
-
receiving a set traffic control message having the interface identification from the application program as a request to set a traffic control parameter for the opened interface; and
communicating a control instruction to the traffic control component to set the traffic control parameter for the opened interface identified by the interface identification.
-
-
19. The method of claim 1 further comprising the steps of:
-
receiving a deregistration message having the client identification from the application program as a request to deregister from the network; and
deleting the saved client identification responsive to the deregistration message.
-
-
20. The method of claim 1 wherein the network traffic component includes:
-
a packet scheduler for scheduling data transmissions through the network connection, wherein the packet scheduler communicates using windows management instrumentation messages; and
a generic packet classifier for classifying data transmissions through the network connection, wherein the generic packet classifier communicates using input/output control messages.
-
-
21. A computer-readable medium having computer-executable instructions for performing the steps of:
-
receiving a registration message from an application program as a request to establish a connection with a network;
assigning a client identification to the application program responsive to the registration message;
saving the client identification to identify the application program for subsequent calls;
receiving an open interface message from the application program as a request to open an interface that controls network traffic;
assigning an interface identification to the interface opened in response to the open interface message;
saving the interface identification to identify the interface for subsequent calls;
communicating a control instruction to a traffic control component to open the interface; and
returning the interface identification to the application program to indicate that the interface has been opened. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
receiving a response data message from the traffic control component;
deciphering the response data message in a format that the application program can interpret; and
providing the deciphered response data to the application program.
-
-
23. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving a flow install message having the interface identification from the application program as a request to install a flow to the opened interface;
assigning a flow identification to the flow responsive to the flow install message;
saving the flow identification to identify the flow for subsequent calls; and
communicating a control instruction to the traffic control component to install the flow to the opened interface; and
providing the flow identification to the application program to indicate that the flow has been installed to the open interface.
-
-
24. The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of:
-
receiving a modify flow message having the flow identification from the application program as a request to modify the flow of the opened interface; and
communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
-
-
25. The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of:
-
receiving a delete flow message having the flow identification from the application program as a request to delete the flow of the opened interface;
communicating a control instruction to the traffic control component to delete the flow identified by the flow identification.
-
-
26. The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of:
-
receiving a registration message from a second application program as a request to register with the network;
assigning a second client identification to the second application program;
receiving an open interface message from the second application program as a request to open the interface assigned with the interface identification;
providing the interface identification to the second application program to indicate that the interface has been opened;
receiving a flow install message having the interface identification from the second application program as a request to install a second flow to the opened interface;
assigning a second flow identification to the second flow responsive to the flow install message; and
communicating a control instruction to the traffic control component to aggregate the second flow with the first flow from the first application program, on the interface assigned with the interface identification.
-
-
27. The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of:
-
receiving a retrieve flow name message having the flow identification from the application program as a request to retrieve a flow name of the flow;
querying the traffic control component to obtain the flow name of the flow identified by the flow identification responsive to the retrieve flow name message;
deciphering response data including the flow name from the traffic control component; and
providing the deciphered response data with the flow name to the application program.
-
-
28. The computer-readable medium of claim 23 having further computer-executable instructions for performing the steps of:
-
receiving a query flow properties message having the flow identification from the application program as a request to retrieve a flow property of the flow;
querying the traffic control component to obtain the flow property of the flow identified by the flow identification responsive to the retrieve flow name message;
deciphering response data including the flow property from the traffic control component; and
providing the deciphered response data with the flow property to the application program.
-
-
29. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving an add filter message having the flow identification from the application program as a request to add a filter to the installed flow;
assigning a filter identification to a filter responsive to the add filter message;
saving the filter identification to identify the filter for subsequent calls;
communicating a control instruction to the traffic control component to add the filter to the installed flow; and
providing the filter identification to the application program to indicate that the filter has been added to the installed flow.
-
-
30. The computer-readable medium of claim 29 having further computer-executable instructions for performing the steps of:
-
receiving a delete filter message having the filter identification from the application program as a request to delete the filter; and
communicating a control instruction to the traffic control component to delete the filter identified by the flow identification.
-
-
31. The computer-readable medium of claim 21 wherein any control instruction to the traffic control component is a windows management instrumentation message or an input/output control message.
-
32. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic;
querying the traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message;
deciphering response data including the list of available interfaces from the traffic control component; and
providing the deciphered response data with the list to the application program.
-
-
33. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving a close interface message having the interface identification from the application program as a request to close the opened interface; and
communicating a control instruction to the traffic control component to close the opened interface identified by the interface identification.
-
-
34. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving a query traffic control message having the interface identification from the application program as a request to obtain a traffic control parameter for the opened interface;
querying the traffic control component to obtain the traffic control parameter of the opened interface identified by the interface identification responsive to the query traffic control message;
deciphering response data including the traffic control parameter from the traffic control component; and
providing the deciphered response data with the traffic control parameter to the application program.
-
-
35. The computer-readable medium on claim 34 wherein the query traffic control message includes a notify change Boolean as a request to notify the application program whenever the traffic control parameter is changed in the network.
-
36. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving a set traffic control message having the interface identification from the application program as a request to set a traffic control parameter for the opened interface; and
communicating a control instruction to the traffic control component to set the traffic control parameter for the opened interface identified by the interface identification.
-
-
37. The computer-readable medium of claim 21 having further computer-executable instructions for performing the steps of:
-
receiving a deregistration message having the client identification from the application program as a request to deregister from the network; and
deleting the saved client identification responsive to the deregistration message.
-
-
38. The computer-readable medium on claim 21 wherein the network traffic component includes:
-
a packet scheduler for scheduling data transmission through the network connection, wherein the packet scheduler communicates using windows management instrumentation messages; and
a generic packet classifier for classifying data transmissions through the network connection, wherein the generic packet classifier communicates using input/output control messages.
-
-
39. A method for providing network traffic control to at least one application program sending data over a plurality of network connections comprising the steps of:
-
receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic;
querying a traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message;
deciphering response data including the list of available interfaces from the traffic control component; and
providing the deciphered response data with the list to the application program;
wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, and the first network connection uses a different network protocol from the second network connection. - View Dependent Claims (40)
-
-
41. A computer-readable medium having computer-executable instructions for performing the steps of:
-
receiving an enumerate interfaces message from the application program as a request to obtain a list of available interfaces that control network traffic over a plurality of network connections;
querying a traffic control component to obtain the list of available interfaces responsive to the enumerate interfaces message;
deciphering response data including the list of available interfaces from the traffic control component; and
providing the deciphered response data with the list to the application program;
wherein one interface from the list is linked to a first network connection and another interface from the list is linked to a second network connection, wherein the first network connection is different from the second network connection.
-
-
42. A computer system for providing network traffic control to at least one application program sending data over a plurality of network connections comprising:
-
a traffic control interface for assigning an interface identification to an interface opened by the application program, and saving the interface identification to identify the opened interface for subsequent calls;
a packet scheduler for scheduling data transmissions through the plurality of network connections; and
a generic packet classifier for classifying data transmissions through the plurality of network connections;
wherein the plurality of network connections includes interfaces using different communication protocols. - View Dependent Claims (43)
a windows management instrumentation interface for deciphering response data from the packet scheduler;
an input/output control interface for deciphering response data from the generic packet classifier;
wherein the response data from the packet scheduler and the generic packet classifier are in different formats.
-
Specification