Flow tagging for service policy implementation
First Claim
1. A non-transitory computer-readable storage medium storing machine-executable instructions that, when executed by one or more processors, cause the one or more processors to:
- execute a first software application; and
implement (i) a traffic stack capable of coupling to at least a first communication network, and (ii) one or more software agents configured to;
register a first association between the first software application and a first traffic flow, the first traffic flow comprising a first set of one or more related data transfers, andat least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow,and wherein the one or more software agents include a proxy agent configured to at least assist in communicating the first traffic flow over the first communication network on behalf of the first software application.
2 Assignments
0 Petitions
Accused Products
Abstract
A non-transitory computer-readable storage medium storing machine-executable instructions that, when executed by one or more processors, cause the one or more processors to execute a software application, implement a traffic stack capable of coupling to a communication network, and implement one or more software agents configured to register an association between the software application and a traffic flow, and at least assist in implementing a service policy based on the registered association between the software application and the traffic flow, wherein the one or more software agents include a proxy agent configured to at least assist in communicating the traffic flow over the communication network on behalf of the software application.
-
Citations
158 Claims
-
1. A non-transitory computer-readable storage medium storing machine-executable instructions that, when executed by one or more processors, cause the one or more processors to:
-
execute a first software application; and implement (i) a traffic stack capable of coupling to at least a first communication network, and (ii) one or more software agents configured to; register a first association between the first software application and a first traffic flow, the first traffic flow comprising a first set of one or more related data transfers, and at least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow, and wherein the one or more software agents include a proxy agent configured to at least assist in communicating the first traffic flow over the first communication network on behalf of the first software application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158)
-
2. The non-transitory computer-readable storage medium recited in claim 1, wherein, when executed by the one or more processors, the machine-executable instructions further cause the one or more processors to:
execute a control application, the control application for processing the first traffic flow for presentation to a user.
-
3. The non-transitory computer-readable storage medium recited in claim 2, wherein the first software application is a media file, and wherein the control application comprises a media player registered to handle files of the same type as the media file.
-
4. The non-transitory computer-readable storage medium recited in claim 1, wherein, when executed by the one or more processors, the machine-executable instructions further cause the one or more processors to execute a second software application, and wherein the one or more software agents are further configured to:
-
register a second association between the second software application and a second traffic flow, the second traffic flow comprising a second set of one or more related data transfers, and refrain from assisting in implementing the first service policy based on the registered second association between the second software application and the second traffic flow.
-
-
5. The non-transitory computer-readable storage medium recited in claim 1, wherein, when executed by the one or more processors, the machine-executable instructions further cause the one or more processors to execute a second software application, and wherein the service policy is a first service policy, and wherein the one or more software agents are further configured to:
-
register a second association between the second software application and a second traffic flow, the second traffic flow comprising a second set of one or more related data transfers, and at least assist in implementing a second service policy based on the registered second association between the second software application and the second traffic flow.
-
-
6. A communication device embodying the non-transitory computer-readable storage medium recited in claim 1.
-
7. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents comprise one or more software programs, software functions, software processes, or software services.
-
8. The non-transitory computer-readable storage medium recited in claim 1, wherein the first software application is a user software program.
-
9. The non-transitory computer-readable storage medium recited in claim 1, wherein the first software application is an operating system program, an operating system function, an operating system process, an operating system library, or an operating system service.
-
10. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to maintain the first association between the first software application and the first traffic flow when two or more agent functions, including the proxy agent, are invoked to assist in initiating the first traffic flow, the invocation of the two or more agent functions caused by the first software application requesting a communication that leads to initiation of the first traffic flow.
-
11. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises a software service, a function, an application, a component, a library, or a combination of these.
-
12. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents further include a service monitor agent, a service usage monitoring agent, a kernel agent, a classification and accounting agent, a classification and enforcement agent, a policy decision point agent, a policy enforcement point agent, a policy implementation agent, a policy control agent, a firewall agent, a flow tracking agent, a classification and accounting proxy agent, a service processor agent, a classification engine, an application usage engine, a flow mapping engine, a classification engine, a service engine, a usage classification engine, a reconciliation engine, a traffic classification and enforcement engine, or a socket manager engine.
-
13. The non-transitory computer-readable storage medium recited in claim 1, wherein the traffic stack is further capable of coupling to a second communication network, and wherein the one or more software agents are further configured to:
-
register a first classification of traffic associated with the first traffic flow when the traffic stack is coupled to the first communication network, register a second association between the first software application and a second traffic flow when the traffic stack is coupled to the second communication network, and register a second classification of traffic associated with the second traffic flow.
-
-
14. The non-transitory computer-readable storage medium recited in claim 13, wherein, when executed by the one or more processors, the machine-executable instructions further cause the one or more processors to:
-
at least assist in implementing a second service policy based on the registered second association between the first software application and the second traffic flow when the traffic stack is coupled to the second communication network, or refrain from assisting in implementing the first service policy when the traffic stack is coupled to the second communication network.
-
-
15. The non-transitory computer-readable storage medium recited in claim 1, wherein at least assist in implementing a first service policy comprises:
-
determine a first accounting of network usage associated with the first traffic flow, and associate the first accounting with the first software application.
-
-
16. The non-transitory computer-readable storage medium recited in claim 15, wherein the one or more software agents are further configured to implement a user interface, and wherein at least assist in implementing a first service policy comprises present a representation of the first accounting through the user interface.
-
17. The non-transitory computer-readable storage medium recited in claim 1, wherein the first communication network is a wireless access network.
-
18. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises a media player service, function, application, operating system (OS) component, or library.
-
19. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises a streaming or feed service, function, application, operating system (OS) component, or library.
-
20. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises (a) a software download or update service, function, application, operating system (OS) component, or library, or (b) a backup service, function, application, OS component, or library.
-
21. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises a file download service, function, application, operating system (OS) component, or library.
-
22. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises a voice or video communication service, function, application, operating system (OS) component, or library.
-
23. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises:
- an Android operating system (OS) media service, an Android OS media library, a libstagefright function or program, an Android developer library function, or a combination of these.
-
24. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises:
- a proxy server function, a tunneling protocol function, a system service for an operating system (OS), a media services library function, a media library function, or a combination of these.
-
25. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent comprises an e-mail manager, a software download manager, a media download manager, a data download manager, an SMTP proxy, an IMAP proxy, a POP proxy, an HTTP proxy, an IM proxy, a VPN service manager, an SSL proxy, or a combination of these.
-
26. The non-transitory computer-readable storage medium recited in claim 1, wherein assist in communicating the first traffic flow over the first communication network on behalf of the first software application comprises:
-
determine that the first software application intends to initiate, call, invoke, or request a network communication that results in the first traffic flow, and manage at least an aspect of the first traffic flow on behalf of the first software application.
-
-
27. The non-transitory computer-readable storage medium recited in claim 1, wherein assist in communicating the first traffic flow over the first communication network on behalf of the first software application comprises:
-
obtain a request from the first software application, open a network socket to a remote server associated with the request, and initiate a communication with the remove server.
-
-
28. The non-transitory computer-readable storage medium recited in claim 27, wherein the request from the first software application includes a uniform resource locator (URL), a URL descriptor, a network address, a server identifier, or a combination of these.
-
29. The non-transitory computer-readable storage medium recited in claim 27, wherein the request from the first software application includes a network resource identifier.
-
30. The non-transitory computer-readable storage medium recited in claim 29, wherein the network resource identifier comprises an identifier for a network location for a media file or stream, and wherein the proxy agent is a media player, a media download manager, a streaming service manager, or a feed service manager.
-
31. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to associate a first classification of traffic with the first traffic flow.
-
32. The non-transitory computer-readable storage medium recited in claim 31, wherein the first classification of traffic comprises a classification identifying the traffic as being associated with:
- a particular network type, a background application operating mode, a foreground application operating mode, or a combination of these.
-
33. The non-transitory computer-readable storage medium recited in claim 31, wherein the first classification of traffic comprises a classification identifying the traffic as traffic associated with a particular network type, the particular network type being WiFi, cellular, roaming, home, associated with a cost, 2G, 3G, 4G, or a combination of these.
-
34. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent is further configured to at least assist in registering the first association between the first software application and the first traffic flow.
-
35. The non-transitory computer-readable storage medium recited in claim 1, wherein a first subset of the one or more software agents includes the proxy agent, and wherein a second subset of the one or more software agents is included in or augments the traffic stack, and wherein register a first association between the first software application and a first traffic flow comprises:
provide or make available, to the second subset of the one or more software agents, a first application identifier and a first traffic flow identifier.
-
36. The non-transitory computer-readable storage medium recited in claim 35, wherein the first application identifier is an application name, a UID, an identification tag, a thread identifier, a process identifier, an application credential, or a combination of these, and wherein the first traffic flow identifier is a socket identifier, a socket label, a socket tuple, a socket address, a socket port, a flow tag, or a combination of these.
-
37. The non-transitory computer-readable storage medium recited in claim 35, wherein the first application identifier is associated with:
- (a) two or more applications, (b) two or more application components, (c) software comprising a JAR file, (d) software comprising applications, services, functions, or processes that coordinate with one another to implement a composite application, service, function, or process, or (e) a combination of any of (a) through (d).
-
38. The non-transitory computer-readable storage medium recited in claim 35, wherein the second subset of the one or more software agents is configured to use the first application identifier and the first traffic flow identifier to classify or tag traffic communicated through the traffic stack that is associated with the first traffic flow as being associated with the first application identifier.
-
39. The non-transitory computer-readable storage medium recited in claim 36, wherein at least assist in implementing a first service policy comprises the second subset of the one or more software agents implementing at least an aspect of the first service policy.
-
40. The non-transitory computer-readable storage medium recited in claim 39, wherein implementing the first service policy comprises determining an accounting of communication over the first communication network associated with the first software application.
-
41. The non-transitory computer-readable storage medium recited in claim 40, wherein the second subset of the one or more software agents is further configured to:
-
implement a user interface, obtain the accounting, and provide information associated with the accounting through the user interface.
-
-
42. The non-transitory computer-readable storage medium recited in claim 39, wherein implementing the first service policy comprises implementing a traffic control to at least a portion of communication over the first communication network.
-
43. The non-transitory computer-readable storage medium recited in claim 42, wherein the traffic control comprises a control associated with the first software application.
-
44. The non-transitory computer-readable storage medium recited in claim 42, wherein the traffic control comprises a control associated with a plurality of software applications.
-
45. The non-transitory computer-readable storage medium recited in claim 42, wherein the second subset of the one or more software agents is further configured to:
-
implement a user interface, and obtain at least an aspect of the traffic control from the user interface.
-
-
46. The non-transitory computer-readable storage medium recited in claim 39, wherein the one or more software agents are further configured to provide a user interface, and wherein implementing the first service policy comprises presenting a notification through the user interface, the notification providing information associated with communication over the first communication network associated with the first software application.
-
47. The non-transitory computer-readable storage medium recited in claim 46, wherein the second subset of the one or more software agents is further configured to obtain at least an aspect of the first service policy from the user interface.
-
48. The non-transitory computer-readable storage medium recited in claim 38, wherein the second subset of the one or more software agents comprises one or more of a service monitor agent, a service usage monitoring agent, a kernel agent, a classification and accounting agent, a classification and enforcement agent, a policy decision point agent, a policy enforcement point agent, a policy implementation agent, a policy control agent, a firewall agent, a flow tracking agent, a classification and accounting proxy agent, a service processor agent, a classification engine, an application usage engine, a flow mapping engine, a classification engine, a service engine, a usage classification engine, a reconciliation engine, a traffic classification and enforcement engine, or a socket manager engine.
-
49. The non-transitory computer-readable storage medium recited in claim 38, wherein the one or more software agents are further configured to implement a kernel interface that provides for communication of information between one or more application layer or framework layer software agents and one or more kernel layer software agents, and wherein the first subset of the one or more software agents comprises the one or more application layer or framework layer software agents, and wherein the second subset of the one or more software agents comprises the one or more kernel layer software agents, and wherein the first subset of the one or more software agents is further configured to provide the first application identifier and the first traffic flow identifier to the one or more kernel software agents through the kernel interface.
-
50. The non-transitory computer-readable storage medium recited in claim 49, wherein the first service policy assists in determining an accounting of communication over the first communication network associated with the first software application, and wherein the second subset of the one or more software agents is further configured to:
-
implement at least an aspect of a function to determine the accounting, use the first application identifier and the first traffic flow identifier to identify traffic stack traffic that is included in the accounting, and provide, through the kernel interface, the accounting to the first subset of the one or more software agents.
-
-
51. The non-transitory computer-readable storage medium recited in claim 50, wherein the first subset of the one or more software agents is configured to:
-
implement a user interface, obtain the accounting from the kernel interface, and provide a notification associated with the accounting through the user interface.
-
-
52. The non-transitory computer-readable storage medium recited in claim 51, wherein obtain the accounting comprises:
-
determine an association between the first application identifier and a first application name, and associate the accounting with the first application name.
-
-
53. The non-transitory computer-readable storage medium recited in claim 50, wherein the first set of one or more software agents further comprises one or more user interface agents configured to present information about the accounting through a user interface.
-
54. The non-transitory computer-readable storage medium recited in claim 38, wherein the second subset of the one or more software agents comprises a classification and enforcement agent, a usage/classification reconciliation agent, a firewall agent, a tagging agent, or a combination of these.
-
55. The non-transitory computer-readable storage medium recited in claim 38, wherein the second subset of the one or more software agents comprises a socket tagging function.
-
56. The non-transitory computer-readable storage medium recited in claim 38, wherein the second subset of the one or more software agents comprises a tagging engine.
-
57. The non-transitory computer-readable storage medium recited in claim 49, wherein the second subset of the one or more software agents is integral to or augments the traffic stack, and wherein the first service policy assists in implementing a traffic control associated with the first software application, and wherein the first subset of the one or more software agents includes a network policy manager configured to cause one or more traffic filter parameters to be implemented in the second subset of the one or more software agents to assist in implementing the traffic control, wherein the one or more traffic filter parameters include a traffic control action or setting and (a) information about the first application identifier, (b) information about the first traffic flow identifier, or (c) both (a) and (b).
-
58. The non-transitory computer-readable storage medium recited in claim 49, wherein the proxy agent is further configured to assist in providing, to the one or more kernel software agents, (a) the first application identifier, (b) the first traffic flow identifier, or (c) both (a) and (b).
-
59. The non-transitory computer-readable storage medium recited in claim 38, wherein the second subset of the one or more software agents comprises a kernel agent configured to assist in implementing the first service policy by using (a) the first application identifier, (b) the first traffic flow identifier, or (c) both (a) and (b) to establish, maintain, or implement a table of IP packet filter rules in a kernel, wherein the table of IP packet filter rules is configured to assist in implementing the first service policy.
-
60. The non-transitory computer-readable storage medium recited in claim 38, wherein the first service policy assists in determining an accounting of usage of the first communication network associated with the first software application, and wherein the second subset of the one or more software agents is configured to in implementing the first service policy by:
-
classifying, mapping, or tagging the first traffic flow identifier as being associated with the first software application identifier rather than an identifier associated with the proxy agent, monitoring an amount of data communicated over the first traffic flow, and including the amount of data communicated over the first traffic flow in the accounting.
-
-
61. The non-transitory computer-readable storage medium recited in claim 38, wherein the first service policy assists in implementing a traffic control associated with the first software application, and wherein the one or more software agents further include a network policy manager agent configured to cause one or more traffic filter parameters to be provided to the second subset of the one or more software agents to assist in implementing the traffic control, wherein the one or more traffic filter parameters include (a) information about the first application identifier, information about the first traffic flow identifier, or a combination of these, and (b) a traffic control action or setting, and wherein the second subset of the one or more software agents is configured to use the one or more traffic filter parameters to assist in implementing the traffic control.
-
62. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises:
-
store, provide, or make available a first application identifier, and associate the first application identifier with a first traffic flow identifier.
-
-
63. The non-transitory computer-readable storage medium recited in claim 62, wherein the first application identifier is an application name.
-
64. The non-transitory computer-readable storage medium recited in claim 62, wherein the first application identifier is associated with (a) two or more applications, (b) two or more application components, (c) software comprising a JAR file, (d) software comprising applications, or functions or processes that coordinate with one another to implement a composite process, function or application, or (e) a combination of any of (a) through (d).
-
65. The non-transitory computer-readable storage medium recited in claim 62, wherein the first application identifier is a UID.
-
66. The non-transitory computer-readable storage medium recited in claim 62, wherein the first application identifier is an application credential.
-
67. The non-transitory computer-readable storage medium recited in claim 62, wherein the first application identifier is an application identification tag, a thread identifier, a process identifier, or a combination of these.
-
68. The non-transitory computer-readable storage medium recited in claim 62, wherein the first traffic flow identifier is first socket identifier.
-
69. The non-transitory computer-readable storage medium recited in claim 62, wherein the first socket identifier is a socket label, a socket tuple, a socket address, a socket port, or a flow tag.
-
70. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to maintain the first association between the first software application and the first traffic flow when one or more traffic processes are implemented to process the first traffic flow.
-
71. The non-transitory computer-readable storage medium recited in claim 1, wherein the registered first association between the first software application and the first traffic flow results in the first traffic flow not being solely associated with the proxy agent.
-
72. The non-transitory computer-readable storage medium recited in claim 1, wherein the registered first association between the first software application and the first traffic flow replaces or augments an association between the proxy agent and the first traffic flow.
-
73. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises register a virtual flow tag.
-
74. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises register a literal flow tag.
-
75. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to:
-
provide a user interface, and obtain at least an aspect of the first service policy from the user interface.
-
-
76. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to:
-
establish a secure connection with a network element, and obtain at least an aspect of the first service policy from the network element.
-
-
77. The non-transitory computer-readable storage medium recited in claim 1, wherein at least assist in implementing a first service policy comprises determine an accounting of traffic over the first communication network that is associated with the first software application.
-
78. The non-transitory computer-readable storage medium recited in claim 77, wherein the one or more software agents are further configured to:
-
provide a user interface, present information about the accounting through the user interface.
-
-
79. The non-transitory computer-readable storage medium recited in claim 77, wherein the one or more software agents are further configured to:
-
establish a secure communication link with a network element, and provide information about the accounting to the network element over the secure communication link.
-
-
80. The non-transitory computer-readable storage medium recited in claim 77, wherein the one or more software agents are further configured to determine a classification of the first traffic flow, and wherein the accounting is based on the classification.
-
81. The non-transitory computer-readable storage medium recited in claim 80, wherein the classification is foreground application operation, background application operation, a first type of network, a second type of network, or a combination of these.
-
82. The non-transitory computer-readable storage medium recited in claim 1, wherein at least assist in implementing a first service policy comprises at least assist in implementing a traffic control for traffic over the first communication network that is associated with the first software application.
-
83. The non-transitory computer-readable storage medium recited in claim 82, wherein the one or more software agents are further configured to:
-
provide a user interface, and obtain at least an aspect of the traffic control from the user interface.
-
-
84. The non-transitory computer-readable storage medium recited in claim 82, wherein the one or more software agents are further configured to:
-
establish a secure connection with a network element, and obtain at least an aspect of the traffic control from the network element.
-
-
85. The non-transitory computer-readable storage medium recited in claim 82, wherein the one or more software agents are further configured to determine a classification of the first traffic flow, and wherein the traffic control is based on the classification.
-
86. The non-transitory computer-readable storage medium recited in claim 85, wherein the classification is foreground application operation, background application operation, a first type of network, a second type of network, or a combination of these.
-
87. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to provide a user interface, and wherein at least assist in implementing a first service policy comprises assist in presenting a notification through the user interface, the notification providing information associated with traffic over the first communication network that is associated with the first software application.
-
88. The non-transitory computer-readable storage medium recited in claim 87, wherein the one or more software agents are further configured to determine the classification of the first traffic flow, and wherein the notification is dependent on the classification.
-
89. The non-transitory computer-readable storage medium recited in claim 88, wherein the classification is foreground application operation, background application operation, a first type of network, a second type of network, or a combination of these.
-
90. The non-transitory computer-readable storage medium recited in claim 26, wherein manage at least an aspect of the first traffic flow on behalf of the first software application comprises communicate at least a portion of the first traffic flow without involvement of the first software application.
-
91. The non-transitory computer-readable storage medium recited in claim 26, wherein manage at least an aspect of the first traffic flow on behalf of the first software application comprises play or display at least a portion of the first traffic flow through a user interface without involvement of the first software application.
-
92. The non-transitory computer-readable storage medium recited in claim 1, wherein the proxy agent is configured to append a field to a packet in the first traffic flow.
-
93. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents comprises a tagging engine and a firewall function, the firewall function configured to establish, maintain, or implement a table of filter rules in a kernel or in the traffic stack, and wherein register a first association between the first software application and a first traffic flow comprises:
-
provide, by the tagging engine to the firewall function, information that identifies the first software application, the first traffic flow, or both the first software application and the first traffic flow, and identify, by the firewall function, the first traffic flow based on the information that identifies the first software application, the first traffic flow, or both the first software application and the first traffic flow.
-
-
94. The non-transitory computer-readable storage medium recited in claim 93, wherein the information that identifies the first software application comprises an application name, a UID, an identification tag, a flow identifier, a process identifier, an application credential, or a combination of these.
-
95. The non-transitory computer-readable storage medium recited in claim 1, wherein the first service policy assists in determining an accounting of usage of the first communication network associated with the first application, and wherein assist in implementing a first service policy based on the registered first association between the first software and the first traffic flow comprises:
-
classify, map, or tag the first traffic flow as being associated with the first software application rather than the proxy agent, monitor an amount of data communicated over the first traffic flow, and include the amount of data communicated over the first traffic flow in the accounting.
-
-
96. The non-transitory computer-readable storage medium recited in claim 1, wherein the first service policy comprises a traffic control policy associated with the first software application, and wherein a first subset of the one or more software agents includes a network policy manager agent configured to cause one or more traffic filter parameters to be provided to a second subset of the one or more software agents configured to use the one or more traffic filter parameters to assist in implementing the traffic control policy, wherein the one or more traffic filter parameters include (a) information identifying the first software application, information identifying the first traffic flow, or a combination of these, and (b) a traffic control action or setting.
-
97. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents comprise a network policy manager and a firewall, and wherein at least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow comprises:
-
provide, by the network policy manager to the firewall, filtering information, and filter, by the firewall, the first traffic flow based on the filtering information.
-
-
98. The non-transitory computer-readable medium recited in claim 97, wherein filter, by the firewall, the first traffic flow based on the filtering information comprises block the first traffic flow.
-
99. The non-transitory computer-readable medium recited in claim 97, wherein filter, by the firewall, the first traffic flow based on the filtering information comprises allow the first traffic flow.
-
100. The non-transitory computer-readable storage medium recited in claim 1, wherein the first service policy comprises one or more settings.
-
101. The non-transitory computer-readable storage medium recited in claim 1, wherein at least an aspect of the first service policy is different when the first software application is in a background of user interaction than when the first software application is in a foreground of user interaction.
-
102. The non-transitory computer-readable storage medium recited in claim 1, wherein at least an aspect of the service policy is different when the first communication network is a first network type than when the first communication network is a second network type.
-
103. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents further comprise a classification and enforcement agent, a usage/classification reconciliation agent, a firewall agent, a traffic tagging agent, or a combination of these configured to assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow.
-
104. The non-transitory computer-readable storage medium recited in claim 1, wherein the first service policy comprises a control policy.
-
105. The non-transitory computer-readable storage medium recited in claim 104, wherein at least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow comprises block the first traffic flow, restrict the first traffic flow, throttle the first traffic flow, delay the first traffic flow, aggregate and hold the first traffic flow, impose a limit on the first traffic flow, or a combination of these.
-
106. The non-transitory computer-readable storage medium recited in claim 1, wherein the first service policy comprises a notification policy.
-
107. The non-transitory computer-readable storage medium recited in claim 106, wherein the non-transitory computer-readable storage medium is embodied in a communication device, and wherein at least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow comprises present a notification through a user interface of the communication device.
-
108. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises information about the first software application or the first traffic flow.
-
109. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises service usage information associated with the first software application or the first traffic flow.
-
110. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises information about a cost associated with the first software application or the first traffic flow.
-
111. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises information about a limit associated with the first software application or the first traffic flow.
-
112. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises an option to associate a control policy with the first software application.
-
113. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises an option to modify a control policy applicable to the first software application.
-
114. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises a projected service usage associated with the first software application.
-
115. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises a warning.
-
116. The non-transitory computer-readable storage medium recited in claim 107, wherein the notification comprises a warning that usage of the first software application could result in network service usage that exceeds a limit imposed by a service plan associated with the communication device.
-
117. The non-transitory computer-readable storage medium recited in claim 107, wherein at least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow further comprises obtain a user input in response to the notification.
-
118. The non-transitory computer-readable storage medium recited in claim 117, wherein the user input comprises an override.
-
119. The non-transitory computer-readable storage medium recited in claim 117, wherein the user input comprises a request to modify a control applicable to the first software application.
-
120. The non-transitory computer-readable storage medium recited in claim 117, wherein the notification comprises a service plan offer, and wherein the user input comprises a response to the service plan offer.
-
121. The non-transitory computer-readable storage medium recited in claim 117, wherein the user input comprises an acknowledgment.
-
122. The non-transitory computer-readable storage medium recited in claim 1, wherein the first service policy comprises an accounting policy.
-
123. The non-transitory computer-readable storage medium recited in claim 122, wherein at least assist in implementing a first service policy based on the registered first association between the first software application and the first traffic flow comprises create an accounting record based on the first traffic flow.
-
124. The non-transitory computer-readable storage medium recited in claim 123, wherein the one or more software agents are further configured to send the accounting record to a network element communicatively coupled to the one or more software agents.
-
125. The non-transitory computer-readable storage medium recited in claim 123, wherein the accounting record assists in charging an entity for service usage associated with the first traffic flow.
-
126. The non-transitory computer-readable storage medium recited in claim 123, wherein the first traffic flow comprises sponsored traffic, the sponsored traffic not charged to a user service plan.
-
127. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents are further configured to obtain the first service policy.
-
128. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises:
-
determine a network state associated with the first communication network, and based on the network state, determine the first service policy.
-
-
129. The non-transitory computer-readable storage medium recited in claim 128, wherein the network state associated with the first communication network comprises a network busy state, a network availability state, or a network quality-of-service (QoS) state.
-
130. The non-transitory computer-readable storage medium recited in claim 128, wherein the service policy comprises a control policy.
-
131. The non-transitory computer-readable storage medium recited in claim 128, wherein determine a network state associated with the first communication network comprises obtain information from a network element communicatively coupled to the one or more software agents.
-
132. The non-transitory computer-readable storage medium recited in claim 128, wherein the network state associated with the first communication network comprises a time of day or a type of network.
-
133. The non-transitory computer-readable storage medium recited in claim 132, wherein the type of network comprises cellular, 3G cellular, 4G cellular, WiFi, home, roaming, or a combination of these.
-
134. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises determine that the first software application is in a background of user interaction.
-
135. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises determine that the first software application is in a foreground of user interaction.
-
136. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises determine a state of the first software application.
-
137. The non-transitory computer-readable storage medium recited in claim 136, wherein the state of the first software application comprises an indication that (a) the first software application is running in a foreground, (b) the first software application is running in a background, or (c) the first software application is shutting down or has shut down.
-
138. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises determine whether a service plan includes a limit on service usage associated with the first software application.
-
139. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises obtain a user input associated with the first software application.
-
140. The non-transitory computer-readable storage medium recited in claim 139, wherein the user input comprises an override or an acknowledgment of an overage.
-
141. The non-transitory computer-readable storage medium recited in claim 127, wherein obtain the first service policy comprises determine a time of day.
-
142. The non-transitory computer-readable storage medium recited in claim 127, wherein the non-transitory computer-readable storage medium is embodied in a communication device, and wherein obtain the first service policy comprises determine a device type of the communication device.
-
143. The non-transitory computer-readable storage medium recited in claim 142, wherein the device type is a smart phone, a laptop, a netbook, an electronic book reader, or a combination of these.
-
144. The non-transitory computer-readable storage medium recited in claim 127, wherein the non-transitory computer-readable storage medium is embodied in a communication device, and wherein obtain the first service policy comprises determine whether the communication device is within a family plan or a multi-user plan.
-
145. The non-transitory computer-readable medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises:
-
determine that the first software application is requesting or conducting a data transfer to or from a network resource through the proxy agent, store an application identifier identifying the first software application, and store a network resource identifier identifying the network resource.
-
-
146. The non-transitory computer-readable medium recited in claim 145, wherein the proxy agent is a proxy service manager or a media service manager.
-
147. The non-transitory computer-readable medium recited in claim 145, wherein the proxy service manager is a library function.
-
148. The non-transitory computer-readable medium recited in claim 147, wherein the library function is an Android media service library function, a media operating system library function, an Android.net library function, an Apache library function, a Java.net library function, or a combination of these.
-
149. The non-transitory computer-readable storage medium recited in claim 1, wherein the one or more software agents comprise an activity manager, and wherein register a first association between the first software application and a first traffic flow comprises:
-
determine, by the activity manager, that the first software application initiated the first traffic flow, register, by the activity manager, an application identifier for the first software application and a socket identifier for the first traffic flow, and based on the registered application identifier and the registered socket identifier, determine that the first traffic flow is associated with the first software application.
-
-
150. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises one or both of:
-
apply a first tag to the first traffic flow at an application program interface between the first software application and the proxy agent, apply a second tag to the first traffic flow at a network interface between the proxy agent and the traffic stack.
-
-
151. The non-transitory computer-readable storage medium recited in claim 150, wherein the first tag comprises an application name, application identifier, process identifier, thread identifier, or UID.
-
152. The non-transitory computer-readable storage medium recited in claim 150, wherein the second tag comprises (a) an application process identifier, thread identifier, or UID, and (b) a traffic flow identifier.
-
153. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises:
associate the first traffic flow at a first side of a traffic processing function with the first traffic flow at a second side of the traffic processing function.
-
154. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises:
-
apply a tag to the first traffic flow at a first side of a traffic processing function, and identify or maintain the tag at a second side of the traffic processing function.
-
-
155. The non-transitory computer-readable storage medium recited in claim 154, wherein the tag comprises or more of an IP address, a TCP-IP identifier, a layer 7 identifier, an application identifier, a UID, a flow identifier, or a socket identifier.
-
156. The non-transitory computer-readable storage medium recited in claim 1, wherein register a first association between the first software application and a first traffic flow comprises:
-
determine that a packet in the first traffic flow includes a proxy communication, inspect at least a portion of the packet, determine a classification of the first software application based on the inspection, and associate the classification with the first software application.
-
-
157. The non-transitory computer-readable storage medium recited in claim 1, wherein register the first association between the first software application and the first traffic flow comprises:
-
determine a tag associated with the first traffic flow, and register the tag as being associated with the first software application.
-
-
158. The non-transitory computer-readable storage medium recited in claim 1, wherein the machine-executable instructions comprise operating system program code that, when executed by the one or more processors, causes the one or more processors to implement an operating system that implements the traffic stack, the proxy agent, and the one or more software agents.
-
2. The non-transitory computer-readable storage medium recited in claim 1, wherein, when executed by the one or more processors, the machine-executable instructions further cause the one or more processors to:
-
Specification
- Resources
-
Current AssigneeHeadwater Research LLC (Greg Raleigh)
-
Original AssigneeHeadwater Partners I LLC (Greg Raleigh)
-
InventorsRaleigh, Gregory G., Green, Jeffrey, Lavine, James, Nguyen, Phuong
-
Primary Examiner(s)RUDY, ANDREW J
-
Application NumberUS13/374,959Publication NumberTime in Patent Office686 DaysField of Search709/203, 709/217, 709/223, 709/224, 709/201, 709/232, 709/239, 705/26.1, 706/45, 707/600, 707/694, 707/705, 726/2, 726/11, 726/22US Class Current709/224CPC Class CodesH04L 12/14 Charging , metering or bill...H04L 41/0893 Assignment of logical group...H04L 41/0894 Policy-based network config...H04L 41/5003 Managing SLA; Interaction b...H04L 41/5019 Ensuring fulfilment of SLAH04L 41/5025 by proactively reacting to ...H04L 41/5029 Service quality level-based...H04L 41/5032 Generating service level re...H04L 43/026 using flow identificationH04M 15/00 Arrangements for metering, ...H04M 15/58 based on statistics of usag...H04M 15/66 Policy and charging systemH04M 15/8016 based on quality of service...H04M 2215/0188 Network monitoring; statist...H04W 4/24 Accounting or billing