# Patent

## Title
Packet filtering based on dynamic usage information

## Abstract

A receiver of network data dynamically filters packets by packet type from a network device CPU based on usage information, such as time, day, location, and feature (e.g., “video” or “application”) selection.

## Background
I. FIELD OF THE INVENTION
This application relates to filtering network packets based on dynamic usage information associated with a receiving networked device.
II. BACKGROUND OF THE INVENTION
Networked devices such as computers can receive a great amount of data from the network. The processors of such devices clearly must process the data. As understood herein, much of the received data might not be required depending on the ambient usage of the devices, but must nonetheless be processed by the receiving processor, and this is undesirable, particularly in the case of portable battery-powered devices.
SUMMARY OF THE INVENTION
A receiver of network data includes a processor causing the receiver to dynamically filter network packets by packet type from a network device central processing unit (CPU) based on usage information.
The usage information may include, e.g., time, day of the week location of the network device, feature selection, or some combination thereof. The receiver can be implemented in the network device and if desired the receiver wirelessly receives packets from the network. The network device can be battery powered.
In another aspect, a method includes receiving dynamic usage information pertaining to a network device, and based on the dynamic usage information, determining at least one desired packet type from a network. The method passes, from a packet receiver of the network device to a central processing unit (CPU) of the network device, only the packets determined to be desired.
In another aspect, an apparatus has a housing, a data receiver in the housing, and a central processor unit (CPU) in the housing and receiving data from the data receiver. The CPU has at least first and second operational states. The data receiver receives packets having a first type and packets having a second type and sends packets having the first type to the CPU but does not send packets having the second type to the CPU when the CPU is in the first operational state. On the other hand, the data receiver does not send packets having the first type to the CPU and sends packets having the second type to the CPU when the CPU is in the second operational state.
The details of the present invention, both as to its structure and operation, can best be understood in reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which:



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an example network device with filtering receiver; and
FIG. 2 is a flow chart of example logic that can be implemented by the device of FIG. 1.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Referring initially to FIG. 1, a network device 10 may have a lightweight portable housing 12 containing a host central processing unit (CPU) 14 that can be implemented by, e.g., a suitable computer processor. The CPU 14 can receive user input from a user input device 16, such as but not limited one or more of a keyboard, mouse, keypad, trackball, voice recognition module, etc. The CPU 14 may also receive, in some embodiments, position input from a position receiver 18 such as but not limited to a global positioning satellite (GPS) receiver, and from a clock 20. The CPU 14 may output video data on a monitor 22 such as a computer monitor, flat panel display, or even cathode ray tube or other monitor. The CPU 14 can also output audio data on one or more speakers 24.
As shown in FIG. 1, the CPU 14 may receive data from content source(s) 26 over a network 28 such as but not limited to the Internet by means of a data receiver 30 with receiver processor 32. The receiver 30 may be a wired or wireless receiver that receives data packets from the network 28, with the packets typically bearing tags indicating their data type. Thus, the receiver 30 may include, without limitation, a wired modem or a wireless modem that may receive Bluetooth signals or WiFi signals. The receiver 30 may be implemented as a receiver module or integrated circuit, for example.
The CPU 14 may access a tangible computer readable storage medium 34 to store data thereon and to access computer instructions stored thereon to execute the logic herein. The medium 34 may represent, without limitation, any one or a combination of solid state storage, disk storage, removable and non-removable storage, etc.
As shown in FIG. 1, the components of the network device 10 may be powered by one or more direct current (DC) batteries 36, for portability. The network device 10 may also receive alternating current (AC) power from the AC grid through an AC-DC converter 38. In non-limiting implementations the network device 10 may be implemented as a portable computer such as a laptop or notebook computer, a personal digital assistant, or a wireless telephone.
FIG. 2 illustrates logic that may be employed by the device 10 shown in FIG. 1. Commencing at block 40, dynamic usage information pertaining to the network device 10 is received. In one implementation this usage information is received by the CPU 14. The dynamic usage information may include time of day and day of the week from the clock 20, location of the device 10 from the position receiver 18, and user preference as indicated by input received from the user input device 16. As an example of the latter, the user may have opened a “video” feature of the device 10.
Moving to block 42, based on the dynamic usage information, desired packet types from the network 28 are determined. For example, if the user has selected a “video” feature, it is determined at block 42 that video packets are desired but not, e.g., binary application packets, whereas if the user changes to, e.g., an “application” feature selection, the desired packet types may include binary application packets but not video packets. As another example, only binary application packet types might be determined to be desired at block 42 if the time of day indicates operation during business hours, whereas the desired packet type might switch to video after business hours. As yet another example, only binary application packet types might be determined to be desired at block 42 if the clock 20 indicates operation during a weekday, whereas the desired packet type might switch to video on the weekend. As yet another example, if the position receiver 18 indicates a location at work or in an airport, only binary application packets, but not video packets, might be determined to be desired at block 42. Certain packet types such as, for example, emergency packet types might always be included in the desired type(s) at block 42.
Proceeding to block 44, only the packets determined to be desired at block 42 are passed from the receiver 30 to the CPU 14. In one embodiment, the CPU 14 undertakes the logic at block 42 and sends a signal to the receiver 30 at block 44 indicating the desired packet types, with the receiver processor 32 then passing to the CPU 14, based on, e.g., packet tags indicating packet type, only packets of the desired type(s) to the CPU 14. Packets that are not of the desired type(s) are in effect filtered by the receiver 30 from the information passed to the CPU 14.
In other implementations, the dynamic usage information at block 40 may be sent to the receiver processor 32, which performs the logic of block 42 and in response forwards only desired packets to the CPU 14 at block 44.
In any case, the logic of FIG. 2 loops, so that, for instance, if the user has selected the video feature and the receiver 30 consequently passes to the CPU 14 video packets but not binary application packets, and then the user selects an “application” feature, the receiver 30 stops sending video packets to the CPU 14 and begins sending binary application packets. The filtering function of the receiver 30 likewise can dynamically change based on changes in time, day, location in accordance with principles above.
While the particular PACKET FILTERING BASED ON DYNAMIC USAGE INFORMATION is herein shown and described in detail, it is to be understood that the subject matter which is encompassed by the present invention is limited only by the claims.

## Claims

1. A method comprising:
receiving dynamic usage information pertaining to a network device, wherein the usage information is established by at least one of time of day, day of the week, location of the network device;
based on the dynamic usage information, determining at least one desired packet type from a network; and
passing, from a packet receiver of the network device to a central processing unit (CPU) of the network device, only the packets determined to be desired, wherein if the user selects a “video” feature, the desired packet type includes video packets but not binary application packets, wherein if the user changes to an “application” feature selection, the desired packet type includes binary application packets but not video packets.

2. The method of claim 1, wherein the usage information includes time of day.

3. The method of claim 1, wherein the usage information includes day of the week.

4. The method of claim 1, wherein the usage information includes location of the network device.

5. The method of claim 1, wherein the usage information includes user preference as indicated by input received from a user input device.

6. The method of claim 5, wherein the user preference is a “video” feature or an “application” feature of the network device.

7. The method of claim 1, wherein at least a first packet type is always passed to the CPU regardless of the usage information.

8. The method of claim 1, wherein the CPU executes the receiving and determining acts.

9. The method of claim 1, wherein the packet receiver executes the receiving and determining acts.