The present disclosure is related to systems and methods for configuration a wireless network interface to provide a network service. For example, in one embodiment, a method, apparatus, and/or computer readable medium facilitate setting a wireless network interface of an apparatus to operate in an infrastructure client mode if at least one predetermined wireless access point is detected via the wireless network interface. Otherwise, the wireless network interface is configured to operate in an infrastructure access point mode. A network service of the apparatus is provided via the configured wireless network interface.
These and other features and aspects of various embodiments may be understood in view of the following detailed discussion and accompanying drawings.
In the following diagrams, the same reference numbers may be used to identify similar/same components in multiple figures.
In the following description of various example embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration various example embodiments. It is to be understood that other embodiments may be utilized, as structural and operational changes may be made without departing from the scope of the claims appended hereto.
The present disclosure is generally related to apparatuses, systems and methods that provide wireless communications between wireless networking devices, such as a mobile host device (e.g., smart phone, tablet computer, portable gaming device, navigation system, vehicle electronics, etc.) and mobile peripheral device (e.g., storage device, printer, input/output device, etc.). Generally, the peripheral device may be configured to provide a service to the host device via wireless networking. As described in greater detail below, the peripheral device may include features that facilitate connecting the host to the peripheral via a wireless network under different conditions and with minimal user intervention with the peripheral device.
Wireless networking protocols may include features (e.g., addressing, routing, contention management) that allow multiple computers to automatically join and interact with a local network. Protocols such as dynamic host configuration protocol (DHCP) allow automatic configuration of some network parameters (e.g., addresses, subnetworks, routes, services) thereby freeing end users from having to configure these parameters manually Such configuration services may be provided by a fixed/infrastructure component of the network, such as a server or router.
Wireless networking protocols, such as the IEEE 802.11 family of wireless local area networking (WLAN) protocols, may also utilize infrastructure devices as a central point in the networks. In such a case, devices joining the network are said to be operating in infrastructure mode. In infrastructure mode, wireless client devices join the WLAN via an infrastructure access point (AP). A wireless AP may provide functions such as advertising a network identifier (SSID), authentication, encryption, configuration via DHCP, and bridging/routing to other networks. Consumer devices (e.g., computer, mobile device) are often set up to run in infrastructure mode by default. In such a case, the device will search for SSIDs from nearby APs, allow the user to select an SSID to connect to, and facilitate the entry of passwords, which can be used to authenticate to the network as well as to encrypt the wireless traffic. Thereafter, the user's device can subsequently connect to the network automatically using this data. A reference to this connection may be stored in memory (or otherwise recorded) so that the user's device can automatically connect later to the wireless network when the SSID is detected.
Wireless networking can also be used for point-to-point communications. For example, the IEEE 802.11 standards define an ad-hoc mode of operation. In ad-hoc mode two computers can establish a communication path directly between their wireless network cards without requiring the use of an infrastructure device, such as a WLAN AP. To set up an ad-hoc wireless network, each wireless device is configured for ad-hoc mode versus infrastructure mode. All wireless adapters on the ad-hoc network use the same SSID and the same channel number. This allows for convenient inter-device communications. Due to their point-to-point nature, ad-hoc networks may not have built-in mechanisms for accessing larger scale networks (e.g., the Internet).
As noted above, consumer devices may be set up by default to work on infrastructure networks (e.g., to find and connect to a wireless AP). This allows for ready access to the Internet, which is often the primary target of interest to a user of the client device. Even so, infrastructure mode can still be used for point-to-point communications between two device where no Internet routing is provided. For example, a peripheral device (e.g., data storage device) may use a wireless interface configured to operate as an infrastructure AP. To connect to the peripheral device, the user utilizes the already familiar infrastructure network configuration interface of the device to connect to the peripheral. This also allows multiple devices to access the peripheral at the same time, as multiple clients can connect to a single AP.
One issue that may arise by using a peripheral as an AP is that this may prevent the user's device from connecting other networks, including the Internet, while connected to the peripheral. Unless the peripheral device also includes a bridge to some other network, client devices connected to the peripheral may only be able to communicate with the peripheral (and possibly to one another) via the wireless network established by the peripheral's AP. This may be acceptable in some cases, but may not be in others.
In reference to
In
In order to use the portable drive 104 to stream movies in this environment, the drive 104 may also be configured as an AP, and the user device 102 can connect directly to the drive 104. However, this may preclude connecting the user device 102 to the AP 106 gateway/router. In some scenarios, the user may still desire connections to the Internet 112 and with other devices (e.g., home server 110) while streaming the movie. For example, the user may wish to still receive emails or text messages on device 102 while the movie is playing.
In such a case, the portable drive 104 may instead be configured as a wireless network client and automatically connect to the home network AP 106. In this way, the client device 102 can simultaneously connect to the portable drive 104, the Internet 112, and/or other device 110 on the home network. One difference between using the portable drive 104 as a wireless client and as a wireless AP is that the user device 102 may need additional information to locate the drive 104 when the drive 104 is a network client.
When the portable drive 104 acts as a wireless AP, it can configure the network parameters (including its own address) to some predetermined configuration, allowing any connecting device to know beforehand how to find the drive 104 after connecting to the drive's AP. In contrast, when the drive 104 connects as a client, it is the home network AP 106 that dictates at least some of the network parameters. In such a case, the client device 102 may use a discovery procedure to locate the drive 104 on the home network. As will be discussed in greater detail below, there are a number of ways for this device discovery to be implemented.
In
It should be noted that the scenario described in relation to
In the scenarios described in
The portable drive 104 may also be preconfigured with data that references particular APs. For example, a service provider may offer free WLAN access at a number of locations. The drive 104 can be preconfigured during manufacturing or distribution with a listing of these WLAN access points, and other data needed to connect (e.g., encryption and authentication keys). This can also be performed by the user, e.g., by downloading and applying a listing to the drive 104 after establishing an account with the provider.
Another way to associate the portable drive 104 with an AP is to use an alternate data interface (e.g., USB port) that allows configuring the device 104 via a home computer to set WLAN parameters such as SSID, network key, etc. The device 104 may implement a technology such as Wi-Fi Protected Setup (WPA) that allows the device 104 to be automatically joined to a WLAN using options such as entering a personal identification number, pushing a button on the device and the AP at the same time, using near-field communications (NFC), using a USB stick, etc.
In
Screen 200 in
After connection to the peripheral AP network, the user may configure the peripheral device 104 over the wireless connection. The user device 102 may be provisioned with a special-purpose application to configure the peripheral 104. Or, as shown in screen 204, a general-purpose browser may be used to configure the peripheral 104. The browser may be pointed to a particular Uniform Resource Locator (URL) 206 associated with the peripheral device 104. The URL may include an IP address or a hostname. In the latter case, the peripheral device 104 may also provide a name lookup service (e.g., domain name service) so that the user device 102 can resolve this hostname to an IP address.
In the page shown in screen 204, the user may be able to add infrastructure networks 208, 210 to which the peripheral device can automatically join as a client if the networks 208, 210 are detected. These may be auto-detected through advertisement of respective SSIDs, or manually entered where SSID is not advertised. In this example, network 208 is the user's home network to which the user desires to connect, and network 210 represents a neighbor's network to which the user does not desire to connect. Accordingly, the user has selected network 208, but not network 210. The screen 208 also allows inputting other data related to the networks 208, 210, such as network encryption keys.
After the user completes configuration of the peripheral 104 via screen 204, the identity of the selected network 208 may be kept in the peripheral device 104 (e.g., stored in persistent storage) for future reference, along with any other data needed to connect to the selected network 208. At this point, the user may choose to cause the peripheral device 104 to immediately reconfigure to client mode. In such a case the AP 202 shown in screen 200 would disappear, and the peripheral device 104 would connect to the home network 208 as a client. The user device 102 could subsequently access the peripheral device 104 via the home network 208, including accessing screens 204, 212 by way of a browser.
In screen 212, an example browser document provided by the peripheral device 104 shows how the user can edit networks stored with the peripheral device 104. The user can delete associated existing networks 214, 216 by way of right-hand column selection box. This screen 212 may also facilitate changing other data related to the networks, including encryption keys and type of encryption used. The deletion of a network 214, 216 may cause an immediate wireless mode change in the peripheral device 104. For example, if screen 212 is currently being accessed by way of home network 214, and work network 216 is not currently detected, then deletion of network 214 via screen 212 may cause the peripheral device 104 to go to infrastructure AP mode, where it can be directly accessed as seen in screen 200.
In reference now to
The scanning 304 returns a list of APs that are iterated through in loop 306. The list may be empty (e.g., no APs detected), in which case, via path 316, the device configures itself 314 as an infrastructure AP and exits 318. For a non-empty list, each AP in the list is checked 308 to see if a reference to the AP is stored with the device. If so, the device connects 310 to the AP as an infrastructure client. This may optionally also involve performing a service discovery operation 312. For example, the operation 312 may involve sending out advertisements on the network that describe the peripheral device and/or its network services so that a user device can connect to it. If none of the detected APs are stored with the device, then the loop 306 exits via path 316, the device configures itself 314 as an infrastructure AP, and exits 318.
In reference now to
If there are references to one or more trusted APs stored, then the device may proceed to scan 406 for and loop 408 through detected APs, and connect 410 to a trusted AP that is found, similar to the description of similar events in
In reference now to
In addition to the hardware components 502-504, the apparatus 500 may also include service hardware 506 and wireless network interface hardware 508. The service hardware 506 represents any electrical and/or mechanical component that may be associated with a network service provided by the apparatus 500. For example, if the apparatus 500 is configured as a portable data storage device, the service hardware 506 may include a hard disk and/or solid-state memory. Or, if the apparatus 500 is configured as a portable printer, the service hardware 506 may include a print head, paper feed rollers, motors, sensors, etc. The wireless network interface 508 includes circuitry that facilitates wireless communications over the air in conformance with standards such as 802.11 wireless networking.
The apparatus 504 includes data and processor-executable instructions, generally indicated as functional modules 510. The functional modules 510 may include any combination of instructions stored on a non-transitory computer readable medium, firmware, and/or circuitry hardcoded with instructions (e.g., application-specific integrated circuits). The functional modules 510 may be included at the time of manufacture, and/or be added later by the user or any intermediary. For example, software instructions may be provided by way of a non-transitory, computer readable medium (e.g., magnetic or optical storage media, solid state memory), via a network, and/or via other communications using I/O circuits 504.
The functional modules 510 may include, but are not limited to, any combination of programs, libraries, services, operating system components, scripts, configuration files, binary data, drivers, logic circuits, and the like. One functional module 510 is a network service module 512 that provides one or more services to a client 513 via the wireless interface 508. This provision of services may involve accessing to service hardware 506. For example, the network service module 512 may process service requests on behalf of the client device 513 which are applied to service hardware 506. Similarly, the network service module 512 may detect signals and/or data from the hardware 506, and send this as network data to the client device 513 via the wireless interface 508.
A collection of network control modules 514 facilitate access to the network services module 512 by the client 513 under a number of conditions. The modules 514 may apply network change automatically to the apparatus 500, so as to minimize or eliminate the need for direct user interaction with the apparatus 500. For example, a mode switching module 516 may be configured to change an operating mode of the wireless interface 508 by sending commands to an interface controller module 518. The interface controller module 518, along with access point detection module 520, may be provided as drivers and/or system services that facilitate software control of various aspects of the wireless interface hardware 508. The interface controller module 518 may allow other modules 510 to, for example, set parameters for connection to wireless networks, send/receive data via the network, etc. The access point detection module 520 may represent a subset of wireless interface 508 functionality. This subset of functionality may include regular scanning for 802.11 beacon frames, which include SSIDs of nearby APs. The module 520 may update a list of available SSIDs (and other data) based on detection of the beacon frames.
The mode switching module 516 may regularly receive SSID updates from the detection module 520, e.g., caused by wireless APs coming into and out of reception range due to relocation of the apparatus 500. The mode switching module 516 may compare these SSIDs with those stored in a database 522. The mode switching module 516 may automatically switch the network interface 508 from a current mode to a new mode in response to conditions (e.g., existing sessions with client 513, current mode of the wireless interface 508, and data stored in the database 522). The current and new modes may include any combination of infrastructure AP mode, infrastructure client mode, and ad-hoc mode.
In some situations (e.g., switching to a client or ad-hoc mode) the network control modules may send out service discovery data via service discovery module 524. Generally, service discovery module 524 may send out data over the wireless interface that allows the client 513 (or any wireless network node) to identify the apparatus 500 and/or its available services 512. Examples of service discovery protocols include Simple Service Discovery Protocol (SSDP), Service Location Protocol (SLP), Jini, Salutation, etc. Using SSDP as an example, a service provider (e.g., apparatus 500) sends out multicast messages (SSDP:alive) that advertise the device. Another device (e.g., client 513) receives those advertisements. Data in the advertisements allows the other device 513 to engage in additional transactions to discover and utilize the network service 512. This type of SSDP service discovery can be done on a peer-to-peer basis, e.g., without requiring centralized servers to mediate service negotiations. Other service discovery protocols may provide similar features, e.g., advertising of services/devices, negotiation of parameters, and facilitating connections to utilize network services.
As noted above, the access point database 522 includes data that may determine whether or not the mode switching module 516 causes changes to the wireless interface 508. Lack of data in the database 522 (e.g., un-configured state) may also affect operation of the mode switching module 516 (e.g., cause default switching to infrastructure AP mode). This database 522 may be pre-populated with data in some instances, e.g., with a list of SSIDs associated with a trusted provider. In other cases, the database 522 can be populated by the user, such as via a configuration module 526.
The configuration module 526 facilitates user control of various aspects of the mode switching module 516, including the adding and deleting of entries from the access point database 522. The configuration module 526 may allow the user configure the apparatus 500 via the network interface using client device 513. In another case, the configuration module 508 may determine a configuration directly from hardware of the apparatus 500. For example, the wireless interface 508 may include a device (e.g., switch or NFC device) that facilitates user association of the apparatus with an external AP 528 via WPA. In such a case, an identifier of the AP 528 can be automatically added to the database 522 once the association is made.
It will be understood that the depiction of the apparatus 500 is for purposes of illustration, and not limitation. The particular modules shown may be implemented in more or fewer units, for example. Also, the linkages between modules are provided for purposes of illustration, and need not be limited to the interconnections and/or directions of data flow shown. Similarly, the hardware components may be combined into composite units and/or distributed among more units than illustrated.
In reference now to
Use 612 of the network service may be triggered by a user accessing an application the user device, e.g., a requesting to use a service of the peripheral device. This may also involve automatically configuring the user device as an infrastructure mode client to access the peripheral. The peripheral may be operating as an infrastructure AP or as an infrastructure client at the time of the request. If the peripheral's AP is found by the user device, the application may disconnect the user device from a currently connected AP (if applicable) and connect to the peripheral's AP. If the peripheral's AP is not found, the user device application may alternatively perform service discovery on a currently connected network to see if the peripheral is connected instead as an infrastructure client. If the peripheral device is found based on service discovery, the user device can connect as shown in block 618.
If the user configures 614 an available trusted AP, the user device is disconnected 616, and connects 618 to the peripheral in AP mode. This connection 618 may also occur automatically from power up 606 if the trusted AP is assigned and detected 608. After connection 618 in client mode, the network service can be utilized 620, e.g., by using a hostname of the peripheral that may be made available via service discovery and/or local name server. If the peripheral is moved 622 away from the current trusted AP, it may either go back to AP mode 610 or connect 618 with another available trusted peripheral.
The various embodiments described above may be implemented using circuitry and/or software modules that interact to provide particular results. One of skill in the computing arts can readily implement such described functionality, either at a modular level or as a whole, using knowledge generally known in the art. The structures and procedures shown above are only a representative example of embodiments that can be used to facilitate connection of network devices as described above.
The foregoing description of the example embodiments has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the inventive concepts to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. Any or all features of the disclosed embodiments can be applied individually or in any combination are not meant to be limiting, but purely illustrative. It is intended that the scope be limited not with this detailed description, but rather determined by the claims appended hereto.