Wake-up by a network device

Examples described herein provide wake-up of a network device. Examples include receiving, by a network interface of a first network device having a first Media Access Control (MAC) address, a request to wake-up a second network device having a second MAC address that is assigned to a same subnet as the first MAC address, and in response to the request, generating, by the first network device, a first wake-up frame having a destination address of the second MAC address and configured to cause the second network device to transition from operating in the first power mode to operating in the second power mode. Examples include transmitting, by the network interface of the first network device, the first wake-up frame to the second MAC address of the second network device.

BACKGROUND

A network device may provide connectivity to a wireless network by establishing wireless communication links between nodes of the network. For instance, a network device may establish wireless communication links between nodes of a wireless local area network (WLAN). Moreover, a network device may provide connectivity to a wireless network by establish communication links between the wireless network and another network. For instance, a network device may provide connectivity to a WLAN by establishing wired and/or wireless communication links between the WLAN and a local area network (LAN), another wireless local area network (WLAN), a wide area network (WAN) (e.g., the Internet), a cellular network, or a combination thereof.

Multiple network devices may be used to provide connectivity to a wireless network. For example, a first network device may operate as a gateway node which is connected to a core network (e.g., the Internet) via a wired communication link, and a second network device may operate as a remote node which is connected to the first network device via a wired and/or wireless communication link. In such example, each of the first and second network devices may establish wireless communication links between nodes (e.g., client devices) of a WLAN. It may be advantageous to use multiple network devices to provide connectivity to a wireless network, for example, to extend the range of the network, to increase client capacity, channel utilization, signal quality, reliability, or bandwidth of the network, or a combination thereof.

DETAILED DESCRIPTION

As noted above, multiple network devices may be used to provide connectivity to a wireless network. However, the use of multiple network devices in a wireless network may lead to increased energy consumption. For instance, large-scale WLANs, such as enterprise or campus WLANs, may have hundreds or even thousands of network devices. In such examples, there may be energy inefficiency when all of the network devices must operate at full power mode at all times, even when some of the network devices are not in use.

Recently, there have been efforts to increase energy efficiency for network devices by using Wake-on-LAN (WoL) or Wake-on-WLAN (WoWLAN) technology. As used herein, “WoL” refers to an Ethernet standard that allows control of a target device in a LAN by transmitting a broadcast frame known as a “magic packet” to the target device. As used herein, “WoWLAN” refers to a supplementary Wi-Fi standard to WoL that allows control of a target device in a WLAN by transmitting a magic packet to the target device via a Wi-Fi-based signal. A magic packet may contain anywhere within its payload 6 bytes each having a value of 255 (i.e., FF FF FF FF FF FF in hexadecimal), followed by sixteen repetitions of the target device's 48-bit MAC address, for a total of 102 bytes. When a target device receives a magic packet, the magic packet is configured to instruct the target device to “wake-up,” e.g., transition from operating in a power save mode to operating in a full power mode. By using WoL and WoWLAN technology, a network device may be placed in a power save mode when not in use, and then instructed to wake-up prior to use by transmitting a magic packet to the network device. Thus, WoL and WoWLAN may increase energy efficiency for network devices.

Despite the great potential that WoL and WoWLAN offer for increasing energy efficiency of network devices, existing WoL and WoWLAN techniques may experience at least the following problems for wireless networks. First, when magic packets are broadcast frames, they may not be routed between multiple hops (e.g., intermediate nodes) of a wireless network. For instance, when a magic packet is transmitted as a broadcast frame using a connectionless protocol, such as User Data Protocol (UDP), the magic packet may be dropped by an intermediate router before reaching a target network device, as the intermediate router may not recognize the destination address (i.e., broadcast address) of the magic packet. Moreover, it may not be possible to transmit a magic packet using a connection-oriented protocol, such as Transmission Control Protocol (TCP), when the target network device is in a power save mode. Thus, existing WoL and WoWLAN techniques may not be used to reliably transmit magic packets to network devices in a wireless network having multi-hop routing. Second, despite efforts to overcome this problem by transmitting magic packets as subnet directed broadcasts (SDBs) rather than as broadcast frames, SDBs may require changes to configurations of intermediate routers. As used herein, an “SDB” (i.e., IP directed broadcast) refers to a transmission of a layer 3 (L3) packet whose destination address is a broadcast address for a given destination subnet, but which originates from a node that is not itself part of that destination subnet. When a packet transmitted by SDB reaches an intermediate router, the intermediate router may broadcast the packet using a layer 2 (L2) broadcast. However, as noted above, allowing SDBs for intermediate routers may require changing configurations of the intermediate routers, and this requirement may be burdensome for wireless networks having multiple network devices. Furthermore, wireless networks having routers which are configured to allow SDBs may be more vulnerable to flooding of the wireless network by broadcast packets.

To address these issues, examples described herein may receive, by a network interface of a first network device having a first Media Access Control (MAC) address, a request to wake-up a second network device having a second MAC address that is assigned to a same subnet as the first MAC address, and in response to the request, generate, by the first network device, a first wake-up frame having a destination address of the second MAC address and configured to cause the second network device to transition from operating in the first power mode to operating in the second power mode, and transmit, by the network interface of the first network device, the first wake-up frame to the second MAC address of the second network device.

In this manner, examples described herein may, in response the request, generate a first wake-up frame having the second MAC address as the destination address and configured to cause the second network device to transition from operating in the first power mode to operating in the second power mode, and transmit, by the network interface, the first wake-up frame to the second MAC address, thereby allowing wake-up of the second network device without requiring transmitting a broadcast frame. Thus, examples described herein may provide greater reliability as compared to existing WoL and WoWLAN techniques, which require transmitting magic frames as broadcast frames which can be dropped by intermediate routers. Moreover, examples described herein may provide greater ease of implementation and less vulnerability to flooding as compared to existing WoL and WoWLAN techniques, which require configuring intermediate routers to transmit magic packets as SDBs.

In examples described herein, a “frame” refers to a formatted unit of data which contains (i.e., encapsulates) a single network packet. According to the Open Systems Interconnection model (OSI model), a frame refers to a protocol data unit (PDU) at the L2 link layer. Moreover, under the protocols for the Institute of Electrical and Electronic Engineers (IEEE) 802.3 (e.g., Ethernet), IEEE 802.15.1, IEEE 802.15.4, Bluetooth®, ZigBee®, or Z-Wave®, a frame may comprise a source MAC address and a destination MAC address. As used herein, the term “broadcast frame” refers to a frame having a destination MAC address that is a broadcast address. A broadcast address may have 6 bytes each having a value of 255 (i.e., FF FF FF FF FF FF in hexadecimal.) It will be understood by one skilled in the art that a packet may comprise any suitable format(s) of units of data, now known or later developed.

In examples described herein, a “packet” (i.e., network packet) refers to a formatted unit of data which may be transmitted across one or more communication links of one or more networks. According to the OSI model, a packet refers to a PDU at the L3 network layer. Moreover, under the Transmission Control Protocol/Internet Protocol (TCP/IP), a packet (i.e., IP packet) may comprise an IP header. An IP header comprises a source IP address and a destination IP address. In some examples, a packet may comprise a header and a payload. In such examples, an IP header may comprise control information for delivering the payload, such as source and destination information, sequencing information, service information, flagging information, other transmission-related information, or the like, or a combination thereof. In some examples, the payload may comprise data which is carried by the packet. It will be understood by one skilled in the art that a packet may comprise any suitable format(s) of units of data, now known or later developed.

In examples described herein, a “subnet” (i.e., IP subnet) refers to a logical partition of an IP network. A subnet comprises one or more IP addresses. A subnet may be characterized by its subnet mask (i.e., netmask), which is a bitmask that, when applied by a bitwise AND operation to any IP address in a network, yields a routing prefix for an IP network.

Referring now to the drawings,FIG.1is a block diagram of an example network device100to transmit a first wake-up frame152based on request144. In the example ofFIG.1, network device100(which may be referred to herein as “first” network device100) includes at least one processing resource110and at least one machine-readable medium120comprising (e.g., encoded with) at least instructions122that are executable by the at least one processing resource110of network device100to implement functionalities described herein in relation to instructions122.

In the example ofFIG.1, network device100may be a wireless access point (WAP). In some examples, network device100may engage in any network data transmission operations, including, but not limited to, switching, routing, bridging, or a combination thereof. In examples described herein, a “WAP” refers to receiving points for any known or convenient wireless access technology which may later become known. Specifically, the term WAP is not intended to be limited to IEEE 802.11-based WAPs. A WAP generally functions as an electronic device that is adapted to allow wireless devices to connect to a wired network via various communications standards. A WAP may include any necessary hardware components to perform the inventions disclosed herein, including, but not limited to: processors, memories, display devices, input devices, communications equipment, etc. It will be understood by one of ordinary skill in the art that network device100may be any suitable type(s) of network devices made by any suitable manufacturer(s).

In the example ofFIG.1, network device100includes a network interface130having a first Media Access Control (MAC) address. Network interface130may comprise a network interface controller (NIC) having one or more ports (e.g., Ethernet ports), one or more sockets, one or more adapters, or a combination thereof. Moreover, althoughFIG.1shows that network device100comprises one network interface130, it will be understood that network device100may any suitable number and type(s) of network interfaces.

In the example ofFIG.1, network interface130may comprise a radio having the first MAC address. In some examples, one or more basic service set identifiers (BSSIDs) may corresponding to the first MAC address of the radio of network interface130. In some examples, the radio may operate at one or more frequency bands. For example, the radio may operate at a 5 GHz band which conforms to the IEEE 802.11ac standard, a 2.4 GHz band which conforms to one or more of the IEEE 802.11ac, 802.11n, and 802.11g standards, or a combination thereof. It will be understood by one skilled in the art that the radio of network interface130may transmit and receive wireless signals that conform to any suitable type(s) of wireless communications standard(s), now known or later developed, and/or operate at any suitable frequency range(s). In some examples, the radio may comprise an antenna which transmits directional and/or omnidirectional signals. In examples described herein, a “directional” signal refers to a signal which radiates more strongly in one or more directions as compared to one or more other directions along an azimuth plane (i.e., horizontal plane), whereas an “omnidirectional” signal refers to a signal which radiates equally in all directions along an azimuth plane. In some examples, the at least one radio may comprise a phased array antenna. In examples described herein, a “phased array antenna” refers to an array of antennas which can create a directional signal which can be electronically steered to point in different directions without moving the antennas. In some examples, the phased array antenna may comprise an array of directional and/or omnidirectional antennas which can focus radio frequency (RF) energy towards specific spatial directions. It will be understood by one skilled in the art that network interface130may comprise at least one radio which may comprise any suitable type(s) of antenna(s), now known or later developed. Moreover, it will be understood by one skilled in the art that network device100may comprise, two, four, eight, or any suitable number of radios.

In the example ofFIG.1, network device100may establish a communication link140with a network coordinator. In the example ofFIG.1, network device100may establish a communication link150with a second network device. In the example ofFIG.1, network device100may establish a communication link160with a third network device. Moreover, in the example ofFIG.1, network device100may establish wireless communication links for one or more nodes (e.g., client devices) of a WLAN. In some examples, one or more of communication links140,150, and160may comprise a wired link such as a wire, a cable, or an optical fiber, a wireless link such as a Wi-Fi link, a Bluetooth® link, a Bluetooth Low Energy® (BLE) link, a ZigBee® link, a Z-Wave® link, a cellular link, or the like, or a combination thereof. It will be understood by one skilled in the art that each of communication links140,150, and160may use any suitable type(s) of wired and/or wireless link(s), now known or later developed. In some examples, one or more of communication links140,150, and160may be established via network interface130. In some examples, one or both of communication links140and160may use at least one connection-oriented protocol, such as TCP, at least one connectionless protocol, such as UDP, or the like, or a combination thereof. It will be understood by one skilled in the art that each of communication links140and160may use any suitable type(s) of data transmission protocol(s), now known or later developed. In some examples, communication link150may use at least one connectionless protocol, such as UDP. It will be understood by one skilled in the art that communication link150may use any suitable type(s) of data transmission protocol(s), now known or later developed.

In examples described herein, a client device may comprise a processor, memory, and input/output interfaces for wired and/or wireless communication. In some examples, a client device may comprise a laptop computer, a desktop computer, a mobile device, and/or other wireless devices, although examples of the disclosure are not limited to such devices. In examples described herein, a mobile device may refer to devices that are (or may be) carried and/or worn by a user. For instance, a mobile device can be a phone (e.g., a smartphone), a tablet, a personal digital assistant (PDA), smart glasses, and/or a wrist-worn device (e.g., a smartwatch), among other types of mobile devices. In some examples, a client device may comprise a network device.

In the example ofFIG.1, instructions122may be configured to receive request144to wake-up a second network device having a second MAC address that is assigned to a same subnet as the first MAC address. In some examples, request144may be received from the network coordinator via communication link140. Request144may comprise at least one frame having a destination MAC address that corresponds to a MAC address (e.g., the first MAC address) of network device100. Request144may comprise at least one packet having a source IP address that corresponds to an IP address assigned to a network coordinator and/or a destination IP address that corresponds to an IP address assigned to network device100. Request144may comprise at least one packet having a payload configured to indicate the first MAC address, the second MAC address, a netmask corresponding to the subnet assigned to the first and second MAC addresses, or a combination thereof. It will be understood that request144may comprise any suitable type of frame and/or packet with any suitable type(s) of payload(s).

In the example ofFIG.1, instructions122may be configured to, based on (e.g., in response to) request144, generate first wake-up frame152having the second MAC address as a destination address and configured to cause the second network device to wake-up (e.g., transition from operating in a first power mode to operating in a second power mode.) First wake-up frame152may have the first MAC address as a source address. First wake-up frame152may comprise a packet which is configured to instruct the second network device to wake-up. In some examples, the packet may contains anywhere within its payload 6 bytes each having a value of 255 (i.e., FF FF FF FF FF FF in hexadecimal), followed by sixteen repetitions of the target computing device's 48-bit MAC address, for a total of 102 bytes. It will be understood that first wake-up frame152may comprise any suitable type of frame comprising any suitable type of packet with any suitable type(s) of payload(s).

In examples described herein, the first power mode may correspond to a power save mode or a power off mode of the second network device. In examples described herein, the second power mode may correspond to a full power mode or a power on mode of the second network device. In examples described herein, a “power save mode” of a device refers to a power mode which consumes less energy than another power mode for a given period of time, and a “power off mode” of a device refers to a power mode which consumes no energy for a given period of time. In examples described herein, a “full power mode” or “power on mode” of a device refers to a power mode which consumes more energy than another power mode for a given period of time. In some examples, a power save or power off mode of a network device may correspond to a standby mode which allows the network device to receive a wake-up packet, but does not allow the network device to perform certain other functionalities which the network device may perform in a full power or power on mode.

In the example ofFIG.1, instructions122may be configured to transmit, by network interface130, first wake-up frame152to the second MAC address of the second network device. That is, instructions122may be configured to transmit first wake-up frame152as an L2 unicast frame to the second MAC address of the second network device. In some examples, first wake-up frame152may be transmitted to the second network device via communication link150.

In the example ofFIG.1, instructions122may be configured to receive an acknowledgment frame154based on first wake-up frame152received at the second MAC address of the second network device. In some examples, acknowledgment frame154may be received by network interface130of network device100. In some examples, acknowledgement frame154may be received from the second network device via communication link150. Acknowledgment frame154may have the second MAC address as a source address and the first MAC address as a destination address. Acknowledgement frame154may comprise a packet having a payload that is configured to indicate to network device100that first wake-up frame152was received at the second MAC address of the second network device. It will be understood that acknowledgment frame154may comprise any suitable type of frame comprising any suitable type of packet with any suitable type(s) of payload(s).

In the example ofFIG.1, instructions122may be configured to, based on (e.g., in response to) a triggering event, determine that first wake-up frame152was received at the second MAC address of the second network device. In some examples, the triggering event may be a signal received by network device100from a computing device (e.g., the second network device, a client device, etc.) In some examples, the triggering event may occur after a predetermined time period after first wake-up frame152is received at the second MAC of the second network device.

In the example ofFIG.1, instructions122may be configured to transmit, to a network coordinator, a signal142indicating the first MAC address. In some examples, signal142may be transmitted to the network coordinator via communication link140. In the example ofFIG.1, instructions122may be configured to, based on (e.g., in response to) signal142, receive request144to wake-up the second network device. Signal142may comprise at least one packet having a payload configured to indicate to the network coordinator the first MAC address, a netmask corresponding to the subnet assigned to the first MAC address, or a combination thereof. Signal142may comprise at least one frame having a source MAC address that corresponds to a MAC address (e.g., first MAC address) of network device100and/or a destination MAC address that corresponds to a MAC address associated with the network coordinator. Signal142may comprise at least one packet having a source IP address that corresponds to an IP address assigned to network device100and/or a destination IP address that corresponds to an IP address assigned to the network coordinator. It will be understood that signal142may comprise any suitable type of frame and/or packet with any suitable type(s) of payload(s).

In the example ofFIG.1, instructions122may be configured to, based on (e.g., in response to) first wake-up frame152transmitted to the second MAC address of the second network device, transmit, to a third network device, a signal162indicating that first wake-up frame152was transmitted to the second MAC address of the second network device. In some examples, signal162may be transmitted to the second MAC address of the second network device via communication link160. Signal162may correspond to first wake-up frame152. In some examples, signal162may comprise first wake-up frame152. Signal162may comprise at least one packet having a payload configured to indicate to the third network device that first wake-up frame152was transmitted the second MAC address of the second network device. Signal162may comprise at least one frame having a source MAC address that corresponds to a MAC address (e.g., first MAC address) of network device100and/or a destination MAC address that corresponds to a third MAC address associated with the third network device, wherein the third MAC address is assigned to the same subnet as the first MAC address and the second MAC address. Signal162may comprise at least one packet having a source IP address that corresponds to an IP address assigned to network device100and/or a destination IP address that corresponds to an IP address assigned to the third network device. It will be understood that signal162may comprise any suitable type of frame and/or packet with any suitable type(s) of payload(s).

In this manner, the example network device100ofFIG.1may provide improved wake-up functionality. For instance, instructions122may be configured to, in response to request144, generate first wake-up frame152having the second MAC address as the destination address and configured to cause the second network device to transition from operating in the first power mode to operating in the second power mode, and transmit, by network interface130, first wake-up frame152to the second MAC address, thereby allowing wake-up of the second network device without requiring transmitting a broadcast frame. Thus, example network device100may provide greater reliability as compared to existing WoL and WoWLAN techniques which require transmitting magic packets as broadcast frames which can be dropped by intermediate routers. Moreover, example network device100may provide greater ease of implementation and less vulnerability to flooding because unlike existing WoL and WoWLAN techniques, wake-up functionality by network device100does not require configuring intermediate routers between network devices to forward magic packets as SDBs.

FIG.2is a block diagram of an example system201for wake-up by a network device. In the example ofFIG.2, system201may include first network device100, as described above in relation toFIG.1. System201may include a second network device200. System201may include a network coordinator250. System201may include a network290.

In the example ofFIG.2, second network device200includes at least one processing resource210and at least one machine-readable medium220comprising (e.g., encoded with) at least instructions222that are executable by the at least one processing resource210of second network device200to implement functionalities described herein in relation to instructions222. In some examples, one or more instructions222may be the same as or similar to one or more instructions122, as described above.

In the example ofFIG.2, second network device200may engage in any network data transmission operations, including, but not limited to, switching, routing, bridging, or a combination thereof. In some examples, second network device200may comprise a WAP. It will be understood by one of ordinary skill in the art that second network device200may be any suitable type(s) of network devices made by any suitable manufacturer(s).

In the example ofFIG.2, second network device200includes a network interface230having the second MAC address. Network interface230may comprise a NIC having one or more ports (e.g., Ethernet ports), one or more sockets, one or more adapters, or a combination thereof. Moreover, althoughFIG.2shows that second network device200comprises one network interface230, it will be understood that second network device200may any suitable number and type(s) of network interfaces.

In the example ofFIG.2, network interface230may comprise a radio having the second MAC address. In some examples, one or more BSSIDs may corresponding to the second MAC address of the radio of network interface230. In some examples, the radio may operate at one or more frequency bands. For example, the radio may operate at a 5 GHz band which conforms to the IEEE 802.11ac standard, a 2.4 GHz band which conforms to one or more of the IEEE 802.11ac, 802.11n, and 802.11g standards, or a combination thereof. It will be understood by one skilled in the art that the radio of network interface230may transmit and receive wireless signals that conform to any suitable type(s) of wireless communications standard(s), now known or later developed, and/or operate at any suitable frequency range(s). In some examples, the radio may comprise an antenna which transmits directional and/or omnidirectional signals. In some examples, the radio may comprise a phased array antenna. It will be understood by one skilled in the art that the radio of network interface230may comprise any suitable type(s) of antenna(s), now known or later developed. Moreover, it will be understood by one skilled in the art that second network device200may comprise, two, four, eight, or any suitable number of radios, and that second network device200may have a same number or a different number of radios as first network device100.

In the example ofFIG.2, first network device100may establish communication link140with network coordinator250, and second network device200may establish a communication link240with network coordinator250. Moreover, in the example ofFIG.2, first network device100and second network device200may establish wireless communication links with one or more nodes (e.g., client devices) of a WLAN. In some examples, communication link240may be established via network interface230. In some examples, communication link240may comprise a wired link such as a wire, a cable, or an optical fiber, a wireless link such as a Wi-Fi link, a Bluetooth link, a BLE link, a ZigBee® link, a Z-Wave® link, a cellular link, or the like, or a combination thereof. It will be understood by one skilled in the art that communication link240may use any suitable type(s) of wired and/or wireless link(s), now known or later developed. In some examples, communication link240may be established via network interface230. In some examples, communication link240may use at least one connection-oriented protocol, such as TCP, at least one connectionless protocol, such as UDP, or the like, or a combination thereof. It will be understood by one skilled in the art that communication link240may use any suitable type(s) of data transmission protocol(s), now known or later developed. In some examples, first network device100, second network device200, and network coordinator250may operate as nodes in a WLAN.

In the example ofFIG.2, network coordinator250includes at least one processing resource260and at least one machine-readable medium270comprising (e.g., encoded with) at least instructions272that are executable by the at least one processing resource260of network coordinator250to implement functionalities described herein in relation to instructions272. In the example ofFIG.2, network coordinator250is a service (e.g., instructions272stored in the at least one machine-readable medium and executable by the at least one processing resource) executed on at least one computing device that coordinates switching, routing, and/or bridging across one or more networks (e.g., network290.) In some examples, network coordinator250may execute on at least one computing device in a LAN or WLAN. In some examples, network coordinator250may execute on at least one cloud computing device. In some examples, network coordinator250may execute on at least one or more software-defined networks (SDNs). In some examples, network coordinator250may be provided to one or more networks as a service (aaS). In some examples, network coordinator250may gather network operating information from various nodes (e.g., network devices) of one or more networks, including network traffic load information, network topology information, network usage information, etc. In such examples, network coordinator250may then transmit commands to various network infrastructure devices of the one or more networks to alter network topology and network routing to achieve various network efficiency and efficacy goals.

In the example ofFIG.2, network coordinator250may establish communication link280with network290. In some examples, communication link280may comprise a wired link, such as a wire, a cable, an optical fiber, or the like, or a combination thereof, a wireless link, such as a Wi-Fi link, a Bluetooth® link, a BLE link, a ZigBee® link, a Z-Wave® link, a cellular link, or the like, or a combination thereof, or a combination of at least one wired link and at least one wireless link. It will be understood by one skilled in the art that communication link280may use any suitable type(s) of wired and/or wireless link(s), now known or later developed. In some examples, communication link280may be established via one or more network interfaces of network coordinator250. In some examples, communication link280may be established via one or more radios of network coordinator250. Communication link280may use any suitable data transmission protocol(s), including at least one connection-oriented protocol such as Transmission Control Protocol (TCP), at least one connectionless protocol such as User Datagram Protocol (UDP), or the like, or a combination thereof.

In the example ofFIG.2, network290may comprise a computer network. In some examples, network290may comprise one or more local area networks (LANs), virtual LANs (VLANs), wireless local area networks (WLANs), virtual private networks (VPNs), SDNs, wide area networks (WANs), the Internet, or the like, or a combination thereof. In examples described herein, a WAN may comprise, for example, a wired WAN, wireless WAN, hybrid WAN, software-defined WAN (SD-WAN), or the like, or a combination thereof. In the example ofFIG.2, network290may comprise a cellular network. It will be understood by one skilled in the art that network290may comprise any suitable type(s) of network(s), now known or later developed.

In the example ofFIG.2, instructions222may be configured to receive, by network interface230, first wake-up frame152. In the example ofFIG.2, instructions222may be configured to, based on (e.g., in response to) first wake-up frame152, transition from operating in the first power mode to operating in the second power mode. In the example ofFIG.2, instructions222may be configured to, based on (e.g., in response to) first wake-up frame152, transmit acknowledgment frame154. In some examples, acknowledgment frame154may be transmitted by network interface230of second network device200.

In the example ofFIG.2, instructions222may be configured to transmit, to network coordinator250, a signal242indicating the second MAC address. In some examples, signal242may be transmitted to network coordinator250via communication link240. Signal242may comprise at least one packet having a payload configured to indicate to network coordinator250the second MAC address, a netmask corresponding to the subnet assigned to the second MAC address, or a combination thereof. Signal242may comprise at least one frame having a source MAC address that corresponds to a MAC address (e.g., the second MAC address) of second network device200and/or a destination MAC address that corresponds to a MAC address associated with network coordinator250. Signal242may comprise at least one packet having a source IP address that corresponds to an IP address assigned to second network device200and/or a destination IP address that corresponds to an IP address assigned to network coordinator250. It will be understood that signal242may comprise any suitable type of frame and/or packet with any suitable type(s) of payload(s).

In the example ofFIG.2, instructions272may be configured to receive first signal142indicating the first MAC address. In the example ofFIG.2, instructions272may be configured to receive a second signal242indicating the second MAC address. In the example ofFIG.2, instructions272may be configured to, based on (e.g., in response to) first signal142and/or second signal242, transmit, to first network device100, request144to wake-up second network device200.

In the example ofFIG.2, instructions272may be configured to receive a third signal indicating a third MAC address of a third network device, wherein the third MAC address is assigned to the same subnet as the first and second MAC addresses. In the example ofFIG.2, instructions272may be configured to, based on (e.g., in response to) the third signal, transmit, to the third MAC address of the third network device, a request to determine whether a wake-up frame was transmitted by first network device100to the second MAC address of second network device200.

In the example ofFIG.2, instructions272may be configured to receive a request284to instruct network coordinator250to transmit request144to first network device100. In some examples, request284may be received from network290via communication link280. In some examples, request284may be received from at least one computing device of network290. In some examples, request284may be received from at least one cloud computing device of network290. In some examples, request284may be received from at least one or more networks as a service (aaS) of network290.

In the example ofFIG.2, instructions272may be configured to receive a request to instruct network coordinator250to transmit, to the third network device, the request to determine whether a wake-up frame was transmitted by first network device100to the second MAC address of second network device200. In some examples, the request may be received from network290via communication link280. In some examples, the request may be received from at least one computing device of network290. In some examples, the request be received from at least one cloud computing device of network290. In some examples, the request may be received from at least one or more networks aaS of network290.

In the example ofFIG.2instructions272may be configured to transmit a signal282to network290. In some examples, signal282may be transmitted to network290via communication link280. In the example ofFIG.2, signal282may indicate the first MAC address of first network device100, the second MAC address of second network device200, the third MAC address of the third network device, a netmask corresponding to the subnet assigned to the first, second, and/or third MAC address, or a combination thereof.

In some examples, network290may include at least one processing resource and at least one machine-readable medium comprising (e.g., encoded with) instructions that are executable by the processing resource to implement functionalities described herein in relation to network290. In some examples, network290may comprise at least one computing device, at least one cloud computing device, at least one network aaS, or a combination thereof. In some examples, network290may instruct first network device100, second network device200, and/or the third network device to operate in a first power mode and/or a second power mode.

In this manner, the example system201ofFIG.2may provide improved wake-up by a network device. For instance, instructions222may be configured to receive, at network interface230, first wake-up frame152, and based on (e.g., in response to) first wake-up frame152, transition from operating in the first power mode to operating in the second power mode, thereby allowing first network device100to wake-up second network device200without requiring transmitting a broadcast frame. Thus, example system201may provide greater reliability as compared to existing WoL and WoWLAN techniques, which require transmitting magic packets as broadcast frames which can be dropped by intermediate routers. Moreover, example system201may provide greater ease of implementation and less vulnerability to flooding because unlike existing WoL and WoWLAN techniques, system201does not require configuring intermediate routers between network devices to forward magic packets as SDBs.

FIG.3is a block diagram of an example system301for wake-up by third network device300. In the example ofFIG.3, system301may include first network device100, as described above in relation toFIGS.1and2. System301may include second network device200, as described above in relation toFIG.2. System301may include network coordinator250, as described above in relation toFIG.2. System301may include network290, as described above in relation toFIG.2. System301may include third network device300.

In the example ofFIG.3, third network device300includes at least one processing resource310and at least one machine-readable medium320comprising (e.g., encoded with) at least instructions322that are executable by the at least one processing resource310of third network device300to implement functionalities described herein in relation to instructions322. In some examples, one or more instructions322may be the same as or similar to one or more instructions122and/or one or more instructions222, as described above.

In the example ofFIG.3, third network device300may engage in any network data transmission operations, including, but not limited to, switching, routing, bridging, or a combination thereof. In some examples, third network device300may comprise a WAP. It will be understood by one of ordinary skill in the art that third network device300may be any suitable type(s) of network devices made by any suitable manufacturer(s).

In the example ofFIG.3, third network device300includes a network interface330having the third MAC address. Network interface330may comprise a NIC having one or more ports (e.g., Ethernet ports), one or more sockets, one or more adapters, or a combination thereof. Moreover, althoughFIG.3shows that third network device300comprises one network interface330, it will be understood that third network device300may any suitable number and type(s) of network interfaces.

In the example ofFIG.3, network interface330may comprise a radio having the third MAC address. In some examples, one or more BSSIDs may corresponding to the third MAC address of the radio of network interface330. In some examples, the radio may operate at one or more frequency bands. For example, the radio may operate at a 5 GHz band which conforms to the IEEE 802.11ac standard, a 2.4 GHz band which conforms to one or more of the IEEE 802.11ac, 802.11n, and 802.11g standards, or a combination thereof. It will be understood by one skilled in the art that the radio of network interface330may transmit and receive wireless signals that conform to any suitable type(s) of wireless communications standard(s), now known or later developed, and/or operate at any suitable frequency range(s). In some examples, the radio may comprise an antenna which transmits directional and/or omnidirectional signals. In some examples, the radio may comprise a phased array antenna. It will be understood by one skilled in the art that the radio of network interface330may comprise any suitable type(s) of antenna(s), now known or later developed. Moreover, it will be understood that third network device300may comprise, two, four, eight, or any suitable number of radios, and that third network device300may have a same number or a different number of radios as first network device100and/or second network device200.

In the example ofFIG.3, third network device300may establish communication link340with network coordinator250(as shown inFIG.2.) In the example ofFIG.3, third network device300may establish communication link160with first network device100. In the example ofFIG.3, third network device300may establish wireless communication link350with network interface230of second network device200. In some examples, wireless communication link350may be established via network interface330. Moreover, in the example ofFIG.3, third network device300may establish wireless communication links for one or more nodes of a WLAN. In some examples, one or more of communication links340,350, and360may be established via network interface330. In some examples, one or more of communication links340,350, and360may comprise a wired link, such as a wire, a cable, an optical fiber, or the like, or a combination thereof, a wireless link, such as a Wi-Fi link, a Bluetooth® link, a BLE link, a ZigBee® link, a Z-Wave® link, a cellular link, or the like, or a combination thereof, or a combination of at least one wired link and at least one wireless link. It will be understood by one skilled in the art that each of communication links340,350, and360may use any suitable type(s) of wired and/or wireless link(s), now known or later developed. In some examples, one or both of communication links340and360may use at least one connection-oriented protocol such as TCP, at least one connectionless protocol such as UDP, or the like, or a combination thereof. It will be understood by one skilled in the art that each of wireless communication links340and360may use any suitable type(s) of data transmission protocol(s), now known or later developed. In some examples, communication link350may use at least one connectionless protocol, such as UDP. It will be understood by one skilled in the art that communication link350may use any suitable type(s) of data transmission protocol(s), now known or later developed.

In the example ofFIG.3, instructions322may be configured to transmit, to the network coordinator, a signal342indicating the third MAC address. In some examples, signal342may be transmitted to the network coordinator via communication link340. In the example ofFIG.3, instructions322may be configured to, based on (e.g., in response to) signal342, receive request344to wake-up the second network device. Signal342may comprise at least one packet having a payload configured to indicate to the network coordinator the third MAC address, a netmask corresponding to the subnet assigned to the third MAC address, or a combination thereof. Signal342may comprise at least one frame having a source MAC address that corresponds to a MAC address (e.g., third MAC address) of third network device300and/or a destination MAC address that corresponds to a MAC address associated with the network coordinator. Signal342may comprise at least one packet having a source IP address that corresponds to an IP address assigned to third network device300and/or a destination IP address that corresponds to an IP address assigned to the network coordinator. It will be understood that signal342may comprise any suitable type of frame and/or packet with any suitable type(s) of payload(s).

In the example ofFIG.3, instructions322may be configured to receive request344from the network coordinator based on signal342received by the network coordinator. In some examples, request344may be received from the network coordinator via communication link340. Request344may comprise at least one frame having a destination MAC address that corresponds to a MAC address (e.g., third MAC address) of third network device300. Request344may comprise at least one packet having a source IP address that corresponds to an IP address assigned to a network coordinator and/or a destination IP address that corresponds to an IP address assigned to third network device300. Request344may comprise at least one packet having a payload configured to indicate to third network device300the first MAC address, the second MAC address, the third MAC address, a netmask corresponding to the subnet assigned to the first, second and third MAC addresses, or a combination thereof. It will be understood that request344may comprise any suitable type of frame and/or packet with any suitable type(s) of payload(s).

In the example ofFIG.3, instructions322may be configured to receive request162from first network device100to determine whether a wake-up frame having a destination address of the second MAC address was transmitted by network interface130of first network device100. In some examples, request162may be received from first network device100via communication link160. In some examples, request162may be receive from first network device100via network interface330. In the example ofFIG.3, instructions322may be configured to, based on (e.g., in response to) request162, determine whether the wake-up frame was transmitted by network interface130of first network device100.

In the example ofFIG.3, instructions322may be configured to determine whether the wake-up frame was transmitted by network interface130of first network device100. In the example ofFIG.3, instructions322may, based on (e.g., in response to) a signal (e.g., request162) received by third network device300, determine whether the wake-up frame was transmitted by network interface130of first network device100. In some examples, instructions322may determine whether the wake-up frame was transmitted by network interface130of first network device100by sniffing (i.e., monitoring), by network interface320, for the wake-up frame transmitted by network interface130of first network device100. Instructions322may be configured to sniff for the wake-up frame for a predetermined time period. In some examples, instructions322may determine whether the wake-up frame was transmitted by network interface130by monitoring, by network interface320, for a signal indicating that the wake-up frame was transmitted by network interface130of first network device.

In the example ofFIG.3, instructions322may be configured to, based on a determination that the wake-up frame was not transmitted by network interface130of first network device100, generate a second wake-up frame352having a destination address of the second MAC address and configured to cause second network device200to transition from operating in the first power mode to operating in the second power mode. Second wake-up frame352may have the third MAC address as a source address. Second wake-up frame352may comprise a packet which is configured to cause second network device200to wake-up. In some examples, the packet may contains anywhere within its payload 6 bytes each having a value of 255 (i.e., FF FF FF FF FF FF in hexadecimal), followed by sixteen repetitions of the target computing device's 48-bit MAC address, for a total of 102 bytes. It will be understood that second wake-up frame352may comprise any suitable type of frame comprising any suitable type of packet with any suitable type(s) of payload(s). In the example ofFIG.3, instructions322may be configured to, based on a determination that the wake-up frame was not transmitted by network interface130of first network device100, transmit a signal indicating that the wake-up frame was not transmitted by network interface130of first network device100. In some examples, the signal may be transmitted to first network device100. In some examples, the signal may be transmitted to the network controller.

In the example ofFIG.3, instructions322may be configured to, based on a determination that the wake-up frame was transmitted by network interface130of first network device100, transmit a signal indicating that the wake-up frame was transmitted by network interface130of first network device100. In some examples, the signal may be transmitted to first network device100via communication link160. In some examples, the signal may be transmitted to the network coordinator (i.e., network coordinator250.) In some examples, the signal may be transmitted the network coordinator via communication link340. In some examples, the signal may be transmitted to first network device100and/or the network coordinator via network interface330.

In the example ofFIG.3, instructions322may be configured to transmit, by network interface330, second wake-up frame352to the second MAC address of second network device200. That is, instructions322may be configured to transmit second wake-up frame352as an L2 unicast frame to the second MAC address of the second network device. In some examples, second wake-up frame352may be transmitted to the second network device via communication link350.

In the example ofFIG.3, instructions322may be configured to receive an acknowledgment frame354based on second wake-up frame352received at the second MAC address of second network device200. In some examples, acknowledgement frame354may be received by network interface330of third network device300. In some examples, acknowledgement frame354may be received from second network device200via communication link350. Acknowledgment frame354may have the second MAC address as a source address and the third MAC address as a destination address. Acknowledgement frame354may comprise a packet having a payload that is configured to indicate to third network device300that second wake-up frame352was received at the second MAC address of the second network device. It will be understood that acknowledgment frame354may comprise any suitable type of frame comprising any suitable type of packet with any suitable type(s) of payload(s).

In the example ofFIG.3, instructions322may be configured to, based on (e.g., in response to) a triggering event, determine that second wake-up frame252was received at the second MAC address of the second network device. In some examples, the triggering event may be a signal received by third network device300from a computing device (e.g., the second network device, a client device, etc.) In some examples, the triggering event may occur after a predetermined time period after second wake-up frame352is received at the second MAC of the second network device.

In this manner, the example system301ofFIG.3may provide improved wake-up by a network device. For instance, instructions322may be configured, in response to request162and based on the determination that the wake-up frame was not transmitted by network interface130of first network device100, generate second wake-up frame352having a destination address of the second MAC address and configured to cause second network device200to transition from operating in the first power mode to operating in the second power mode, and transmit second wake-up frame352to second MAC address of second network device200, thereby allowing wake-up of the second network device without requiring transmitting a broadcast frame. Thus, example system301may provide greater reliability as compared to existing WoL and WoWLAN techniques, which require transmitting magic packets as broadcast frames which can be dropped by intermediate routers. Moreover, example system301may provide greater ease of implementation and less vulnerability to flooding because unlike existing WoL and WoWLAN techniques, system301does not require configuring intermediate routers between network devices to forward magic packets as SDBs.

Furthermore, system301may provide greater reliability for wake-up by a network device. For instance, instructions322may be configured to, based on a determination that the wake-up frame was transmitted by network interface130of first network device100, transmit a signal indicating that the wake-up frame was transmitted by network interface130of first network device100, thereby providing confirmation that the wake-up frame was transmitted by first network device100. Moreover, instructions322may, based on the determination that the wake-up frame was not transmitted by network interface130of first network device100, generate second wake-up frame352having a destination address of the second MAC address and configured to cause second network device200to transition from operating in the first power mode to operating in the second power mode, and transmit second wake-up frame to second MAC address of second network device200, thereby providing greater reliability when first network device100may not transmit the wake-up frame due to various circumstances (e.g., first network device100becomes inoperable, loses connection to the WLAN, etc.)

Moreover, althoughFIG.3shows that system301comprises three network devices, it will be understood that system301may comprise any suitable number of network devices. For instance, system301may comprise a plurality of network devices which may determine whether a wake-up frame was transmitted by network interface130of first network device100, whether a wake-up frame was transmitted by network interface330of third network device300, or a combination thereof. It will be understood by one skilled in the art that increasing the number of network devices which may determine whether a wake-up frame was transmitted by one or more network devices of system301may increase the reliability of system301.

FIGS.4A and4Bshow functionality400for a network device, according to one example. Functionality400may be implemented as a method or may be executed as one or more instructions on a machine (e.g., by at least one processor), where the one or more instructions are included on at least one machine-readable storage medium (e.g., a non-transitory machine readable-storage medium.) While only ten blocks are shown in functionality400, functionality400may include other actions described herein. Additionally, although the blocks are shown in an order, blocks depicted inFIGS.4A and4Bmay be performed in any order and at any time. Also, some of the blocks shown in functionality400may be omitted without departing from the spirit and scope of this disclosure. Functionality400may be implemented on a network device according to any of the examples herein.

As shown in block405, functionality400may include receiving, by a first network device having a first MAC address, a request to wake-up a second network device having a second MAC address assigned to a same subnet as the first MAC address. The first network device may receive the request via a network interface. Additionally, the request may be received by a radio of the network interface of the first network device. In some examples, the request may be received from a network coordinator.

As shown in block410, functionality400may include generating, by the first network device, a first wake-up frame having the second MAC address as a destination address and configured to wake-up the second network device. The first wake-up frame may be generated based on (e.g., in response to) the request to wake-up the second network device. The first wake-up frame may be configured to wake-up the second network device by causing the second network device to transition from operating in a first power mode to operating in a second power mode.

As shown in block415, functionality400may include transmitting, by the first network device, the first wake-up frame to the second MAC address. The first wake-up frame may be transmitted based on (e.g., in response to) the request to wake-up the second network device. The first network device may transmit the first wake-up frame via a network interface, and the second network device may receive the first wake-up frame via a network interface. Additionally, the first wake-up frame may be transmitted by a radio of the network interface of the first network device, and the first wake-up frame may be received by a radio of the network interface of the second network device.

As shown in block420, functionality400may include determining, by the first network device, that the first wake-up frame was received at the second MAC address of the second network device. In some examples, the first network device may determine that the first wake-up frame was received at the second MAC address of the second network device based on (e.g., in response to) a triggering event. The triggering event may comprise receiving, by the first network device, a signal from a computing device which indicates that the first wake-up frame was received at the second MAC address of the second network device. The first network device may receive the signal via a network interface. Additionally, the signal may be received by a radio of the network interface of the first network device. In some examples, the triggering event may occur after a predetermined time period after the second network device receives the first wake-up frame at the second MAC address.

In some examples, the first network device may determine that the first wake-up frame was received at the second network device by receiving, by the first network device, an acknowledgment frame based on the first wake-up frame received at the second MAC address. The first network device may receive the acknowledgement frame via a network interface, and the second network device may transmit the acknowledgment packet via a network interface. Additionally, the acknowledgement frame may be received by a radio of the network interface of the first network device, and the acknowledgement frame may be transmitted by a radio of the network interface of the second network device.

As shown in block425, functionality400may include receiving, by a third network device having a third MAC address assigned to the same subnet as the first MAC address, a request to determine whether a wake-up frame was transmitted by the first network device. The third network device may receive the request via a network interface. Additionally, the request may be received by a radio of the network interface of the third network device. The request may be received from the first network device.

As shown in block430, functionality400may include determining, by a third network device, whether a wake-up frame was transmitted by the first network device. The wake-up frame determined to be transmitted to the second MAC address may be the first wake-up frame. In some examples, the third network device may determine whether the wake-up frame was transmitted by the first network device by sniffing (i.e., monitoring), by a radio of the third network device, for the wake-up frame. Additionally, sniffing for the wake-up frame may be for a predetermined time period. In some examples, the third network device may determine whether the wake-up frame was transmitted to the second MAC address by monitoring for a signal indicating that the wake-up frame was transmitted by a third network device.

If it is determined that the wake-up frame was transmitted by the first network device, then functionality400proceeds to block435. If it is determined that the wake-up frame was not transmitted by the first network device, then functionality400proceeds to block440.

As shown in block435, functionality400may include transmitting, by the third network device, a signal indicating that the wake-up frame was transmitted by the first network device. In some examples, the third network device may transmit the signal to the first network device. In some examples, the third network device may transmit the signal to the network coordinator. The third network device may transmit the signal via a network interface. Additionally, the signal may be transmitted by a radio of the network interface of the third network device.

As shown in block440, functionality400may include generating, by the third network device, a second wake-up frame having a destination address of the second MAC address and configured to wake-up the second network device. The second wake-up frame may be configured to wake-up the second network device by causing the second network device to transition from operating in a first power mode to operating in a second power mode.

As shown in block445, functionality400may include transmitting, by the third network device, the second wake-up frame to the second MAC address of the second network device. The third network device may transmit the second wake-up frame via a network interface, and the second network device may receive the second wake-up frame via a network interface. Additionally, the second wake-up frame may be transmitted by a radio of the network interface of the third network device, and the second wake-up frame may be received by a radio of the network interface of the second network device.

As shown in block450, functionality400may include determining, by the third network device, that the second wake-up frame was received at the second MAC address of the second network device. In some examples, the third network device may determine that the second wake-up frame was received at the second MAC address of the second network device based on (e.g., in response to) a triggering event. The triggering event may comprise receiving, by the third network device, a signal from a computing device which indicates that the second wake-up frame was received at the second MAC address of the second network device. The third network device may receive the signal via a network interface. Additionally, the signal may be received by a radio of the network interface of the third network device. In some examples, the triggering event may occur after a predetermined time period after the second network device receives the first wake-up frame at the second MAC address.

In some examples, the third network device may determine that the second wake-up frame was received at the second network device by receiving, by the third network device, an acknowledgment frame based on the second wake-up frame received at the second MAC address. The third network device may receive the acknowledgement frame via a network interface, and the second network device may transmit the acknowledgment packet via a network interface. Additionally, the acknowledgement frame may be received by a radio of the network interface of the third network device, and the acknowledgement frame may be transmitted by a radio of the network interface of the second network device.

In this manner, functionality400may provide improved wake-up by a network device. For instance, functionality400may include receiving, by a first network device having a first MAC address, a request to wake-up a second network device having a second MAC address assigned to a same subnet as the first MAC address (at block405), generating, by the first network device, a first wake-up frame having the second MAC address as a destination address and configured to wake-up the second network device (at block410), and transmitting, by the first network device, the first wake-up frame to the second MAC address (at block415), thereby allowing wake-up of the second network device without requiring transmitting a broadcast frame. Thus, functionality400may provide greater reliability as compared to existing WoL and WoWLAN techniques, which require transmitting magic packets as broadcast frames which can be dropped by intermediate routers. Moreover, functionality400may provide greater ease of implementation and less vulnerability to flooding because unlike existing WoL and WoWLAN techniques, functionality400does not require configuring intermediate routers between network devices to forward magic packets as SDBs.

Furthermore, functionality400may provide greater reliability for wake-up by a network device. For instance, functionality400may include determining, by a third network device, that a wake-up frame was transmitted by the first network device (at block430), and transmitting a signal indicating that the wake-up frame was transmitted by the first network device (at block435), thereby providing confirmation that the wake-up frame was transmitted by first network device. Moreover, functionality400may include determining, by a third network device, that a wake-up frame was not transmitted by the first network device (at block430), and generating, by the third network device, a second wake-up frame having a destination address of the second MAC address and configured to wake-up the second network device (at block440), and transmitting, by the third network device, the second wake-up frame to the second MAC address of the second network device (at block445), thereby providing greater reliability when the first network device may not transmit the wake-up frame due to various circumstances (e.g., the first network device becomes inoperable, loses connection to the WLAN, etc.)

FIG.5is a block diagram of an example computer system500in which various embodiments described herein may be implemented.

Computer system500includes bus505or other communication mechanism for communicating information, at least one hardware processor510coupled with bus505for processing information. At least one hardware processor510may be, for example, at least one general purpose microprocessor.

Computer system500also includes main memory515, such as random access memory (RAM), cache, other dynamic storage devices, or the like, or a combination thereof, coupled to bus505for storing information and one or more instructions to be executed by at least one processor510. Main memory515also may be used for storing temporary variables or other intermediate information during execution of one or more instructions to be executed by at least one processor510. Such one or more instructions, when stored on storage media accessible to at least one processor510, render computer system500into a special-purpose machine that is customized to perform the operations specified in the one or more instructions.

Computer system500further includes read only memory (ROM)520or other static storage device coupled to bus505for storing static information and one or more instructions for at least one processor510. At least one storage device525, such as a magnetic disk, optical disk, or USB thumb drive (Flash drive), or the like, or a combination thereof, may be provided and coupled to bus505for storing information and one or more instructions.

Computer system500may further include display530coupled to bus505for displaying a graphical output to a user. The computer system500may further include input device535, such as a keyboard, camera, microphone, or the like, or a combination thereof, coupled to bus505for providing an input from a user. Computer system500may further include cursor control540, such as a mouse, pointer, stylus, or the like, or a combination thereof, coupled to bus505for providing an input from a user.

Computer system500may further includes at least one network interface545, such as a network interface controller (NIC), network adapter, or the like, or a combination thereof, coupled to bus505for connecting computer system500to at least one network.

Computer system500may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system500to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system500in response to at least one processor510executing one or more sequences of one or more instructions contained in main memory515. Such one or more instructions may be read into main memory515from another storage medium, such as at least one storage device525. Execution of the sequences of one or more instructions contained in main memory515causes at least one processor510to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

As used herein, the term “Wi-Fi” is meant to encompass any type of wireless communications that conforms to the Institute of Electrical and Electronic Engineers (IEEE) 802.11 standard, whether 802.11ac, 802.11ad, 802.11 ay, 802.11ax, 802.11g, etc. The term “Wi-Fi” is currently promulgated by the Wi-Fi Alliance. Any products tested and approved as “Wi-Fi Certified” (a registered trademark) by the Wi-Fi Alliance are certified as interoperable with each other, even if they are from different manufacturers. A user with a “Wi-Fi Certified” product can use any brand of WAP with any other brand of client hardware that also is certified. Typically, however, any Wi-Fi product using the same radio frequency (e.g., 5 GHz for 802.11ac) will work with any other, even if such products are not “Wi-Fi Certified.” The term “Wi-Fi” is further intended to encompass future versions and/or variations on the foregoing communication standards. Each of the foregoing standards is hereby incorporated by reference.

As used herein, the term “Bluetooth” (a registered trademark) is meant to encompass any type of wireless communications that conforms to at least one of the Bluetooth specifications. As used therein, the term “Bluetooth Low Energy” (a registered trademark) or “BLE” is meant to encompass any type of wireless communications that conforms to at least one of the Bluetooth® Low Energy specifications. The terms “Bluetooth” and “Bluetooth Low Energy” are currently promulgated by the Bluetooth Special Interest Group (SIG).

As used herein, the term “ZigBee” (a registered trademark) is meant to encompass any type of wireless communication that conforms to at least one of the specifications of the ZigBee Specification. The term “ZigBee” is currently promulgated by the ZigBee Alliance.

As used herein, the term “Z-Wave” (a registered trademark) is meant to encompass any type of wireless communication that conforms to at least one of the Z-Wave protocols. The term “Z-Wave” is currently promulgated by Zensys A/S Corporation.

As used herein, the term “non-transitory media,” and similar terms, refers to any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Non-transitory media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks. Volatile media includes, for example, dynamic memory. Common forms of non-transitory machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge, and networked versions of the same.

Terms and phrases used in this document, and variations thereof, unless otherwise expressly stated, should be construed as open ended as opposed to limiting. As examples of the foregoing, the term “including” should be read as meaning “including, without limitation” or the like. The term “example” is used to provide exemplary instances of the item in discussion, not an exhaustive or limiting list thereof. The terms “a” or “an” should be read as meaning “at least one,” “one or more” or the like. The presence of broadening words and phrases such as “one or more,” “at least,” “but not limited to” or other like phrases in some instances shall not be read to mean that the narrower case is intended or required in instances where such broadening phrases may be absent.

While the present techniques may be susceptible to various modifications and alternative forms, the examples discussed above have been shown only by way of example. It is to be understood that the techniques are not intended to be limited to the particular examples disclosed herein. Indeed, the present techniques include all alternatives, modifications, and equivalents falling within the true spirit and scope of the appended claims.