U.S. patent application number 12/618677 was filed with the patent office on 2010-11-18 for systems and methods for controlling device network access through a wireless router.
This patent application is currently assigned to NOVATEL WIRELESS INC.. Invention is credited to Slim Souissi, John Wu.
Application Number | 20100290390 12/618677 |
Document ID | / |
Family ID | 43085588 |
Filed Date | 2010-11-18 |
United States Patent
Application |
20100290390 |
Kind Code |
A1 |
Souissi; Slim ; et
al. |
November 18, 2010 |
SYSTEMS AND METHODS FOR CONTROLLING DEVICE NETWORK ACCESS THROUGH A
WIRELESS ROUTER
Abstract
A wireless router comprises a wide area network radio interface
configured to enable communications between a wide area network and
the wireless router; a local area network radio interface
configured to enable communications between the wireless router and
a plurality of computing device; memory configured to store
instructions; and a processor coupled with memory, the instructions
configured to cause the processor to perform the following in
response to an activation of the power input: automatically
establish a data connection with a base station associated with the
wide area network over the wide area network, automatically
establish a data connection with the plurality of computing devices
over the local area network, automatically discover, for each of
the plurality of device, a device type, determine whether the
device type is an authorized device type, and allow the associated
computing device to access the wide area network only if the device
type is an authorized device type.
Inventors: |
Souissi; Slim; (San Diego,
CA) ; Wu; John; (San Diego, CA) |
Correspondence
Address: |
PROCOPIO, CORY, HARGREAVES & SAVITCH LLP
525 B STREET, SUITE 2200
SAN DIEGO
CA
92101
US
|
Assignee: |
NOVATEL WIRELESS INC.
San Diego
CA
|
Family ID: |
43085588 |
Appl. No.: |
12/618677 |
Filed: |
November 13, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12537970 |
Aug 7, 2009 |
|
|
|
12618677 |
|
|
|
|
61178926 |
May 15, 2009 |
|
|
|
Current U.S.
Class: |
370/328 ;
370/401 |
Current CPC
Class: |
H04W 88/08 20130101;
H04W 12/088 20210101; H04W 40/22 20130101; H04W 40/24 20130101;
H04W 48/02 20130101; Y02D 30/70 20200801; H04L 63/0236 20130101;
H04W 84/12 20130101; H04W 76/10 20180201; H04L 63/0876 20130101;
H04W 12/06 20130101 |
Class at
Publication: |
370/328 ;
370/401 |
International
Class: |
H04W 40/00 20090101
H04W040/00 |
Claims
1. A wireless router, comprising: a wide area network radio
interface configured to enable communications between a wide area
network and the wireless router; a local area network radio
interface configured to enable communications between the wireless
router and one or more computing device; memory configured to store
instructions; and a processor coupled with memory, the instructions
configured to cause the processor to perform the following:
establish a data connection with a base station associated with the
wide area network over the wide area network, establish a data
connection with a computing device over the local area network,
discover, the computing device, determine whether the computing
device is an authorized device, and allow the computing device to
access the wide area network only if the device is an authorized
device.
2. The wireless router of claim 1, wherein the wide area network is
a cellular type network.
3. The wireless router of claim 2, wherein the cellular network is
a WiMAX, UMTS, HSPA, HSPA+, LTE or DOrA network.
4. The wireless router of claim 1, wherein the local area network
is a WiFi network.
5. The wireless router of claim 1, wherein the local area network
is a wireless USB network or an Ultarwideband network, or a Zigbee
network.
6. The wireless router of claim 1, wherein the wide area data
connection is a Point-to-Point (PPP) connection.
7. The wireless router of claim 1, wherein the local area network
data connection is a TCP/IP connection.
8. The wireless router of claim 1, wherein the memory is further
configured to store authentication procedures for determining
whether a computing device is attempting to access an authorized
service.
9. The wireless router of claim 8, wherein the processor is further
configured to allow the computing device to access the service only
if the service is an authorized service.
10. The wireless router of claim 1, wherein the wide area network
is configured to provision a Quality of Service (QoS) to the
computing device based on the computing device.
11. The wireless router of claim 10, wherein the QoS can be at
least one of the following: time delay of transmission, bandwidth
allocation, or priority of packets.
12. The wireless router of claim 9, wherein the wide area network
is configured to provision a Quality of Service (QoS) to the
computing device based on at least one of the computing device and
the service being requested.
13. The wireless router of claim 12, wherein the QoS can be at
least one of the following: time delay of transmission, bandwidth
allocation, or priority of packets.
14. The wireless router of claim 1, wherein discovering the
computing device comprises discovering the computing device based
on a Media Access (MAC) address.
15. The wireless router of claim 14, wherein the memory is further
configured to store authorized MAC addresses, and wherein the
processor is further configured to use the stored authorized MAC
addresses to discover the computing device.
16. The wireless router of claim 14, wherein authorized Mac
addresses are stored on a server interfaced with the wireless
router, and wherein the processor is further configured to use the
stored authorized MAC addresses to discover the computing
device.
17. The wireless router of claim 1, wherein discovering the
computing device comprises discovering the computing device based
on a browser used by the computing device.
18. The wireless router of claim 1, wherein discovering the
computing device comprises discovering the computing device based
on a device identifier received from the computing device.
19. The wireless router of claim 14, wherein the memory is further
configured to store authorized device identifiers, and wherein the
processor is further configured to use the stored authorized device
identifiers to discover the computing device.
20. The wireless router of claim 14, wherein authorized device
identifiers are stored on a server interfaced with the wireless
router, and wherein the processor is further configured to use the
stored authorized device identifiers to discover the computing
device.
21. The wireless router of claim 1, wherein the processor is
further configured to deactivate the wide area network radio
interface when a lack of traffic is detected over the local area
network radio interface.
22. A wireless router, comprising: a wide area network radio
interface configured to enable communications between a wide area
network and the wireless router; a local area network radio
interface configured to enable communications between the wireless
router and one or more computing devices; memory configured to
store instructions; and a processor coupled with memory, the
instructions configured to cause the processor to perform the
following: establish a data connection with a base station
associated with the wide area network over the wide area network,
establish a data connection with a computing device over the local
area network, discover a service being requested by the computing
device, determine whether the service is an authorized service, and
allow the computing device to access the service only if the
service is an authorized service.
23. The wireless router of claim 22, wherein the wide area network
is a cellular type network.
24. The wireless router of claim 23, wherein the cellular network
is a WiMAX, UMTS, HSPA, HSPA+, LTE or DOrA network.
25. The wireless router of claim 23, wherein the local area network
is a WiFi network.
26. The wireless router of claim 22, wherein the local area network
is a wireless USB network or an Ultarwideband network, or a Zigbee
network.
27. The wireless router of claim 22, wherein the wide area data
connection is a Point-to-Point (PPP) connection.
28. The wireless router of claim 22, wherein the local area network
data connection is a TCP/IP connection.
29. The wireless router of claim 22, wherein the memory is further
configured to store authentication procedures for determining
whether a computing device is an authorized computing device.
30. The wireless router of claim 29, wherein the processor is
further configured to allow the computing device to access the wide
area network only if the computing device is an authorized
computing device.
31. The wireless router of claim 22, wherein the wide area network
is configured to provision a Quality of Service (QoS) to the
computing device based on the service being requested.
32. The wireless router of claim 31, wherein the QoS can be at
least one of the following: time delay of transmission, bandwidth
allocation, or priority of packets.
33. The wireless router of claim 30, wherein the wide area network
is configured to provision a Quality of Service (QoS) to the
computing device based on at least one of the computing device and
the service being requested.
34. The wireless router of claim 33, wherein the QoS can be at
least one of the following: time delay of transmission, bandwidth
allocation, or priority of packets.
35. The wireless router of claim 22, wherein the wireless router is
a mobile, battery powered wireless router.
36. The wireless router of claim 22, wherein the service being
requested is discovered based on a service identifier.
37. The wireless router of claim 36, wherein the service identifier
is known to both the wireless router and the computing device.
38. The wireless router of claim 22, wherein discovering the
service being requested comprises analyzing data traffic between
the device and the wide area network and passing through the
wireless router.
39. A wireless router, comprising: a wide area network radio
interface configured to enable communications between a wide area
network and the wireless router; a local area network radio
interface configured to enable communications between the wireless
router and one or more computing devices running one or more
services; memory configured to store instructions; and a processor
coupled with memory, the instructions configured to cause the
processor to perform the following: establish a data connection
with a base station associated with the wide area network over the
wide area network, establish a data connection with a computing
device over the local area network, discover a service being run by
the computing device, determine whether the service is an
authorized service, and allow the computing device to access the
wide area network only if the service is an authorized service.
40. The wireless router of claim 39, wherein the wide area network
is a cellular type network.
41. The wireless router of claim 40, wherein the cellular network
is a WiMAX, UMTS, HSPA, HSPA+, LTE or DOrA network.
42. The wireless router of claim 39, wherein the local area network
is a WiFi network.
43. The wireless router of claim 39, wherein the local area network
is a wireless USB network or an Ultarwideband network, or a Zigbee
network.
44. The wireless router of claim 39, wherein the wide area data
connection is a Point-to-Point (PPP) connection.
45. The wireless router of claim 39, wherein the local area network
data connection is a TCP/IP connection.
46. The wireless router of claim 39, wherein the memory is further
configured to store authentication procedures for determining
whether a computing device is an authorized computing device.
47. The wireless router of claim 46, wherein the processor is
further configured to allow the computing device to access the wide
area network only if the computing device is an authorized
computing device.
48. The wireless router of claim 39, wherein the wide area network
is configured to provision a Quality of Service (QoS) to the
computing device based on the service being run by the computing
device.
49. The wireless router of claim 48, wherein the QoS can be at
least one of the following: time delay of transmission, bandwidth
allocation, or priority of packets.
50. The wireless router of claim 47, wherein the wide area network
is configured to provision a Quality of Service (QoS) to the
computing device based on at least one of the computing device and
the service being run by the computing device.
51. The wireless router of claim 50, wherein the QoS can be at
least one of the following: time delay of transmission, bandwidth
allocation, or priority of packets.
52. The wireless router of claim 39, wherein the wireless router is
a mobile, battery powered wireless router.
53. The wireless router of claim 39, wherein the service being run
is discovered based on a service identifier.
54. The wireless router of claim 53, wherein the service identifier
is known to both the wireless router and the computing device.
Description
RELATED APPLICATIONS INFORMATION
[0001] This application claims the benefit under 35 U.S.C.
.sctn.119(e) of U.S. Provisional Application Ser. No. 61/178,926,
filed May 15, 2009 and entitled "Rule Based Internet Browser
Redirect for Wireless WAN Routers," and which is incorporated
herein by reference in its entirety as if set forth in full. This
Application also claims priority as a continuation in part under 35
U.S.C. 120 to U.S. patent application Ser. No. 12/537,970, filed
Aug. 7, 2009 and entitled "Systems and Methods for Automatic
Connection with a Wireless Network," which is also incorporated
herein by reference in its entirety as if set forth in full.
BACKGROUND
[0002] 1. Technical Field
[0003] The embodiments described herein generally relate to
wireless communication and more particularly to the ability to
limit what devices can access a wireless Wide Area Network (WAN)
through a mobile, wireless router.
[0004] 2. Related Art
[0005] Wireless modems exist that can be inserted, or otherwise
interfaced with a computer and that enable data communication over
a wireless Wide Area Network (WAN) such as a cellular type network.
Early versions of these cards had connectors that complied with the
PCMCIA standard and that were inserted into a slot in the side of
the computer. Newer versions have USB connectors for interfacing
with the computer. Such modems allow access to the Internet, or
World Wide Web (WWW), even where no wired network connection exists
and are most often interfaced with a laptop or other portable
computing device.
[0006] FIG. 1 illustrates a conventional system 100 in which a data
connection can be established over a wide area network using a
conventional wireless modem 104. In FIG. 1, modem 104 is
interfaced, e.g., via a PCMCIA slot or USB connection, with a
computing device 106 via connection 110. Modem 104 can then
establish a data connection between base station 102, associated
with, e.g., a cellular type network, and computer 106. Modem 104
and base station 102 can communicate via wireless signals 108.
[0007] FIG. 2 is a flow chart illustrating a conventional process
by which such a data connection can be established. First, in step
202, a user of computing device 106 inserts, or connects modem 104
with computer 106. In step 204, modem 104 is then tethered to
computing device 106. Once modem 104 is tethered to computing
device 106, a connection manager running on computing device 106
can be launched in step 206. The connection manager will often
display whether the network, i.e., the WAN, is available. If it is,
then in step 208 the user can select the network, which will cause
a Point-to-Point Protocol (PPP) connection to be established
between base station 102 and computer 106 via modem 104 in step
210.
[0008] In networking, the PPP is a data link protocol commonly used
to establish a direct connection between two networking nodes. It
can provide connection authentication, transmission encryption
privacy, and compression. PPP is used over many types of physical
networks including serial cable, phone line, trunk line, cellular
telephone, specialized radio links, and fiber optic links such as
SONET. For example, most Internet service providers (ISPs) use PPP
for customer dial-up access to the Internet. PPP is commonly used
as a data link layer protocol for connection over synchronous and
asynchronous circuits, where it has largely superseded the older,
non-standard Serial Line Internet Protocol (SLIP) and Telephone
Company mandated standards, such as Link Access Protocol, Balanced
(LAPB) in the X.25 protocol suite. PPP is designed to work with
numerous network layer protocols, including Internet Protocol (IP),
Novell's Internetwork Packet Exchange (IPX), NBF, and
AppleTalk.
[0009] One draw back to system 100 of FIG. 1 is that only a single
computing device 106 can be interfaced with base station 102 via
modem 104. This is because modem 104 is tethered to computing
device 106. In the related '970 application, incorporated above, a
wireless router was disclosed that allowed multiple devices to
access a wireless broadband network, e.g., via the wireless WAN, at
the same time. Such a wireless router represents the next evolution
of broadband connectivity. Such a device enables any consumer
electronics device that, e.g., has a USB connector or an 802.11
transceiver to attach to the wireless broadband network. This does,
however, potentially create problems for the wireless carriers.
[0010] Such a wireless router solution may create unwelcome traffic
on the carriers' networks. Carriers prefer to manage the capability
of such a wireless router device in terms of: a. what consumer
electronics devices are allowed to attach to the broadband network
and b. what services are allowed to run on the device. Conventional
3G router devices provide unlimited open access to any Wifi capable
device. They do not have built in intelligence to discriminate
between one peripheral 802.11 device or service and another to
effectively filter those devices/services according to, e.g.,
programmed rules. Some routers do limit access to the network to a
certain number of connections, but this is really not sufficient to
address the carriers' concern with respect to the wireless router
device disclosed in the '970 Application.
SUMMARY
[0011] A wireless router that can interface multiple computing or
wireless LAN client devices with a wireless broadband network and
controls which devices are allowed to access the network is
disclosed herein.
[0012] According to one aspect, a wireless router comprises a wide
area network radio interface configured to enable communications
between a wide area network and the wireless router; a local area
network radio interface configured to enable communications between
the wireless router and a plurality of computing device; memory
configured to store instructions; and a processor coupled with
memory, the instructions configured to cause the processor to
perform the following in response to an activation of the power
input: automatically establish a data connection with a base
station associated with the wide area network over the wide area
network, automatically establish a data connection with the
plurality of computing devices over the local area network,
automatically discover, for each of the plurality of device, a
device type, determine whether the device type is an authorized
device type, and allow the associated computing device to access
the wide area network only if the device type is an authorized
device type.
[0013] According to another aspect, a wireless router comprises a
wide area network radio interface configured to enable
communications between a wide area network and the wireless router;
a local area network radio interface configured to enable
communications between the wireless router and a plurality of
computing device; memory configured to store instructions; and a
processor coupled with memory, the instructions configured to cause
the processor to perform the following in response to an activation
of the power input: automatically establish a data connection with
a base station associated with the wide area network over the wide
area network, automatically establish a data connection with the
plurality of computing devices over the local area network,
automatically discover, for each of the plurality of device, a
service being requested, determine whether the service is an
authorized service, and allow the associated computing device to
access the service only if the device type is an authorized device
type.
[0014] According to still another aspect, a wireless router
comprises a wide area network radio interface configured to enable
communications between a wide area network and the wireless router;
a local area network radio interface configured to enable
communications between the wireless router and one or more
computing devices running one or more services; memory configured
to store instructions; and a processor coupled with memory, the
instructions configured to cause the processor to perform the
following: establish a data connection with a base station
associated with the wide area network over the wide area network,
establish a data connection with a computing device over the local
area network, discover a service being run by the computing device,
determine whether the service is an authorized service, and allow
the computing device to access the wide area network only if the
service is an authorized service
[0015] These and other features, aspects, and embodiments are
described below in the section entitled "Detailed Description."
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Features, aspects, and embodiments are described in
conjunction with the attached drawings, in which:
[0017] FIG. 1 is a diagram illustrating a conventional system for
using a wireless modem to access a WAN;
[0018] FIG. 2 is a flow chart illustrating a conventional process
for establishing a data connection using a modem included in the
system of FIG. 1;
[0019] FIG. 3 is a diagram illustrating an example system for using
a wireless router to access a WAN in accordance with one
embodiment;
[0020] FIG. 4 is a flow chart illustrating an example process for
establishing a data connection using a wireless router included in
the system of FIG. 3 in accordance with one embodiment;
[0021] FIG. 5 is a flow chart illustrating an example method for
filtering devices and services attempting to access the wireless
broadband network via the wireless router of FIG. 3 in accordance
with one embodiment;
[0022] FIG. 6 is a diagram illustrating example components that can
be included in a wireless router included in the system of FIG. 3
in accordance with one embodiment;
[0023] FIG. 7 is a diagram illustrating modem and router
instructions that can be loaded into volatile memory in the
wireless router of FIG. 6 in accordance with one embodiment;
[0024] FIG. 8 is a diagram illustrating an example method for
loading and initializing the modem and router instructions of FIG.
7 in accordance with one embodiment;
[0025] FIG. 9 is a diagram illustrating an example image of the
router instructions of FIG. 6 in accordance with one embodiment;
and
[0026] FIGS. 10A-D are diagrams illustrating various example
implementations of a wireless router.
DETAILED DESCRIPTION
[0027] In the embodiments below, a wireless router is used to
interface a plurality of computing device or LAN client devices
with a wireless WAN. For example, the WAN can be configured to
implement one of the Third Generation (3G) protocols, such as EDGE,
CDMA2000, or the Universal Mobile Telecommunications System (UMTS)
protocols, High Speed Packet Access (HSPA) or HSPA+ protocols, Long
Term Evolution (LTE) protocols, Evolution Data Optimization (EV-DO)
rev. A (DOrA), WiMAX, or other newer 4G protocols. The computing
devices interface with the wireless router over a wireless Local
Area Network (LAN) such as a WiFi network, wireless USB network,
ultrawideband network, or a Zigbee network; however, it will be
understood that the descriptions that follow are not intended to
limit the embodiments herein to particular standards or
architectures, the embodiments being provide by way of example
only.
[0028] FIG. 3 is a diagram illustrating an example system 300 for
using a wireless router to access a WAN in accordance with one
embodiment. Central to system 300 is wireless router 304. While not
illustrated in detail in FIG. 3, wireless router 304 can comprise
two radio communication interfaces: one for communicating with a
base station 302 associated with a WAN, and one for communicating
with a plurality of computing or wireless LAN client devices 306
via a wireless LAN. Thus, wireless router 304 can communicate with
base station 302 via wireless signals 208 and with devices 306 via
wireless signals 310, where signals 308 and 310 implement different
protocols associated with the related network.
[0029] In certain embodiments, wireless router 304 can, e.g., be
configured to interface as many as five (5) computing devices 306
with base station 302. FIG. 4 is a flow chart illustrating an
example process by which devices 306 can be interfaced with base
station 302. As can be seen in FIG. 3, wireless router 304 can
comprise a single power button, or switch 312, when a user presses
button 312 to power on wireless router 304, in step 402, then
wireless router 304 will power up and automatically establish a
data connection, e.g., a PPP connection, with base station 302 in
step 404. As illustrated, this PPP connection is between base
station 302 and wireless router 304 and not between base station
302 and devices 306. In step 406, wireless router 304 will then
enable the LAN. In step 408, devices 306 can automatically connect
to the WAN through wireless router 304 and the LAN connections 310.
In other words, wireless router 304 can act as a wireless LAN
access point for devices 306. Communication between wireless router
304 and devices 306 can be via TCP/IP over WiFi. In certain
embodiments, the users of devices 306 must provide a password when
accessing the LAN. The password can be printed on device 304 or
displayed on device 304.
[0030] Thus, all that is required to enable multiple computing
devices 306 to access the wireless WAN is to power on wireless
router 304, and possibly provide a password. Wireless router 304
will automatically establish a connection with the WAN and enable
the wireless LAN hotspot in response. There is no tethering of
wireless router 304 with devices 306.
[0031] The embodiments described herein address the issue of
unrestricted open access of wireless router's by allowing only
authorized devices and users to connect through the wireless
router. As noted above, Carriers have concerns about having an
unlimited number of 802.11, or other devices potentially connecting
to their broadband network. They also have concerns about service
that would run openly on the carrier networks causing capacity
degradations without the carriers being able to benefit from the
use of these services.
[0032] Accordingly, as described in more detail below, an algorithm
for discovering the type of device that is requesting a connection
to the broadband network can be embedded within the wireless router
processor circuitry. The same algorithm, or alternatively a
different algorithm, can also be capable of discovering the type of
application or service that is supposed to run on the wireless
router device. Once device and service is discovered, a decision
can be made, e.g., based on preset preferences stored in the
device, with respect to what device is allowed to attach to the
broadband network and what service or application is allowed to run
on the wireless router device. Only authorized devices and services
are allowed to use the wireless router. Thus, a carrier can
provision at the factory or remotely a wireless router device and
configure it to filter certain devices or certain services from
operating on the broadband network.
[0033] The basic filtering steps are illustrated in FIG. 5. First,
in step 520, a wireless router 304 can detect what device is trying
to access the broadband wireless network through wireless router
304. In addition, or alternatively, wireless router 304 can detect
what type of service the device is requesting or trying to access
in step 520. In step 522, wireless router 304 can determine whether
the device, the service, or both are authorized by the associated
carrier. Again, rules for determining whether a device or service
is authorized can be loaded at the factory, or provisioned,
updated, or both remotely, i.e., via the wireless WAN. If the
device, service, or both, are authorized, then in step 524, the
connection can be allowed by wireless router 304. Otherwise, the
connection can be denied in step 526.
[0034] For device filtering, the device discovery of step 520 can
be based on its MAC address. Other means for discovering the device
could be through the browser ID or by means of an application that
runs on the peripheral device and that presents identification
credentials to wireless router 304. Based on the type of device
discovered in step 520, wireless router 304 decides whether to
allow the device to connect on the network or not in step 522. For
example, the decision could be based on the basis of a decision
table stored in wireless router 304 that lists authorized devices,
banned devices, or both. The table could reside on the PHS memory,
or alternatively remotely on a server depending on the
implementation.
[0035] For service filtering, the service discovery step of 520 can
use the same basic algorithm as device filtering. The service could
be discovered by various methods. For example, packet sniffing
technology allows for identifying the type of service being run for
instance Video vs. VOIP etc. Thus, some form of packet sniffing can
be used to determine the service in step 520. Service detection can
also be accomplished by monitoring the IP address to which the
device connects. For instance, if wireless router 304 is looking to
ban E-reader type services, then it could track the content server
IP address being requested and ban connectivity to that server. In
most embodiments, the algorithm for the service filtering resides
on wireless router 304, but again it can be updated from a
server.
[0036] In alternative embodiments, all or a portion of the traffic
generated by devices 306 can be routed to a designated proxy
server. The proxy server (not shown) can then be configured to
perform the filtering. Such an approach can be advantageous in that
it can make available additional computing power.
[0037] In certain embodiments, the Quality of Service (QoS) made
available to a certain device 306 can be based on the device and
service filtering described above. For example, device based QoS
can be based on the above device filtering and service filtering
algorithms to determine what level of service to provide to the
device or service that is detected. The types of service provided
can be the following:
[0038] a. Time delay of transmission [0039] i. Immediate [0040] ii.
Cached and delayed
[0041] b. Bandwidth allocation
[0042] c. Priority of packets
[0043] Thus, a device 306 can be provisioned so as to ban a certain
service, for instance say e-reader services. Wireless router 304
can discover the service either though the reading of the device
Mac address, sniffing IP packets or reading the content server IP
address. Once a banned service request is discovered, connectivity
to the content server can be banned and a message sent to the user
to inform him/her about the unauthorized use of the service.
Another example use can be to pair a device with a WiFi camera and
only allow the pictures to be uploaded to certain sites at
particular times.
[0044] In certain embodiments, the WAN controller/interface portion
of wireless router 304 (see FIG. 6) can be put to sleep, while the
LAN controller/interface is awake and monitoring traffic from
devices 306. This can, for example, conserve battery power. Thus,
if there were long periods of inactivity where devices 306 are
connected but not accessing from or sending information to the WAN,
then the WAN portion of wireless router can be deactivated, or put
in a sleep mode to conserve power.
[0045] FIG. 6 is a diagram illustrating certain components that can
be included in wireless router 304 in accordance with one
embodiment. It will be understood that additional components can be
included in wireless router 304. The example of FIG. 6 is not
intended to exhaustively show all components, but rather is
provided by way of example to illustrate certain components in
relation to the systems and methods described herein. As such, the
example of FIG. 5 should not be seen as limiting the systems and
methods described herein to a certain design or architecture.
Moreover, the components illustrated in FIG. 6 are obviously
depicted at a high level. It will be understood that the components
can actually be implemented via multiple components such as
multiple integrated circuits, discrete device, or both, and can be
packaged in a single package or in multiple packages. It will also
be understood that wireless router 304 is often battery powered and
therefore will comprise a battery (not shown).
[0046] Referring to FIG. 6, wireless router 304 can comprise a
processor 502 interfaced with memory 504, LAN radio 510, WAN radio
512, and user interface 514. Processor 502 will often comprise
several processing cores such as a digital signal processing core,
a microprocessing core, math-coprocessors, etc.
[0047] Memory 504 can comprise several forms of memory, such as
non-volatile memory 506 and volatile memory 508. Non-volatile
memory is used to store data and instructions that should be
maintained even when power is removed from wireless router 304.
Volatile memory is used to store instructions and data for which it
is not important whether it is maintain when power is removed. For
example, the code used to run wireless router 304 can be stored in
non-volatile memory 506 such that it is maintained even when
wireless router 304 is turned off and so that wireless router 304
can access this code when it is turned on again; however, the code
can be copied to volatile memory 508 when wireless router 304 is
on. This can, for example, allow faster access to instructions and
data by processor 502.
[0048] Examples of non-volatile memory include Read-Only Memory
(ROM), flash memory, and most types of magnetic computer storage
devices, e.g., hard disks, floppy disks, and magnetic tape and
optical discs, although these later devices are not generally used
for wireless router 304. Rather, the former, which can be referred
to as electrically addressed non-volatile memories are typically
used for wireless router 304. Non-volatile memory is typically used
for the task of secondary storage, or long-term persistent storage.
Most forms of non-volatile memory have limitations that make them
unsuitable for use as primary storage. Typically, non-volatile
memory either costs more or performs worse than volatile random
access memory. Electrically addressed non-volatile memories can
include a Programmable ROM (PROM), Erasable PROMs (EPROM),
Electrically erasable PROM (EEPROM), Flash memory, or some
combination thereof.
[0049] Volatile memory, also known as volatile storage or primary
storage device, is computer memory that requires power to maintain
the stored information, unlike non-volatile memory which does not
require a maintained power supply. The most widely used form of
primary storage today is a volatile form of random access memory
(RAM), meaning that when the computer is shut down, anything
contained in RAM is lost. Most forms of modern RAM are volatile
storage, including Dynamic Random Access Memory (DRAM) and static
random access memory (SRAM). Thus, wireless router 304 can include
DRAM, SRAM, or some combination thereof, although wireless router
304 is more likely to include SRAM than DRAM.
[0050] In certain embodiments, some portion or even all of
non-volatile memory 506, volatile memory 508, or both can be
included with processor 502.
[0051] LAN radio 510 can comprises all of the hardware required for
the radio front end of the wireless LAN interface. Similarly, WAN
radio 512 can comprises all of the hardware required for the radio
front end of the wireless WAN interface. Processor 502 or
components thereof can serve as the processing backend for both
radios 510 and 512. Alternatively, separate processing circuitry
can be included for each of the LAN function and the WAN function.
In such embodiments, the processing functionality described herein
can be included in either the LAN processing circuitry or the WAN
processing circuitry.
[0052] User interface 514 can comprise just button 312. But in
other embodiments, it can also comprise a display, e.g., to display
a password.
[0053] Instructions stored in memory 504 can be used by processor
502 to control the operation of wireless router 502 including
control of radios 510 and 512. Thus, the instructions stored in
memory 504 should include instructions for controlling the
operation of radios 510 and 512 as well as for bridging
communications between basestation 320 and devices 306 and for
configuring wireless router 304. In certain embodiments, the
instructions for controlling WAN radio 512, and the authentication
procedures for connecting to the WAN, can be included in standard
code associated with WAN radio 512. These instructions can be
referred to as modem instructions. Separate instructions for
controlling the remaining functions of wireless router 304 can then
also be stored in memory 504, including the procedures and settings
for controlling LAN radio 510. These instructions can be referred
to as router instructions.
[0054] FIG. 7 is a diagram illustrating examples blocks of
instructions that can be stored in memory 504. For example, the
instructions can be stored in non-volatile memory 506 and can,
e.g., be copied to volatile memory 508 during operation. As can be
seen, the instructions illustrated in FIG. 7 can comprise modem
instructions 602 and router instructions 604. Each set of
instructions can comprise an initialization routine 610 and 612
respectively, and be associated with a function table 606 and 608
respectively. Router instructions 604 can also be associated with
an offset or known address, e.g., A000, at which it should be
loaded into volatile memory.
[0055] A process for allowing these two sets of instructions to
interact must then be implemented in such embodiments. FIG. 8 is a
flow chart illustrating an example process for loading modem
instructions and router instructions into volatile memory 508 for
execution by processor 502 and for configuring the instructions to
interact with each other. In step 702, on boot up, e.g., activation
of button 312, modem initialization function 610 can generate a
modem function pointer table 606, which can be populated with modem
functions. In step 704, a block of memory can be reserved in
volatile memory 508, e.g., at the known offset address, and router
instructions 604 can be loaded into the reserved block in
nonvolatile memory 508. Router initialize function 612 can then be
called in step 706. Initialization function 612 in the router
instructions 604 can then populate function table 608 with router
functions. Modem instructions 602 will need to use, or call certain
functions included in router instructions 604. Similarly, router
instructions 604 will need to call certain functions in modem
instructions 602. Accordingly, the initialization functions can
cause each set of instructions to exchange pointers to the relevant
functions, such that modem function table 606 will include pointers
to the relevant functions in router instructions 604 and router
function table 608 will include pointers to the relevant functions
in modem instructions 602.
[0056] Alternatively, a single function table with the appropriate
functions and pointers can be created and used by both modem and
router instructions 602 and 604; however, it will be understood
that how the function tables are described is a matter of
convenience and that what is important is that there is an
association between functions and pointers to functions in the
various instructions that is maintained within wireless router
304.
[0057] Initialization function 612 can also be configured to create
a set of related tasks, e.g., an http server task, a WiFi driver
task, a bridge task, etc. For example, once the functional tables
are initializes, the router instructions can start to run in step
708. Different tasks can then be called in steps 712, 714, and 716,
which can cause initialization functions related with each tasks to
run in steps 718, 720, and 722. These initialization functions can
then initialize the related tasks such that they can run in steps
724, 726 and 728.
[0058] One of these related tasks can, e.g., comprise a filter task
as described above with respect to FIG. 5. For example, filter task
713 can be included in the router tasks, and filter task 713 can be
initialized in step 717, and run in step 723.
[0059] On successful initialization, router instructions 604 can be
configured to notify modem instructions 602 through either a return
value or a signal.
[0060] Modem instructions 602 can start to run in step 708. As the
modem instruction and router tasks run, they can communicate with
each other using the set of function pointers populated in the
function pointer tables. For example, a typical function that a
router task can use is "efs_open" or "rex_sleep." Modem
instructions 602 can, for example, call a transmit function in the
router WiFi driver or it can call the address translate
functions.
[0061] A partition table for memory 504 can for example have one
additional, e.g., 3 MB partition for router instructions 604.
Router instructions 604 can be built into a binary file from, e.g.,
an elf file. FIG. 9 is a diagram illustrating an example image 802
of router instructions 604 in accordance with one embodiment. A
header can be added to the binary and can include a signature field
804, for the image signature; a checksum field 806, which can,
e.g., comprise a 4 byte checksum and a 2 byte version, as well as 2
reserved bytes; and entry point field 808 to hold the address
offset; and a 4 byte reserved field 810. Image 802 can then mostly
consist of the binary image 812 for instructions 604.
[0062] On boot up, the operating system can verify the checksum,
version compatibility, and magic string from the image header
before proceeding to the next step, e.g., step 702.
[0063] Accordingly, router instructions 604 are not statically
linked into modem instructions 602. Rather, they will be compiled
and linked into a separate binary with a fixed entry point (offset
address) specified in the router image header. This binary can then
be loaded at that exact location specified by the offset address at
run time. The memory location specified by the offset address
should specify a block of memory that is not used by the memory
instructions. Once the memory section is created, the router binary
except the header can then be loaded at the address where the image
was created. After the modem instruction initialization is
completed, it will call an initialization function located in the
router binary. This location will be known to the modem
instructions because where the router binary was loaded in the
memory will be known. The router initialization function can then
populate the rest of the function pointers in the structure
described above for the modem instructions. Form this point on the
modem and router instructions can communicate with each other using
the set of functions that have been saved in the function pointer
table.
[0064] Once wireless router 304 is powered up, the connection with
base station 302 is establish, the LAN is activated, and wireless
router 304 will be ready to route data packets from devices 306 to
base station 302. Devices 306 can then access, e.g., the Internet
through wireless router 304. All that may be required for devices
306 to access the Internet, or more generally the WAN associated
with base station 302 is a password, which can be displayed in
wireless router 304. Contrast this with system 100 in which only a
single device 106 can access the WAN.
[0065] FIGS. 10A-D are diagrams illustrating various example
implementations of wireless router 304. As can be seen, each
implementation includes a single button 312. Additionally, as
illustrated in FIG. 10D, wireless router 304 can include a USB or
other data connection 902 for interfacing with wireless router 304.
In certain embodiments, wireless router 304 can be approximately
credit card sized. In other words, wireless router 304 can comprise
a length (l) and width (w) that are very close to those of a credit
card. In addition, wireless router 304 can comprise a thickness
that is very thin. While it may be thicker than a credit card, the
overall dimensions can be such that wireless router can easily fit
in a pocket or even a wallet.
[0066] While certain embodiments have been described above, it will
be understood that the embodiments described are by way of example
only. Accordingly, the systems and methods described herein should
not be limited based on the described embodiments. Rather, the
systems and methods described herein should only be limited in
light of the claims that follow when taken in conjunction with the
above description and accompanying drawings.
* * * * *