Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMMUNICATION PROTOCOL TESTS
Document Type and Number:
WIPO Patent Application WO/2022/098349
Kind Code:
A1
Abstract:
In some examples, a computing device can include a processor resource and a non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause the processor resource to: activate an access point mode, activate a first communication channel to perform a first test on a plurality of communication protocols, activate a second communication channel to perform a second test for the plurality of communication protocols when the first test exceeds a test limit, and identify a communication protocol to configure the computing device from the plurality of communication protocols upon receiving a response on the second communication channel.

Inventors:
BERKEMA ALAN (US)
KENNEDY EDWARD (US)
ADAMS JAMES (US)
Application Number:
PCT/US2020/058849
Publication Date:
May 12, 2022
Filing Date:
November 04, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HEWLETT PACKARD DEVELOPMENT CO (US)
International Classes:
H04W80/02; H04W76/10
Foreign References:
US8879992B22014-11-04
US9730268B22017-08-08
US10484941B22019-11-19
Attorney, Agent or Firm:
SORENSEN, C., Blake et al. (US)
Download PDF:
Claims:
What is claimed is:

1. A computing device, comprising: a processor resource; and a non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause the processor resource to: activate an access point mode; activate a first communication channel to perform a first test on a plurality of communication protocols; activate a second communication channel to perform a second test for the plurality of communication protocols when the first test exceeds a test limit; and identify a communication protocol to configure the computing device from the plurality of communication protocols upon receiving a response on the second communication channel.

2. The computing device of claim 1 , wherein the processor resource is to deactivate the first communication channel when the processor resource is to activate the second communication channel.

3. The computing device of claim 1 , wherein the first test includes instructions to transmit access point beacons utilizing the first communication channel and the second test includes instructions to transmit access point beacons utilizing the second communication channel.

4. The computing device of claim 1 , wherein the communication protocol to configure the computing device is identified based on communication received in response to an access point beacon sent during the second test utilizing the second communication channel.

5. The computing device of claim 1 , wherein the communication protocol to configure the computing device is identified based on communication received from a network device when the second communication channel is activated.

6. The computing device of ciaim 5, wherein the network device is a configurator device that includes instructions to configure the computing device utilizing the second communication channel.

7. The computing device of claim 1 , wherein the first test and the second test include instructions to send access point beacons to search for a configurator device and instructions to receive access point beacons for a configurator device that is searching for the computing device.

8. A non-transitory memory resource storing machine-readable instructions stored thereon that, when executed, cause a processor resource to: activate a first communication channel; send a first beacon, on the first communication channel, to be received by a first type of device; search, on the first communication channel, for a second beacon of a second type of device; activate a second communication and disable the first communication channel when the first type of device or second type of device are not found utilizing the first communication channel; send the first beacon, on the second communication channel, to be received by the first type of device; search, on the second communication channel, for the second beacon of the second type of device; and select the first type of device as a configuration device when the first type of device responds to the first beacon and select the second type of device as the configuration device when the second beacon is received by the second type device.

9. The memory resource of claim 8, wherein the processor resource is to allow the selected configuration device to perform configuration alterations on a particular client device.

10. The memory resource of claim 8, wherein the first type of device is a computing device and the second type of device is a network device.

11. The memory resource of claim 8, wherein the processor resource is to activate a timer to identify a first quantity of time to wait for the first type of device to respond to the first beacon and a second quantity of time to search for the second type of device to send the second beacon.

12. A client device, comprising: a communication device, wherein the communication device is a single channel wireless communication device; a processor resource to: alter the client device from a client device mode to an access point (AP) mode; send a first plurality of AP beacons utilizing a channel of the communication device for a first period of time; search for a first AP response beacon from a first type of configuration device; search for a device beacon utilizing the channel of the communication device from a second type of configuration device; send a second plurality of AP beacons utilizing the channel of the communication device for a second period of time; search for a second AP response beacon from a third type of configuration device; select one of the first type of configuration device, second type of configuration device, and third type of configuration device based on time a particular response beacon is received at the communication device.

13. The system of claim 12, wherein the first type of configuration device and the third type of configuration device utilize different configuration protocols.

14. The system of claim 12, wherein the first type of configuration device is a remote device from the client device, the second type of configuration device is a network device operating on the channel, and the third type of configuration device is a local device comprising instructions associated with the client device.

15. The system of claim 12, wherein the processor resource is to aiter the channel of the communication device to a different channel to search for the first type of configuration device, second type of configuration device, and third type of configuration device utilizing the different channel.

Description:
COMMUNICATION PROTOCOL TESTS

Background

[0001] A computing device can allow a user to utilize computing device operations for work, education, gaming, multimedia, and/or other uses. Computing devices can be utilized in a non-portable setting, such as at a desktop, and/or be portable to allow a user to carry or otherwise bring the computing device with while in a mobile setting. These computing devices can be connected to client devices through a network to allow the computing device to utilize the client devices.

Brief Description of the Drawings

[0002] Figure 1 illustrates an example of a system including a computing device for testing communication protocols for a client device.

[0003] Figure 2 illustrates an example of a memory resource storing instructions for testing communication protocols for a client device.

[0004] Figure 3 illustrates an example of a system including a computing device for testing communication protocols for a client device.

[000S] Figure 4 illustrates an example of a method for testing communication protocols for a client device.

[0006] Figure 5 illustrates an example of a method for testing communication protocols for a client device.

Detailed Description

[0007] A user may utilize a computing device for various purposes, such as for business and/or recreational use. As used herein, the term “computing device” refers to an electronic system having a processor resource and a memory resource. Examples of computing devices can include, for instance, a laptop computer, a notebook computer, a desktop computer, an all-in-one (AIO) computer, networking device (e.g., router, switch, etc.), and/or a mobile device (e.g., a smart phone, tablet, personal digital assistant smart glasses, a wrist-worn device such as a smart watch, etc.), among other types of computing devices. As used herein, a mobiie device refers to devices that are (or can be) carried and/or worn by a user.

[0008] In some examples, the computing device can be utilized to perform particular functions with peripheral devices, network devices, and/or client devices. For example, peripheral devices, network devices, and/or client devices can be communicatively coupled to the computing devices to perform corresponding functions. As used herein, a peripheral device can include a device that is utilized to execute functions of the computing device. For example, a peripheral device can include, but is not limited to: a computer mouse, a stylus, a camera, a touchscreen, and/or other devices that can be utilized to provide inputs to the computing device. As used herein, a network device can be a device that is utilized to generate or transfer data within a communication network. For example, a network device can include, but is not limited to: a modem, a router, a switch, a wired connection, a wireless connection device, among other devices that can provide a communication path between electrical devices. As used herein, a client device can include a device that can receive communication from a computing device and execute or perform a particular function. For example, a client device can include, but is not limited to: a printing device, a scanner device, a fax machine, among other devices that can perform particular functions when instructed by the computing device.

[0009] In some examples, client devices can be configured or provisioned during an initialization or after a device reset. As used herein, a configuration or provisioning can include altering or executing a plurality of settings to instruct a particular device how to function during operation. For example, a configuration of a client device can include, but is not limited to: identifying a network to connect with during operation, identifying a communication protocol, identifying input ports, identifying output ports, among other settings that can allow the client device to receive instructions from a computing device. In some examples, the client device can be configured utilizing a plurality of different configuration protocols. As used herein, a configuration protocol is a communication protocol for configuring a device, such as a client device. For example, a configuration protocol can include, but is not limited to a device provisioning protocol (DPP), WIFI alliance protocol, a software provisioning protocol, and/or other types of protocols utilized to provision or configure client devices. In some examples, the client device may be initialized without being able to determine which of the plurality of configuration protocols is being utilized to configure the client device. In addition, connecting to a particular configuration protocol can be resource intensive. Thus, it may be difficult to set up configuration of the client device for a particular configuration protocol since the client device may not be capable of determining the particular configuration protocol.

[0010] The present disclosure relates to performing tests for communication protocols that can be utilized as a configuration protocol for a client device. In some examples, testing for communication protocols can be performed by the client device to determine a communication protocol to be utilized to configure the client device. In this way, it can be relatively easier to configure the client device despite the type of configuration protocol that is being utilized to configure the client device. In some examples, the client device may be limited to utilizing a single communication channel at a time. In these examples, the client device can be activated and begin initialization by determining a communication channel that is likely to be utilized for configuration. The client device can perform a test by mimicking an access point or other type of network device by transmitting beacons to other devices and/or searching for beacons from other network devices on the determined single channel. In this way, the client device can be utilized to search for a particular configuration protocol to be utilized for device configuration.

[0011] Figure 1 illustrates an example of a system 100 including a computing device 102 for testing communication protocols for a client device 124. In some examples the computing device 102 can include a processor resource 104 communicatively coupled to a memory resource 106. As described further herein, the memory resource 106 can include instructions 108, 110, 112, 114 that can be executed by the processor resource 104 to perform particular functions. In some examples, the computing device 102 can be associated with the client device 124. For example, the computing device 102 can be utilized to execute instructions associated with functions of the client device 124. In some examples, the computing device 102 can be local or remote to the client device 124. For example, the computing device 102 can be a cloud resource that is remote from the client device 124 or the computing device 102 can be within an enclosure of the client device 124. [0012] In some examples, the computing device 102 can be communicatively coupled to the client device 124 through a communication path 116. As used herein, a communication path, such as communication path 116, refers to a connection that allows signals to be transferred between devices or within a particular device. In these examples, the signals can be utilized to provide communication between different devices and/or components within a device. For example, the computing device 102 can utilize the communication path 116 to instruct the client device 124 to execute particular print jobs when the client device 124 is a printing device. Although the client device 124 is illustrated as a printing device, other types of client devices can be utilized to test communication protocols as described herein.

[0013] As described herein, the computing device 102 can be utilized to control functions of the client device 124. The computing device 102 can include components such as a processor resource 104. As used herein, the processor resource 104 can include, but is not limited to: a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a metal-programmable cell array (MPCA), a semiconductor-based microprocessor, or other combination of circuitry and/or logic to orchestrate execution of instructions 108, 110, 112, 114. In other examples, the computing device 102 can include instructions 108, 110, 112, 114 stored on a machine- readable medium (e.g., memory resource 106, non-transitory computer-readable medium, etc.) and executable by a processor resource 104. In a specific example, the computing device 102 utilizes a non-transitory computer-readable medium storing instructions 108, 110, 112, 114 that, when executed, cause the processor resource 104 to perform corresponding functions.

[0014] In some examples, the computing device 102 can include instructions 108 that can be executed by a processor resource 104 to cause the client device 124 to activate an access point mode. As used herein, an access point mode includes a mode of operation that mimics the actions of an access point of a network. As used herein, an access point includes an electrical device that can provide access to a network. For example, an access point can include a router or switching device. In some examples, the access point mode of the computing device 102 can be an access point mode of the client device 124.

[0015] In some examples, the client device 124 can be put into the access point mode to search for communication protocols that can be utilized to configure the client device 124. In some examples, the access point mode can allow the client device 124 and/or computing device 102 to transmit access point beacons. As used herein, an access point beacon can include a data packet that includes information related to the client device 124 and announce the presence of the client device 124. In some examples, the client device 124 can transmit the access point beacon to all devices within a particular area. In some examples, the access point beacons can be received by a remote device 120 and/or other computing devices within range of a signal generated by the client device 124.

[0016] In some examples, the computing device 102 can include instructions 110 that can be executed by a processor resource 104 to cause the client device 124 to activate a first communication channel to perform a first test on a plurality of communication protocols. In some examples, the client device 124 can include a single channel transmitter (e.g. , wireless communication device, etc.) that can utilize a single communication channel at a time. That is, the client device 124 may not be capable of transmitting signals on a plurality of different communication channels. In some examples, the computing device 102 can determine that the first communication channel is more likely than other communication channels to communicatively couple the client device 124 to a remote device 120 to configure the client device 124.

[0017] In some examples, the test for the plurality of communication protocols can include sending access point beacons, searching for network devices 122 sending access point beacons, and/or other tests to search for a configuration device to be utilized to configure the client device 124. In some examples, the test can be a plurality of tests that are performed utilizing the first communication channel. As described herein, the client device 124 may be able to utilize a single channel to send access point beacons or other data packets. In this example, the first communication channel can be a first selected channel by the computing device 102 and/or client device 124.

[0018] In some examples, the computing device 102 can include instructions 112 that can be executed by a processor resource 104 to cause the client device 124 to activate a second communication channel to perform a second test for the plurality of communication protocols when the first test exceeds a test limit. In some examples, the first test can include a plurality of tests to search for a configuration device to configure the client device 124. In some examples, the first test can be performed on the first communication channel. When a configuration device is not detected utilizing the first communication channel, the computing device 102 can switch to a second communication channel. [0019] In some examples, the computing device 102 can include instructions that can be executed by a processor resource 104 to cause the client device 124 to deactivate the first communication channel when the client device 124 activates the second communication channel. As described herein, the client device 124 may be able to utilize a single communication channel to send and/or receive communication. Thus, when the second communication channel is activated by the computing device 102, the first communication is deactivated to allow the second communication channel to operate. In some examples, the second test can include the same or similar plurality of tests as the first test utilizing the second communication channel. For example, the client device 124 can send AP beacons utilizing the second communication channel, search for AP beacons sent by network devices utilizing the second communication channel, and/or send different AP beacons utilizing the second communication channel. In this way, a plurality of different configuration protocols can be tested to determine a configuration protocol for the client device 124. As described further herein, the first test and the second test can include a plurality of tests that can be performed sequentially.

[0020] In some examples, the computing device 102 can include instructions 114 that can be executed by a processor resource 104 to cause the client device 124 to identify a communication protocol to configure the computing device 102 and/or client device 124 from the plurality of communication protocols upon receiving a response on the second communication channel. In some examples, the remote device 120 can receive an access point beacon from the client device 124 and respond with a response message indicating that the remote device 120 is a configurator device for the client device 124. In these examples, the remote device 120 can establish a communication path 126-1 to perform a particular configuration of the client device 124 utilizing a particular configuration protocol. In other examples, the client device 124 can receive a beacon or message from a network device 122 on the second communication channel indicating that the network device 122 is a configurator device that can configure the client device 124. in these examples, the network device 122 can establish a communication path 126-2 to perform a particular configuration of the client device 124 utilizing a particular configuration protocol. In these examples, the network device 122 can have a communication path 126-3 with the remote device 120. That is, the remote device 120, the network device 122, and the client device 124 can be part of the same network (e.g., local area network (LAN), wide area network (WAN), etc.).

[0021] In some examples, the communication protocol to configure the computing device 102 and/or client device 124 is identified based on communication received in response to an access point beacon sent during the second test utilizing the second communication channel. For example, the remote device 120 can utilize a first communication protocol and the network device 122 can utilize a second communication protocol. In this way, the communication protocol used to configure the computing device 102 and/or client device 124 can be based on whether the remote device 120 responds to the access point beacon sent by the client device 124 or whether the remote device 120 receives an access point beacon from the network device 122.

[0022] In some examples, the communication protocol to configure the computing device 102 and/or client device 124 can be identified based on communication received from a network device 120 when the second communication channel is activated. For example, the network device 120 can be operating on the second communication channel and send access point beacons to search for other devices utilizing the second communication channel. In this way, the client device 124 can search for these types of access point beacons from network devices such as the network device 120 and be configured by the network device 120 when the network device 120 is a configurator device. In some examples, the network device 120 is a configurator device that includes instructions to configure the computing device 102 and/or client device 124 utilizing the second communication channel. As used herein, a configurator device can include a device that is capable of configurating a different device. For example, a configurator device for the client device 124 can be a device that is capable of configurating the client device 124 utilizing a particular configuration protocol.

[0023] As described herein, the first test can include instructions to transmit access point beacons utilizing the first communication channel and the second test can include instructions to transmit access point beacons utilizing the second communication channel. In this way, devices utilizing the first communication channel can receive and/or respond to the access point beacons sent on the first communication channel and devices utilizing the second communication channel can receive and/or respond to the access point beacons sent on the second communication channel.

[0024] The system 100 can be utilized to identify a configurator device for configurating the client device 124. Since a plurality of different devices may be capable of being configurator devices for the client device 124, the system 100 can be utilized to identify a particular configurator device that is present within an area of the client device 124.

[0025] Figure 2 illustrates an example of a memory resource 206 storing instructions for testing communication protocols for a client device. In some examples, the memory resource 206 can be a part of a computing device or controller that can be communicatively coupled to a computing system that includes client devices and/or network devices. For example, the memory resource 206 can be part of a computing device 102 as referenced in Figure 1 and communicatively coupled to client device 124 as referenced in Figure 1. In some examples, the memory resource 206 can be communicatively coupled to a processor resource 204 that can execute instructions 232, 234, 236, 238, 240, 242, 244 stored on the memory resource 206. For example, the memory resource 206 can be communicatively coupled to the processor resource 204 through a communication path 216. In some examples, a communication path 216 can include a wired or wireless connection that can allow communication between devices and/or components within a single device.

[0026] The memory resource 206 may be electronic, magnetic, optical, or other physical storage device that stores executable instructions. Thus, non- transitory machine readable medium (MRM) (e.g. , a memory resource 206) may be, for example, a non-transitory MRM comprising Random-Access Memory (RAM), read-only memory (ROM), an Electrically-Erasable Programmable ROM (EEPROM), a storage drive, an optical disc, and the like. The non-transitory machine readable medium (e.g., a memory resource 206) may be disposed within a controller and/or computing device. In this example, the executable instructions 232, 234, 236, 238, 240, 242, 244 can be “installed” on the device. Additionally, and/or alternatively, the non-transitory machine readable medium (e.g., a memory resource) can be a portable, external or remote storage medium, for example, that allows a computing system to download the instructions 232, 234, 236, 238, 240, 242, 244 from the portable/external/remote storage medium. In this situation, the executable instructions may be part of an “installation package”. As described herein, the non- transitory machine readable medium (e.g., a memory resource 206) can be encoded with executable instructions for generating illumination portions on the display to alter a luminosity at a subject.

[0027] The instructions 232, when executed by a processor resource such as the processor resource 204, can include instructions to activate a first communication channel. As described herein, activating the first communication channel can include designating a single channel communication device to the first communication channel such that communication can be sent and/or received on the first communication channel. As described herein, the first communication channel can be identified as a communication channel that has been determined to be a candidate for connecting with a configuration device. In some examples, the communication channel can be a communication channel that is used for particular configuration devices that can be utilized to configure a corresponding client device. [0028] The instructions 234, when executed by a processor resource such as the processor resource 204, can include instructions to send a first beacon, on the first communication channel, to be received by a first type of device. As described herein, the first beacon can be an access point beacon that is sent over the first communication channel. As described herein, an access point beacon can include a description of the device (e.g., client device) and/or a description of how to connect with the device. In this way, the first beacon can be sent on the first communication channel during an access point mode, such that the first beacon is transmitted or sent on the first communication as if the device were an access point searching for other network devices.

[0029] In some examples, the first type of device can include a remote device (e.g., remote device 120 as referenced in Figure 1, smart phone, tablet, remote computing device, etc.) that can utilize a first type of configuration protocol. For example, the remote device can utilize device provisioning protocol (DPP) for configuration a client device. For example, the remote device can be capable of performing DPP on the client device to configure the client device. In some examples, a communication path can be established between the client device and the remote device to initiate the DPP.

[0030] The instructions 236, when executed by a processor resource such as the processor resource 204, can include instructions to search, on the first communication channel, for a second beacon of a second type of device, in some examples, searching for a second beacon can include searching for an access point beacon from a network device or access point within a network that is capable of being a configurator device for the client device. For example, the second type of device can be a network device (e.g., network device 122 as referenced in Figure 1, network router, network modem, etc.) that is part of a network within the area of a client device. In these examples, the client device can receive the second beacon from the network device on the first communication channel and identify the second type of device as a configurator device.

[0031] The instructions 238, when executed by a processor resource such as the processor resource 204, can include instructions to activate a second communication and disable the first communication channel when the first type of device or second type of device are not found utilizing the first communication channel. As described further herein, the client device can utilize the first communication channel for a first period of time to determine if a configurator device is found. If it is determined that a configurator device is not communicatively coupled to or utilizing the first communication channel, the client device can switch to a different channel (e.g., second communication channel, etc.)

[0032] The instructions 240, when executed by a processor resource such as the processor resource 204, can include instructions to send the first beacon, on the second communication channel, to be received by the first type of device. As described herein, the first beacon can be an access point beacon that can be sent again over the second communication channel when the first communication channel is switched or altered to the second communication channel. In some examples, the first beacon can be utilized to search for the first type of device utilizing the second communication channel.

[0033] The instructions 242, when executed by a processor resource such as the processor resource 204, can include instructions to search, on the second communication channel, for the second beacon of the second type of device. As described herein, a client device can search for access point beacons on the second communication channel. In this way, the client device can search for the second beacon of the second type of device that is an access point of a network. For example, the second type of device can be a network device that sends out access point beacons to connect to other network devices. In this way, the client device can mimic an access point and search for the second beacon of a network device to determine if the network device is a configurator device for the client device.

[0034] The instructions 244, when executed by a processor resource such as the processor resource 204, can include instructions to select the first type of device as a configuration device when the first type of device responds to the first beacon and select the second type of device as the configuration device when the second beacon is received by the second type device. In some examples, the first type of device can be selected to configure the client device when the first type of device responds to the first beacon sent by the client device. In some examples, the first type of device can respond to the first beacon on the second communication channel when operating on the second communication channel.

[0035] If the first type of device does not respond to the first beacon, the client device can receive the second beacon from the second type of device. In these examples, the first beacon and the second beacon can be sent sequentially to prioritize a type of device to be utilized for configuration of the client device. For example, the first type of device can be prioritized over the second type of device. In this example, the client device may send the first beacon and wait for a failed response before searching for the second beacon. In this way, the higher priority type of device can be selected even when a plurality of configuration devices are available to the client device.

[0036] Figure 3 illustrates an example of a system 300 including a computing device 302 for testing communication protocols for a client device 324. In some examples the computing device 302 can be a device that includes a processor resource 304 communicatively coupled to a memory resource 306. As described herein, the memory resource 306 can include or store instructions 352, 354, 356, 358, 360, 362, 364 that can be executed by the processor resource 304 to perform particular functions. In some examples, the client device 324 can establish a communication path 326-1 with a remote device 320 and/or a communication path 326-2 with a network device 322. In addition, the remote device 320 can establish a communication path with the network device 322. In this way, the remote device 320, client device 324 and network device 322 can be part of the same network.

[0037] In some examples, the computing device 302 can include instructions 352 that can be executed by a processor resource 304 to alter the client device 324 from a client device mode to an access point (AP) mode. As described herein, a client device mode can be a normal operation mode for a client device 324. In the client device mode, the client device 324 can perform functions. For example, the client device 324 can be a printing device. In this example, the client device mode of the printing device can allow the printing device to generate printed images on print media. In some examples, the client device 324 can enter a client device mode when the client device 324 is configured by a configurator device.

[0038] In some examples, the client device 324 can be communicatively coupled to the computing device 302 through a communication path 316. In some examples, the computing device 302 can be utilized within the client device mode to execute instructions to perform the functions of the client device 324. In some examples, the client device 324 can be altered into an access point mode when the client device 324 is to be configured. In some examples, the client device 324 can be configured at an initial startup of the client device 324. In some examples, the access point mode of the client device 324 can be initiated such that the client device 324 and/or computing device 302 can mimic an access point attempting to connect to a different network device. That is, the client device 324 can transmit access point beacons that can include information relating to the client device 324 to allow other devices to establish connections with the client device 324.

[0039] In some examples, the computing device 302 can include instructions 354 that can be executed by a processor resource 304 to send a first plurality of AP beacons utilizing a channel of the communication device 366 for a first period of time. In some examples, the client device 324 can include a communication device 366 that can be utilized to establish communication paths with other devices. For example, the communication device 366 can be wireless communication device such as, but not limited to: a WIFI router, a Bluetooth device, a near field communication (NFC) device, or other device that can be utilized to transmit or receive data packets. In some examples, the communication device 366 can be a single channel communication device that is capable of operating on a single channel at a time. That is, the communication device 366 may be able to operate on a first communication channel, but not able to operate on other communication channels while operating on the first communication channel.

[0040] In some examples, the client device 324 can select the channel of the communication device 366 and send the plurality of access point beacons to mimic a behavior of an access point. In this way, the plurality of access point beacons can include information related to the client device 324 and/or connection protocols for establishing a communication path with the client device 324. In addition, the plurality of access point beacons can indicate that the client device 324 is searching for a configurator device that is capable of configuring the client device 324. In some examples, the first period of time can be set to wait for a response from potential configurator devices. For example, the remote device 320 can be a configurator device for the client device 324. In this example, the first period of time can allow the remote device 320 to respond to the plurality of access point beacons and establish a communication path 326-1 when the remote device 320 receives the plurality of access point beacons on the first communication channel.

[0041] In some examples, the computing device 302 can include instructions 356 that can be executed by a processor resource 304 to search for a first access point response beacon from a first type of configuration device. In some examples, the client device 324 can wait for the first period of time to receive the first access point response beacon from the first type of configuration device (e.g., remote device 320). In this way, the client device 324 can search for access point response beacons from devices that have received the sent access point beacons on the first communication channel.

[0042] In some examples, the computing device 302 can include instructions 358 that can be executed by a processor resource 304 to search for a device beacon utilizing the channel of the communication device from a second type of configuration device. In some examples, the first period of time may expire and the computing device 302 and/or client device 324 can search for device beacons or access point beacons from the second type of configuration device (e.g., network device 322, etc.). In some examples, the second type of configuration device can be a network device, such as network device 322. In these examples, the network device 322 can periodically send out device beacons that are the same or similar to access point beacons on a particular channel that is being utilized by the network device 322. In these examples, the client device 324 can search for these device beacons on the channel and can receive the device beacons when the network device 322 is operating on the same channel as the selected channel of the client device 324.

[0043] In some examples, the computing device 302 can include instructions 360 that can be executed by a processor resource 304 to send a second plurality of access point beacons utilizing the channel of the communication device for a second period of time. In some examples, it can be determined that the second type of configuration device is not operating on the same channel as the client device 324. In this example, the client device 324 can switch to sending out the second plurality of access point beacons to search for a third type of configuration device. In some examples, the first type of configuration device can utilize a first type of configuration protocol, the second type of configuration device can utilize a second type of configuration protocol, and the third type of configuration device can utilize a third type of configuration protocol. In some examples, the third type of configuration device can be the remote device 320 that utilizes the third type of configuration protocol instead of the first type of configuration protocol.

[0044] In some examples, the computing device 302 can include instructions 362 that can be executed by a processor resource 304 to search for a second access point response beacon from a third type of configuration device. In some examples, the second access point response beacon can indicate to the client device 324 that the third type of configuration device is a configuration device that utilizes the third type of configuration protocol.

[0045] In some examples, the computing device 302 can include instructions 364 that can be executed by a processor resource 304 to select one of the first type of configuration device, second type of configuration device, and third type of configuration device based on time a particular response beacon is received at the communication device. As described herein, the tests to identify the first type of configuration device, the second type of configuration device, and the third type of configuration device can be performed sequentially. In these examples, a first identified device can be selected as the configuration device to configure the client device 324. In other examples, the first type of configuration device, the second type of configuration device, and the third type of configuration device can be categorized or prioritized based on the type of configuration protocol. For example, a particular type of configuration protocol can be prioritized when the configuration protocol includes additional features, is easier to utilize as an end user, and/or increases a chance of success of the configuration of the client device 324.

[0046] Figure 4 illustrates an example of a method 470 for testing communication protocols for a client device. In some examples, the method 470 can be executed by a client device and/or computing device that includes a processor resource that executes instructions stored on a non-transitory computer readable medium. In some examples, the method 470 is a specific example for testing communication protocols for a client device.

[0047] At 471, the method 470 can start. In some examples, the method 470 can start upon an initiation or initial start-up of a client device. At 472, the method 470 can include powering on the enrollee. As used herein, an enrollee is a device or system to be configured or provisioned. For example, the enrollee can be a client device. At 473, the method 470 can include setting a timeout or longer timeout to zero. In some examples, the timeout or longer timeout can be a timer that when at zero starts a search for a configuration device.

[0048] At 475, the method 470 can include setting a preferred channel (e.g., communication channel, etc.) and setting a short time count to zero. In some examples, the short time count can include a timer for sending access point beacons over the preferred channel. At 476, the method 470 can include sending access point (AP) configuration ready indications and listening for incoming packets. In some examples, the AP configuration ready indications can be the access point beacons as described herein. That is, the AP configuration ready indications can be beacons or signals to indicate that the enrollee is ready for configuration. In some examples, the AP configuration ready indications can be performed for a relatively short period of time (e.g., 5 seconds, 10 seconds, etc.). In some examples, the short time period for sending the AP configuration ready indications can be a first time period and a timeout for the entire method 470 can be 6 times greater than the short time period. For example, the time period for sending the AP configuration ready indications can be 5 seconds and the timeout for the entire method 470 can be 30 seconds. These time periods are only examples, other time periods can be selected without departing from the present disclosure.

[0049] At 477, the method 470 can include determining if a configuration request was received in response to the AP configuration ready indications that were sent over the preferred channel. If a configuration request was received, the method 470 moves to 478. The portion of the method 470 related to 478 are illustrated in Figure 5 at 578. If the configuration request was not received, the method 470 moves to 479. At 479, the method 470 includes determining if an AP configuration indication was received on the preferred channel. As described herein, a network device can send out access point beacons that can be received at the client device. In this example, an AP configuration indication can be a beacon received by a network device on the preferred channel. If the AP configuration indication was received, the method 470 moves to 480.

[0050] At 480, the method 470 can include sending configuration availability indication. In some examples, the configuration availability indication can include a response beacon sent to the network device to indicate that the enrollee or client device is to be configured by the network device. When the configuration response is sent, the method 470 moves to 481. At 481, the method 470 can include determining if an AP configuration request is received by the network device. In some examples, the network device may not be able to configure the enrollee. In these examples, the method moves back to 476. However, if the network device is able to configure the enrollee or client device, the AP configuration request will be received and the method 470 moves to 478. As described herein, the portion of the method 470 related to 478 is described herein at 578 in Figure 5.

[0051] When an AP configuration indication is not received at 479, the method 470 moves to 482. At 482, the method 470 can include receiving a configuration connection request. In some examples, the configuration request at 477 can be different than the configuration connection request. For example, the configuration request at 477 can correspond to a first type of configuration protocol (e.g., DPP, etc.) and the configuration connection request can correspond to a second type of configuration protocol (e.g., legacy provisioning, provisioning with proprietary software provided by a manufacturer, etc.). When a configuration connection request is received, the method 470 can move to 483. At 483, the method 470 can include sending a configuration response to the configuration connection request. When the configuration response is sent, the method can move to 484. The portion of the method 470 relating to 484 is described further in Figure 5 at 584.

[0052] If a configuration connection request is not received at 482, the method 470 can move to 486. At 486, a timeout that is 6 times greater than the short time period can be analyzed to determine if it has occurred. If the timeout has occurred or been reached, the method 470 can move to 489. The portion of the method 470 related to 489 is described in Figure 5 at 589. If the timeout has not be reached the method 470 can move to 490. At 490 the method 470 can determine if the timeout was greater than the short time. If the time out was not greater than the short time, the method 470 can move back to 476. If the time out was greater than the short time, the method can move to 491. At 491 , the method 470 can include scanning for other channels than the preferred channel to search for AP configuration indications. The method 470 then moves to 492.

[0053] At 492, the method 470 can include determining if AP configuration indications were received on the different channels. If there were no AP configuration indications received at 492, the method 470 moves to 475. If AP configuration notifications were received at 492, the method 470 can move to 493. At 493, the method 470 can include switching to the channel that the AP configuration notification was received on and send a configuration availability indication. The method 470 moves to 494 to determine if a configuration request was received. If the configuration request was not received, the method 470 can move to 495 to search for more channels for the AP configuration indication. If the AP configuration indication was received on a different channel, the method 470 moves to 493. If there was no AP configuration indication received on the different channel, the method 470 can move back to 475. In some examples, the configuration request can be received at 494 and the method 470 can move to 478. As described herein, the portion of the method 470 represented by 478 is described further at 578 in Figure 5. [0054] Figure 5 illustrates an example of a method 501 for testing communication protocols for a client device. As described herein, the method 501 can include a first portion 589 that represents 489 of method 470 as illustrated in Figure 4, a second portion 578 that represents 478 of method 470 as illustrated in Figure 4, and a third portion 584 that represents 484 of method 470 as illustrated in Figure 4.

[0055] The first portion 589 of the method 501 can begin at 503, At 503, the first portion 589 of the method 501 can include building a channel list (e.g., list of communication channels, etc.). In some examples, building a channel list can include identifying a plurality of channels that can be utilized by configuration devices. In some examples, the channel list can be generated according to section 6.2.2 of the DPP specification (Device Provisioning Protocol Specification Version 1.2.5 by WI-FI Alliance Proprietary). Specifically steps 1-4 of section 6.2.2 of the DPP specification can be utilized to build the channel list. In a specific example, steps 1-4 can include the following steps. Step 1 states “If the enrollee includes a list of global operating class/channel pairs in its DPP URI, add all those channels to the channel list; then,”. Step 2 states “Select preferred Presence Announcement channels on which to send a DPP Presence Announcement frame to the broadcast address. For interoperability purposes, the preferred channel shall be one from each of the following bands, as supported by the Enrollee: 2.4 GHz: Channel 6 (2.437 GHz), 5 GHz: Channel 44 (5.220 GHz) if local regulations permit operation only in the 5.150 - 5.250 GHz band and Channel 149 (5.745 GHz) otherwise 60 GHz: Channel 2 (60.48 GHz). Add the preferred Presence Announcement channels to the channel list; then,”. Step 3 states, “Scan all supported bands and add each channel on which an AP is advertising the Configurator Connectivity element (Section 8.5.2) to the channel list; then,”. Step 4 states, “Remove any second or subsequent occurrence of duplicate channels in the channel list.”

[0056] In some examples, once the channel list is generated, the first portion 589 of method 501 can move to 505. At 505, the method 501 can include performing step 1 of 6.2.3 of the DPP specification. In some examples, 505 can include an enrollee presence announcement procedure defined by the DPP specification. In a specific example, the enrollee presence announcement procedure can include the following test: an enrollee shall begin transmitting the Presence Announcement frames when the following conditions are true: the enrollee is in DPP Responder role, the enrollee has an active bootstrapping key that is capable of being transmitted through one or more of the bootstrapping mechanism specified in Section 5 of the DPP specification, and the enrollee is ready to engage in the DPP Authentication protocol exchange using the active bootstrapping key. Step 1 can include: for each channel in the channel list generated as per Section 6.2.2 of the DPP specification, the enrollee, shall send a DPP Presence Announcement frame and listen for 2 seconds to receive a DPP Authentication Request frame. If a valid DPP Authentication Request frame is not received, it shall repeat the presence announcement for the next channel in the channel list.

[0057] After performing the enrollee presence announcement procedure, the first portion 589 of the method 501 can move to 507 to determine if a configuration request was received in response to the enrollee presence announcement procedure. If a configuration request was received, first portion 589 of the method 501 can move to 517 of the second portion 578 of the method 501. If a configuration request was not received, the first portion 589 of the method 501 can move to 509. At 509, the first portion 589 of the method 501 can include determining if step 2 of the Section 6.2.2 of the DPP specification was reached. Step 2 can include the following: when all channels in the channel list have been exhausted, the enrollee shall pause for at least 30 seconds before repeating the procedure in step 1 above. If the enrollee's DPP URI includes a "channel-list" (Section 5.2.1 of the DPP specification) then the enrollee should dwell on the channels from that list; otherwise, it should dwell on the preferred Presence Announcement channels as specified in Section 6.2.2 of the DPP specification. The enrollee should increase the wait time on channels in the channel list each time the procedure in step 1 is repeated. If step 2 has not been reached, the first portion 589 of the method 501 can move back to 505. If step has been reached, the first portion 589 of the method 501 can move to 511. [0058] At 511 , the first portion 589 of the method 501 can include determining whether the device has been attempting provisioning or configuration for over an implementation specific period of time. If the specific period of time has not been reached, the first portion 589 of the method 501 can move to 515 and instead of pausing for 30 seconds, the first portion 589 of the method 501 can move to 574 and return to 474 as illustrated in Figure 4. If the device has been attempting for longer than the specific time period, the first portion 589 of the method 501 can move to 513. At 513, the first portion 589 of the method 501 can include terminating setup and sending a user a message that the setup was terminated.

[0059] The second portion 578 of the method 501 can begin at 517. At 517, the second portion 578 of the method 501 can include sending a configuration response. When the configuration response is sent, the second portion 578 of the method 501 can move to 519. At 519, the second portion 578 of the method 501 can include continuing provisioning according to the DDP specification. The second portion 578 of the method 501 can then move to 521 where the method 501 can proceed with a software setup to configure the enrollee.

[0060] The third portion 584 of the method 501 can begin at 523. At 523, the third portion 584 of the method 501 can include continuing with proprietary legacy provisioning. As used herein, a legacy provisioning can include a software that is utilized to configure the enrollee or client device. A proprietary legacy provisioning can include software that is provided by a manufacturer of the client device to configure the client device.

[0061] In the foregoing detailed description of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how examples of the disclosure may be practiced. These examples are described in sufficient detail to enable those of ordinary skill in the art to practice the examples of this disclosure, and it is to be understood that other examples may be utilized and that process, electrical, and/or structural changes may be made without departing from the scope of the disclosure. Further, as used herein, “a” refers to one such thing or more than one such thing.

[0062] The figures herein follow a numbering convention in which the first digit corresponds to the drawing figure number and the remaining digits identify an element or component in the drawing. For example, reference numeral 102 may refer to element 102 in Figure 1 and an analogous element may be identified by reference numeral 302 in Figure 3. Elements shown in the various figures herein can be added, exchanged, and/or eliminated to provide additional examples of the disclosure. In addition, the proportion and the relative scale of the elements provided in the figures are intended to illustrate the examples of the disclosure and should not be taken in a limiting sense.

[0063] It can be understood that when an element is referred to as being "on," "connected to", “coupled to”, or "coupled with" another element, it can be directly on, connected, or coupled with the other element or intervening elements may be present. In contrast, when an object is “directly coupled to” or “directly coupled with” another element it is understood that are no intervening elements (adhesives, screws, other elements) etc.

[0064] The above specification, examples, and data provide a description of the system and method of the disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the disclosure, this specification merely sets forth some of the many possible example configurations and implementations.