IP Library Granted Patent US 10,326,675
Granted Patent B2
US 10,326,675 · App. 15/586,118 · Granted Jun 18, 2019

Flow tagging for service policy implementation

Inventors: Gregory G. Raleigh (Woodside, CA); Jeffrey Green (Sunnyvale, CA); James Lavine (Corte Madera, CA); Vien-Phuong Nguyen (Newark, CA)
Assignee: Headwater Research LLC
H04L43/0876H04L41/0893H04L43/062H04L43/0888H04L47/14H04L47/19H04L47/806H04L65/601H04L65/607H04L67/2804H04W4/24H04W24/08H04L12/1485H04L41/0896H04L41/5019H04L41/5029
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,326,675
App. No.
15/586,118
Granted
Jun 18, 2019
Kind
B2
Abstract

A flow tagging technique includes tagging a data flow at a plurality of points in the data flow. For example, the data flow can be tagged at a socket and at a proxy manager API. By tagging the data flow at multiple points, it becomes possible to map network service usage activities to the appropriate initiating applications.

Claims (28)

1. A method of operating a wireless end-user device, the method comprising:

providing Internet data connectivity via a wireless network;

providing an Application Programming Interface (API), callable by each of a plurality of device applications, the API accepting a network resource identifier for a media object;

configuring the API to, in response to a call by any particular one of the plurality of device applications, the call identifying a particular network resource identifier, invoke a software service, the software service

managing one or more data transfer connections to retrieve data via the wireless network for a particular media object associated with the particular network resource identifier,

receiving user interface control inputs to allow a user to control playback of the particular media object from the data, and

playing the particular media object via a user interface, responsive to the user interface control inputs;

classifying the one or more data transfer connections as associated with the particular one of the device applications calling the API; and,

responsive to the classifying, attributing wireless network data transfer usage amounts for the one or more data transfer connections to the particular one of the device applications; and

tracking aggregate wireless network data transfer usage amounts for each of the plurality of device applications, such that upon attributing wireless network data transfer usage amounts for the one or more data transfer connections to the particular one of the device applications, an aggregate wireless network data transfer usage amount for the particular one of the device applications is updated to include the wireless data transfer usage amounts for the one or more data transfer connections.

2. The method of claim 1 , further comprising enforcing an application-specific usage control, associated with the particular one of the plurality of device applications, on the one or more data transfer connections, based on classifying the one or more data transfer connections as associated with the particular one of the device applications.

3. The method of claim 1 , wherein classifying the one or more data transfer connections as associated with the particular one of the device applications calling the API comprises identifying at least one of an application name, an application identifier, or a process identifier for the particular one of the device applications.

4. The method of claim 3 , wherein the particular network resource identifier identifies a source of the data to be transferred, a proxy to the source of the data to be transferred, or the media object to be transferred.

5. The method of claim 4 , wherein attributing wireless network data transfer usage amounts comprises storing an entry comprising the at least one of the application name, the application identifier, or the process identifier, the stored entry further comprising information about the particular network resource identifier.

6. The method of claim 5 , wherein the classifying is performed by the software service.

7. The method of claim 6 , wherein the software service is one of a plurality of different media service software services invokable by the API, the method further comprising the API selecting the software service based on a media type of the media object.

8. The method of claim 4 , wherein the particular network resource identifier comprises one or more of an Internet Protocol address, a Uniform Resource Locator, a remote file name/address, a stream name, and an object name.

9. The method of claim 4 , wherein managing one or more data transfer connections to retrieve data via the wireless network for a particular media object associated with the network resource identifier comprises interfacing with a device networking stack to map the network resource identifier to the one or more data transfer connections, the one or more data transfer connections communicated through the device networking stack.

10. The method of claim 9 , wherein managing one or more data transfer connections to retrieve data via the wireless network for a particular media object associated with the network resource identifier further comprises managing, for the one or more data transfer connections, a resulting flow of data between a network accessible through the wireless network and the network stack.

11. The method of claim 10 , wherein classifying the one or more data transfer connections as associated with the particular one of the device applications calling the API further comprises monitoring and recording network data flow identifiers for the one or more data transfer connections.

12. The method of claim 11 , wherein the network data flow identifiers comprise at least one of a data flow tag, an Internet Protocol address, a Transmission Control Protocol identifier, an application layer identifier, and a socket tuple.

13. The method of claim 1 , wherein the API comprises a first API, the method further comprising, for at least a first one of the plurality of device applications, providing a second API that allows the first one of the plurality of device applications to launch a data transfer request and manage network data transfers for the data transfer request through a network stack on the wireless end-user device, independent of the first API.

14. The method of claim 1 , wherein receiving user interface control inputs to allow a user to control playback of the particular media object from the data comprises:

returning to the particular one of the plurality of device applications, as a result of the API call, a media object handle descriptor; and

accepting, from the particular one of the plurality of device applications, commands associated with the media object handle descriptor, as the user interface control inputs.

15. The method of claim 1 , further comprising:

storing the tracked aggregate wireless network data transfer usage amounts in a local database, the stored data transfer usage amounts classified by device application; and

retrieving from the local database and displaying the stored data transfer usage amounts, classified by application, to a user via the user interface.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2017
From: RALEIGH, GREGORY G.; LAVINE, JAMES; GREEN, JEFFREY; NGUYEN, PHUONG D.
To: HEADWATER PARTNERS I LLC
Reel/Frame 042232/0448 →
MERGER AND CHANGE OF NAME Recorded May 3, 2017
From: HEADWATER PARTNERS I LLC; HEADWATER MANAGEMENT LLC
To: HEADWATER RESEARCH LLC
Reel/Frame 042232/0462 →
Continuity (56)
Continuation 14339110 · Jul 23, 2014
Continuation 14338807 · Jul 23, 2014
Continuation 14098527 · Dec 5, 2013
Continuation 13374959 · Jan 24, 2012
Continuation In Part 12695019 · Jan 27, 2010
Continuation In Part 12695020 · Jan 27, 2010
Continuation In Part 12694445 · Jan 27, 2010
Continuation In Part 12694451 · Jan 27, 2010
Continuation In Part 12694455 · Jan 27, 2010
Continuation In Part 12695980 · Jan 28, 2010
Continuation In Part 13229580 · Sep 9, 2011
Continuation In Part 13237827 · Sep 20, 2011
Continuation In Part 13239321 · Sep 21, 2011
Continuation In Part 13248028 · Sep 28, 2011
Continuation In Part 13247998 · Sep 28, 2011
Continuation In Part 13248025 · Sep 28, 2011
Continuation In Part 13253013 · Oct 4, 2011
Continuation In Part 13309556 · Dec 1, 2011
Continuation In Part 13309463 · Dec 1, 2011
Continuation In Part 13134028 · May 25, 2011
Continuation In Part 13134005 · May 25, 2011
Continuation In Part 12695021 · Jan 27, 2010
Continuation In Part 12380780 · Mar 2, 2009
Continuation In Part 12380780 · Mar 2, 2009
Continuation In Part 12380778 · Mar 2, 2009
Provisional Application 61435564 · Jan 24, 2011
Provisional Application 61472606 · Apr 6, 2011
Provisional Application 61550906 · Oct 24, 2011
Provisional Application 61589830 · Jan 23, 2012
Provisional Application 61264126 · Nov 24, 2009
Provisional Application 61270353 · Jul 6, 2009
Provisional Application 61275208 · Aug 25, 2009
Provisional Application 61237753 · Aug 28, 2009
Provisional Application 61264120 · Nov 24, 2009
Provisional Application 61348022 · May 25, 2010
Provisional Application 61381159 · Sep 9, 2010
Provisional Application 61381162 · Sep 9, 2010
Provisional Application 61384456 · Sep 20, 2010
Provisional Application 61387547 · Oct 4, 2010
Provisional Application 61385020 · Sep 21, 2010
Provisional Application 61387243 · Sep 28, 2010
Provisional Application 61387247 · Sep 28, 2010
Provisional Application 61407358 · Oct 27, 2010
Provisional Application 61418507 · Dec 1, 2010
Provisional Application 61418509 · Dec 1, 2010
Provisional Application 61420727 · Dec 7, 2010
Provisional Application 61422565 · Dec 13, 2010
Provisional Application 61422572 · Dec 13, 2010
Provisional Application 61422574 · Dec 13, 2010
Provisional Application 61252151 · Oct 15, 2009
Provisional Application 61252153 · Oct 15, 2009
Provisional Application 61206354 · Jan 28, 2009
Provisional Application 61206944 · Feb 4, 2009
Provisional Application 61207393 · Feb 10, 2009
Provisional Application 61207739 · Feb 13, 2009
Related Publication 20170366433A1 · Dec 21, 2017
Cited By (2)
US 12,457,275 US 12,596,584