Patent Description:
Wireless networks are usually used to give last hop entry to the network. For example, considering a home network, fiber lines bring the Internet to the home, and the mobile stations (i.e. laptops, desktop computer, Internet appliances, mobile phones, and the like) are connected to the network via wireless access points. Cellular systems are also examples of such networks, where the backhaul infrastructure utilizes high capacity connections between the base stations, low capacity end-user terminals are connected to the access point(s) (AP), or base station(s) (BS) via their wireless interfaces. In such networks, wireless access points can be considered as the entry points for the wireless end-user terminals to access the Internet (or the network itself).

A shortcoming of such a network structure is the limited wireless coverage of both the wireless access point and the end-user terminals. In cellular systems, the area to be covered is divided into cells (hence the name cellular) each of which is separated in the frequency domain, and each cell is connected to other cells through high capacity dedicated wired or wireless connections. In wireless networks where the entry point to the network is provided by Wi-Fi (based on IEEE <NUM> protocols) APs, coverage is limited due to not only the transmit power limits of the APs, but also due to the transmit power limits of the mobile end users.

In a typical home installation, a gateway (GW) device serves as the entry point to the outside world for the end user terminals. A GW device is usually a modem device that is capable of modulating and demodulating signals coming from the landline or fiber optic cables so that the end user can access the Internet. GW devices usually comprise an Ethernet switch and Wi-Fi interfaces. In a typical implementation, the end users connect to the Internet via the wireless interface provided by the gateway device. The gateway device is usually provided, maintained and controlled by the Internet Service Provider (ISP). The ISPs supply the gateway device to their subscribers as part of the Internet service they provide.

The gateway devices supplied by the ISPs are usually armed with the latest wireless technology so that they can keep up with the increasing number of wireless clients in the home, and also, with available capacity offered by the broadband backbone. Note that with the introduction of the IEEE <NUM>. 11ac standard, multiple gigabits per second of Wi-Fi communication is possible. The gateway devices are increasingly high capacity devices on both the backbone side and the end user side. However, although the end user side, i.e., the wireless entry to the gateway is improving in terms of the maximum speed that it can deliver, the coverage of these gateway devices is not improving. In fact, the high speeds made possible by IEEE <NUM>. 11ac can only be achieved in close vicinity of the gateway device. The users that are further away from the gateway not only suffer but also, they reduce the total available capacity, thus causing the entire wireless network to suffer. Accordingly, the need exists for improved gateway devices and other network nodes that have an extended operation range.

Known art includes <CIT> (which describes an access point profile for a mesh access point in a wireless mesh network) and <CIT> (which describes the establishment of ad-hoc networks between multiple devices).

One possible option for improving network coverage, and also for optimal usage of available wireless medium capacity is to use universal repeaters (UR) together with the gateway device. The URs are devices that have concurrent AP and station (STA) capabilities. A UR connects to a gateway (or an AP) via its STA interface, and provides wireless service to wireless clients through its AP interface. That is to say, from the point of view of the gateway (or the AP) which the UR is connected to, the UR is a station; whereas from the point of view of a wireless station, the UR is an AP to which it can associate with.

Another possible option for improving network coverage is to use mesh access points (MAPs) that are connected in a mesh network together with the gateway. Although MAPs have clear performance advantages over URs, MAPs are still not widely employed in many networks due to the complexity involved in the setup, configuration, and maintenance of the mesh network. In some aspects, mesh networks may be difficult to set up between devices that use different chipset platforms because of differences between protocol stack implementations in different chipset platforms. A need therefore exists for improved mesh network designs and implementations that feature a reduced complexity of setting up connections between nodes that use different chipset platforms.

The drawings described below are for illustration purposes only. The drawings are not intended to limit the scope of the present disclosure. Like reference characters shown in the figures designate the same parts in the various implementations.

According to aspects of the disclosure, an improved mesh capable access point (MAP) is disclosed. Furthermore, a mesh processor capable of introducing mesh capability to generic gateway devices is disclosed. The mesh processor may be implemented in hardware (for example, by using hardwired logic), in software (for example, by using one or more processor executable instructions), and/or as a combination of hardware and software. When this mesh processor is executed by a generic wireless gateway device, the generic gateway device is turned into a MAP-enabled gateway which possesses a mesh capability and is capable of connecting to other MAPs to form a mesh network. From the point of view of the end user, the network may appear to be composed of a single access point (AP), whereas the actual network can comprise multiple APs (for example, one or more MAPs and a MAP-enabled GW node). The network may be advantageous over networks that use universal repeaters (URs) to increase range, as it may have fewer bottlenecks and an increased data throughput.

<FIG> is a diagram of an example of a communications network 100A which uses universal repeaters to extend network range, according to aspects of the disclosure. The communications network 100A includes a gateway (GW) <NUM> and universal repeaters (URs) <NUM>-<NUM> which are used to extend the range of GW <NUM>. The network 100A is organized in accordance with a tree topology, in which GW <NUM> is the root and URs <NUM>-<NUM> are parent nodes for stations (STAs) <NUM>-<NUM>. More particularly, URs <NUM> and <NUM> and STA <NUM> are connected directly to GW <NUM>. Furthermore, STA <NUM> is connected to GW <NUM> via UR <NUM>, UR <NUM> is connected to GW <NUM>, via UR <NUM>, STA <NUM> is connected to GW <NUM> via UR <NUM>, and STA <NUM> is connected to GW <NUM> via UR <NUM> and UR <NUM>. As a result of this arrangement, all outgoing traffic from STAs <NUM>-<NUM> has to traverse through GW <NUM>, which may result in a lower end-to-end throughput.

In some applications, URs are not the best option for extending the range of wireless GWs. For example, consider a case where two URs are connected to a GW directly. Furthermore, consider a mobile station that is connected to one of the URs, and that is trying to stream video provided by a digital video recorder (DVR) which is connected to the other UR. In such a topology, the packets must pass through the gateway since the URs do not have a direct connection between them, although they may be in a close proximity to each other that would allow direct communication (for example, with reference to <FIG>, UR <NUM> cannot directly communicate with UR <NUM>, and must instead communicate via UR <NUM> and GW <NUM>). This limitation, the lack of direct communication capability between URs, is inherent in the operation of URs.

<FIG> is a diagram of an example of a communications network 100B, in which mesh capable access points (MAPs) are used to extend the network range instead of URs, according to aspects of the disclosure. MAPs are advantageous over URs as MAPs are capable of forming wireless connections among each MAP, which results in an improved data throughput for the network 100B. The network 100B includes MAPs <NUM>-<NUM>, and a mesh capable access point gateway (MAP GW) <NUM>. As illustrated in <FIG>, MAPs <NUM>-<NUM> have active connections among each other. These connections are herein referred to as "mesh connections. " The MAPs <NUM>-<NUM> are capable of utilizing these mesh connections for shortest path packet routing without the need to always traverse GW <NUM> for communications between different MAPs in the communications network 100B. It should be noted that the routing discussed here is data link layer, i.e., layer <NUM>, routing, and it should not be confused with network layer routing.

<FIG> is a diagram of an example of a mesh processor <NUM>, according to the aspects of the disclosure. The mesh processor <NUM> may be implemented as software, hardware, and/or a combination of software and hardware. The mesh processor may be implemented in a remote server and may send its commands from the remote server to the MAP device via a communications interface. The mesh processor <NUM> may be integrated into a generic gateway and/or a wireless station (for example, a wireless client). When the mesh processor <NUM> is integrated into a generic gateway, that gateway may turn into a MAP gateway.

In some implementations, mesh processor <NUM> may include one or more of event handler <NUM>, mesh control subprocessor <NUM>, mesh routing subprocessor <NUM>, customized daemons <NUM>-<NUM>, inter-MAP communication subprocessor <NUM>, abstraction layer <NUM>, and interface-specific drivers <NUM>. Mesh control subprocessor <NUM> is responsible for the setup and maintenance of the mesh network. Mesh routing subprocessor <NUM> is responsible for the packet routing in the data-link layer. The mesh processor <NUM> may run several customized daemons, such as daemons <NUM>, <NUM>. A daemon is a software program that runs as a background process, rather than being under the direct control of an interactive user. Customized daemons <NUM>, <NUM> may be run in separate subprocessors, or more generally may be run by mesh processor <NUM>. In one implementation, a client steering daemon may be implemented as a customized subprocessor. Furthermore, a dynamic channel selection daemon may be employed as a customized subprocessor. Event handler <NUM> binds the events and commands generated by the subprocessors, such as the mesh control subprocessor <NUM>, mesh routing subprocessor <NUM>, and the customized daemons, if any, with the interface-specific drivers through the abstraction layer <NUM>. Likewise, events generated by the interface-specific drivers <NUM> are delivered to the subprocessors <NUM>-<NUM> through the event handler <NUM> via the abstraction layer <NUM>. In another implementation, the event handler <NUM> can bind the commands and events between the subprocessors <NUM>-<NUM> and the interface-specific drivers <NUM> without the use of an abstraction layer <NUM>. Abstraction layer <NUM> provides a common messaging platform between the interface-specific drivers <NUM> and the subprocessors <NUM>-<NUM>. Examples of interface-specific drivers are IEEE <NUM> based physical layer wireless air interface drivers (for example, <NUM> wireless driver, <NUM> wireless driver), power line communication (PLC) driver, multiplexing over coaxial (MoCA) driver, Ethernet driver, etc. Driver hooks <NUM> are control points within the driver code that enable dynamic (on-the-fly) changes in the operation of the code in accordance with the external input. Furthermore, driver hooks <NUM> are monitor points within the driver code that facilitate monitoring the state of various variables during run time. The subprocessors described above can be implemented as distinct structural processors or components, or more likely, as software routines running on mesh processor <NUM> in the gateway device.

To illustrate the above further, consider the wireless protected setup (WPS) events in the <NUM> WiFi wireless interface. Typically, the command associated with the WPS procedure is start, and the events associated with the WPS procedure are (<NUM>) timeout, (<NUM>) success, and (<NUM>) fail. Mesh control subprocessor <NUM> may trigger the WPS start command in the <NUM> wireless driver through the abstraction layer <NUM>. Furthermore, mesh control subprocessor <NUM> can monitor the timeout, success, and/or fail events of the respective wireless interface through the event handler <NUM> and the abstraction layer <NUM>.

An event/command may trigger multiple combined events/commands, or an event/command may trigger sequential events/commands, or an event/command may trigger multiple parallel events/commands. Furthermore, a command may incorporate a set of instructions to be carried out by the recipient of the command. For example, a WPS-start-PIN command includes (<NUM>) an interface name of the basic service set (BSS), for example, <NUM> wireless interface, (<NUM>) a BSSID (MAC address of the node with which WPS is to be carried out), and (<NUM>) a PIN (personal identification number). WPS-start-PIN command initiated by the mesh control subprocessor <NUM> notifies a wireless driver via the abstraction layer <NUM> that a WPS command is to be triggered on the wireless driver with the provided BSSID using the provided PIN. The wireless driver initiates the WPS command and informs the mesh control subprocessor <NUM> about the outcome (timeout, success, or fail) again via the abstraction layer <NUM> and the event handler <NUM>.

For further illustration, consider a client steering daemon communicating with a <NUM> wireless interface driver. Client steering daemon may request the current receive signal strength indicator (RSSI) of a specific client. For this, client steering daemon generates a "get client RSSI" command, with various information in the payload of the command. Typical information in the payload includes the MAC address of the client, number of measurement samples being requested, and periodicity of the measurements. For example, client steering daemon may generate a "get client RSSI" command for a client for RSSI measurements to be taken within <NUM> minute with a frequency of <NUM> seconds. A respective function in the abstraction layer <NUM> is called, through which the driver hooks are called. Note that a driver hook is a function which can be called externally through the abstraction layer <NUM>, and which returns the output to the event handler through the abstraction layer <NUM>.

Cloud control subprocessor <NUM> is capable of receiving instructions from a remote server, forwarding these instructions to respective subprocessors and daemons in the mesh processor <NUM>, and pushing logs (which are acquired from the respective subprocessors and daemons) back to the remote server. Cloud control subprocessor <NUM> may be used to customize the operation of the subprocessors, for example, the mesh control subprocessor <NUM>, mesh routing subprocessor <NUM>, and various customized subprocessors. To better illustrate the use of the cloud control subprocessor <NUM>, consider the following example: cloud control subprocessor <NUM> receives the client authentication request events from the wireless interface together with the received signal strength indicator (RSSI) information from the respective driver hook through the abstraction layer <NUM> and the event handler <NUM>. Moreover, the cloud control subprocessor <NUM> receives the RSSI information of each associated client from the respective driver hook through the abstraction layer <NUM>, or through a customized daemon, such as client steering daemon, with the MAC address of the respective client, and the timestamp of the measurement. The cloud control subprocessor <NUM> sends this information to a cloud server. The cloud control subprocessor <NUM> may either push this information when it is created, or it may wait for a predetermined period of time before it pushes this information together with other information gathered during this period (it may send a bundle of information), or it may wait for the request of the remote cloud server, in response to which it provides this information to the cloud server.

The remote cloud server collects information from multiple GWs, APs, and homes. Hence, the remote cloud server is capable of carrying out complex analysis on the collected data, which may be dispersed to several days or months or even years, and several clients (on the order of millions or higher). The details of the actions taken by the remote cloud server is out of the scope of this disclosure. However, cloud control subprocessor <NUM> is compatible with the cloud control server such that the commands issued by the cloud server are intelligible by the cloud control subprocessor <NUM>, and likewise, the logs/information provided by the cloud control subprocessor <NUM> are intelligible by the cloud server.

In an example implementation, the cloud server instructs the cloud control subprocessor <NUM> to change the frequency of data collection for a specific client in the mesh network, or for all clients in the network. Furthermore, the cloud server instructs the cloud control subprocessor <NUM> to instruct the client steering daemon to exempt a specific client (STA) from the actions of client steering daemon (i.e. disable steering only for that specific STA). Or, the cloud server may instruct the cloud control subprocessor <NUM> to instruct the client steering daemon to use a different set of parameters (which control the behavior of the client steering daemon) when performing steering decisions.

In essence, the remote cloud server is capable of controlling the behavior of all subprocessors, and daemons, and in effect the behavior of the GW and/or the APs, resulting in total control of the network by utilizing the cloud control subprocessor <NUM>. For that to be realized, remote cloud server and the cloud control subprocessor <NUM> are required to know the capabilities (and features) of the subprocessors and the daemons running on the mesh processor <NUM> so that the cloud server may communicate with and instruct them as desired.

In one implementation, subprocessors and daemons residing in the mesh processor <NUM> may be upgraded individually. For example, additional capabilities can be introduced to, say mesh routing subprocessor <NUM>, or the client steering daemon, without the need for upgrading the entire firmware or the firmware.

In one implementation, subprocessors and daemons that reside in the mesh processor <NUM> can communicate with the other subprocessors and daemons residing in another mesh processor <NUM>, in another MAP, via the inter-MAP communication subprocessor <NUM>. A subprocessor in a MAP may utilize its specific communication protocol to communicate with the respective subprocessor in another MAP. However, the inter-MAP communication subprocessor <NUM> provides a unified and all-purpose inter-MAP communication platform for any subprocessor residing in the MAP. A subprocessor can communicate with the inter-MAP communication subprocessor <NUM> through the abstraction layer <NUM>. A subprocessor subscribes to the inter-MAP communication subprocessor <NUM> for delivery and reception of its messages in terms of payloads. For example, a subprocessor passes its messages in chunks of payloads to the inter-MAP communication subprocessor <NUM> for delivery to a specific node or nodes in the network, and the subprocessor requests from the inter-MAP communication subprocessor <NUM> to forward any payload addressed to itself.

Inter-MAP communication subprocessor <NUM> may employ various encryption methods; hence the subprocessors and daemons attached to it do not need to employ their own encryption method, or they can utilize the encryption provided by this subprocessor for extra protection. Inter-MAP communication subprocessor <NUM>, at the transmitting side fragments payloads into multiple smaller payloads in case they exceed the maximum transmit payload allowed by the transmission medium, and also at the receiving side it defragments the payloads to form the original payload. Inter-MAP communication subprocessor <NUM> may utilize positive acknowledgment based message delivery; in that unacknowledged messages are retransmitted for a certain number of times, until they are acknowledged or until a maximum number of retransmissions are reached.

Inter-MAP communication subprocessor <NUM> relieves the subprocessors and daemons from implementing their own messaging platforms. However, the inclusion of the inter-MAP communication subprocessor <NUM> in the mesh processor <NUM> does not mandate the other subprocessors employ the inter-MAP communication subprocessor <NUM> for their own communication. The other subprocessors may utilize their own communication protocols to communicate with the respective subprocessors in other GWs and/or MAPs. Hence, in the remainder of this document, where it is mentioned that a subprocessor or a daemon communicates with another subprocessor or daemon residing in another MAP by sending/receiving a message, this may be interpreted in two possible ways. First, the communication between the subprocessors/daemons of different MAPs is taking place through the use of the inter-MAP communication subprocessor. Second, the communication between the subprocessors/daemons of different MAPs without the use of the inter-MAP communication subprocessor, and instead the communication is direct between the respective subprocessors/daemons via their own communication protocol.

Data-link layer packet routing in the mesh network is handled by the mesh routing subprocessor <NUM> residing within the mesh processor <NUM>. Mesh routing subprocessor <NUM> implements methods to determine the best routes to each node in the network. Based on the discovered routes, mesh routing subprocessor <NUM> designates forwarding rules for incoming and outgoing packets. In one implementation, mesh routing subprocessor <NUM> implements periodic or on-demand route discovery mechanisms to determine a cost of packet delivery among the nodes. In one embodiment, the path discovery makes use of cost of individual connections on a path from a source node to a destination node to compute the end-to-end cost.

Mesh routing subprocessor <NUM> implements methods to assess the quality of the connections between node pairs. These methods may make use of the following parameters to assess the quality of a connection: packet error rate (PER), achievable physical rate, achievable modulation and coding scheme (MCS), RSSI, delay, jitter, and the like. The assessed quality is denoted in terms of a cost metric. The cost metric can be a function of various quality parameters. In one implementation, the cost metric can be inversely proportional to the achievable physical rate, thus as the achievable physical rate on a connection is increased the cost of using that connection is reduced.

Mesh routing subprocessor <NUM> generates connection-monitor commands to learn the status of a connection. Connection-monitor commands may be periodic or on-demand. Connection-monitor commands prompt the driver to return the current connection quality metric on the queried interface with the queried receiver. For example, a connection-monitor command may ask the <NUM> wireless driver to return the physical rate of the last data packet (the acknowledgement for which is received) sent on the wds0. <NUM> connection (see <FIG>). Note that the wds0. <NUM> connection designates a specific receiving node attached to <NUM> wireless interface. Hence, the connection quality of wds0. <NUM> is nothing but the quality of communicating with the respective node connected on the <NUM> wireless interface. As described before, connection-monitor command may incorporate a payload that specifies to the driver which type of information is being asking for. For example, the payload may include RSSI, physical rate, PER observed on a connection.

Mesh routing subprocessor <NUM> makes use of individual connection costs to determine end-to-end path costs. The end-to-end path may be determined by an on-demand type route discovery protocol, such as AODV (ad hoc on demand distance vector routing), that computes the path costs as the route discovery and route response messages are exchanged between the source and the destination node via the intermediate nodes. The end-to-end path may also be determined by a centralized method, where the connection cost metric information of the entire network is collected at every node, or at one master node, which calculates shortest paths for each possible source-destination pair in the network. Based on the determined routes, the mesh routing subprocessor <NUM> defines the interfaces to utilize for different packet flows. For example, if the shortest path between the GW and the MAP2 is through MAP1, where the GW-MAP1 connection is Ethernet (eth0. <NUM>) and the MAP1-MAP2 connection is <NUM> wireless (over wds0. <NUM>), the mesh routing subprocessor <NUM> on MAP1 defines that the packets coming from MAP2 destined to GW are delivered on wds0. <NUM>, and they are to be forwarded to the eth0.

The mesh routing subprocessor <NUM> sets the packet forwarding rules in the interface-specific drivers. In one implementation, a packet forwarding rule may be given in terms of the source MAC address, destination MAC address, and the next hop node's MAC address, and the interface or interfaces to use for packet forwarding, which is to be interpreted as: a packet originated from the source for delivery to the destination shall be forwarded to the next hop node on the specified interface or interfaces. In another implementation, the forwarding rule may specify only the destination's and the next hop node's MAC addresses, and an interface. In further implementations, packet forwarding rules may incorporate flow and quality of service (QoS) based metrics to differentiate and route different flows on different paths.

For example, the forwarding rule may specify that packets originating from node A, destined to node Z, shall be forwarded to node F, via the wireless <NUM> interface. The forwarding rule may specify further details, such as packets originating from node A with Video tag, destined to node Z, shall be forwarded to node K via the Ethernet interface, and the packets originating from node A with Best Effort tag, destined to node Z shall be forwarded to node Y via the wireless <NUM> interface. The forwarding rule may specify further details, such as constraints on delay requirements of packets, etc..

The mesh routing subprocessor <NUM> sets the forwarding rules to the interface-specific drivers. For example, in one implementation, if the forwarding rule specifies that if a packet is destined to node D it shall be forwarded to node E on the wireless <NUM> interface, then the mesh routing subprocessor <NUM> programs the wireless <NUM> interface's driver to forward packets destined to node D to the WDS connection associated with node E.

<FIG> depicts an example of a forwarding rule employed by the mesh routing subprocessor <NUM>. Note that forwarding rule may specify the destination, the next hop node and the interface. The amount of details that may be specified in the forwarding rule partly depends on the driver capability, because the driver may also implement its own forwarding table. For example, if the driver expects destination MAC address information to check on which logical connection to forward the packets to, then the mesh routing subprocessor <NUM> cannot dictate the driver to differentiate between sources that try to send packets to the same destination node, because the driver does not implement a method to differentiate source address.

Packet routing subprocessor updates the forwarding rules as new connections are established among the nodes. For example, if an Ethernet connection is enabled between two MAPs, an interface up event is generated by the Ethernet interface of each MAP. This Ethernet up event is delivered to the mesh control subprocessor <NUM> and the mesh routing subprocessor <NUM> via the abstraction layer <NUM>. The mesh control subprocessor <NUM> begins utilizing the newly available Ethernet interface for mesh announcement messages, join-request/join-response messages, configuration-request/configuration-response messages, etc.; the mesh routing subprocessor <NUM> starts path discovery for each mesh-peer. In some aspects, with the newly available Ethernet connection possible path alternatives may be increased.

In case a MAP node is turned off, the connections terminating at and originating at that MAP node are broken. In such cases, the mesh routing subprocessors <NUM> of the neighboring MAPs identify the broken connections and update the cost metric to infinity (or to the highest cost that can be assigned to a connection) for a respective broken connection. As the cost of using the broken connection goes to infinity, the used shortest path discovery method never selects paths that pass through the broken connection(s). As a result of the updated connection metrics, new shortest paths that avoid the broken connection(s) are found, and consequently the forwarding rules are updated accordingly.

Furthermore, when a MAP node is turned off, although it's removed from the forwarding rules of other nodes in the mesh network, the MAP is still kept in the mesh-peer list. The GW node keeps announcing the turned off MAP in its mesh-peer list (WDS-peer list). Hence, if a new MAP is added to the mesh network while the aforementioned MAP is powered off, the new MAP adds the powered off MAP in its mesh-peer list. When the powered off MAP is turned back on, it connects to the GW or a MAP in STA mode, obtains the configuration that also includes the mesh-peer list, switches to AP mode, and establishes mesh connections with the nodes in the mesh-peer list.

In certain implementations, mesh control subprocessor <NUM> can control in which wireless channel the mesh network operates. Mesh control subprocessor <NUM> can request channel availability measurements in any wireless channel, in terms of airtime statistics, interference statistics, from the wireless drivers. In some implementations, the mesh control subprocessor <NUM> of a first device may request the same measurements from the mesh control subprocessor <NUM> of a second device, as well. This request can be carried out through the inter-MAP communication subprocessor <NUM> of the first device. Based on the provided results, the mesh control subprocessor <NUM> of the first device, can select another operating Wi-Fi channel (frequency) for the network.

<FIG> is a diagram of an example of MAP <NUM>, according to aspects of the disclosure. As illustrated, MAP <NUM> includes processing circuitry <NUM>, a memory <NUM>, and communication interface(s) <NUM>. According to aspects of the disclosure, processing circuitry <NUM> may include any suitable type of processing circuitry. For example, processing circuitry <NUM> may include one or more of a general-purpose processor (for example, an ARM-based processor), a chipset of a communications interface, an application-specific integrated circuit (ASIC), and a Field-Programmable Gate Array (FPGA. Memory <NUM> may include any suitable type of volatile and non-volatile memory, such as random-access memory (RAM), read-only memory (ROM), flash memory, cloud storage, or network accessible storage (NAS), etc. Communications interfaces <NUM> may include any suitable type of communications interface, such as a Wi-Fi interface, an Ethernet interface, a Long-Term Evolution (LTE) interface, a Bluetooth Interface, an Infrared interface, a Power Line Communication (PLC) interface, a Multiplexing over Coaxial (MoCA) interface, etc..

According to aspects of the disclosure, MAP <NUM> may incorporate an instance of the mesh processor <NUM> discussed above with respect to <FIG>. The instance of the mesh processor <NUM> in MAP <NUM> may be implemented in hardware (for example, by using hardwired logic), in software (for example, by using one or more processor executable instructions), and/or as a combination of hardware and software.

<FIG> is a diagram of an example of MAP GW <NUM>, according to aspects of the disclosure. As illustrated, MAP GW <NUM> includes processing circuitry <NUM>, a memory <NUM>, and communication interface(s) <NUM>. According to aspects of the disclosure, processing circuitry <NUM> may include any suitable type of processing circuitry. For example, processing circuitry <NUM> may include one or more of a general-purpose processor (for example, an ARM-based processor), a chipset of a communications interface, an application-specific integrated circuit (ASIC), and a Field-Programmable Gate Array (FPGA). Memory <NUM> may include any suitable type of volatile and non-volatile memory, such as random-access memory (RAM), read-only memory (ROM), flash memory, cloud storage, or network accessible storage (NAS), etc. Communications interfaces <NUM> may include any suitable type of communications interface, such as a Wi-Fi interface, an Ethernet interface, a Long-Term Evolution (LTE) interface, a Bluetooth Interface, an Infrared interface, a Power Line Communication (PLC) interface, a Multiplexing over Coaxial (MoCA) interface, etc..

According to aspects of the disclosure, MAP GW <NUM> may incorporate an instance of the mesh processor <NUM> discussed above with respect to <FIG>. The instance of the mesh processor <NUM> in MAP GW <NUM> may be implemented in hardware (for example, by using hardwired logic), in software (for example, by using one or more processor executable instructions), and/or as a combination of hardware and software.

The operation of MAP <NUM> and MAP GW <NUM> is now described in further detail. More particularly, in operation, MAP GW <NUM> sends "mesh announcement" messages periodically. In a typical implementation, the period of this announcement is <NUM> second. These messages are broadcasted in the data-link layer through all available interfaces of the MAP GW <NUM>. For example, if MAP GW <NUM> comprises PLC, Ethernet, <NUM> Wi-Fi and <NUM> Wi-Fi interfaces, it broadcasts the "mesh announcement" message through every one of these interfaces. In further implementations, MAP GW <NUM> may choose to limit the announcements to some or only one of the interfaces. It should be noted that mesh announcement messages are sent in broadcast mode, and receivers of the messages forward the same messages in broadcast mode, as well. Hence, the mesh announcement messages transmitted by MAP GW <NUM> reach every MAP in the network.

With the "mesh announcement" messages, MAP GW <NUM> informs the other nodes in the network about its capabilities and non-confidential mesh configuration. Non-confidential mesh configuration comprises at least the following: device capabilities, configuration universally unique identifier (CUUID), GW MAC address on which the mesh network will be established, the list of MAC address of WDS (mesh) peers. In one implementation, a mesh network can be established in the <NUM> interface, hence MAP GW <NUM> announces its <NUM> interface's MAC address as the mesh interface. Likewise, the list of WDS peers is given in terms of the <NUM> interface MAC addresses of the WDS peers. When MAP GW <NUM> provides information about its capabilities, it can provide an indication of the protocols that are supported by MAP GW <NUM>, for example, IEEE <NUM> a/b/g/n/ac/ax, an indication of in which frequencies MAP GW <NUM> can operate, an indication of supported bandwidths, etc. In one implementation, the device capabilities provided in the mesh announcement are the same as the capability information provided in the beacon and probe response messages, in accord with the respective IEEE <NUM> standard supported by the wireless interfaces of the MAP GW <NUM>.

In one implementation, the CUUID is a <NUM>-byte value, <NUM> bytes of which is used as a network identifier (NI), and <NUM> bytes of which is used as configuration sequence number (CSN). For a given mesh network, NI is unique and does not change. Two mesh networks that attain different Nls do not establish mesh communication connections between each other. For mesh networks that have the same NI, the CSN designates the freshness of the configuration. If a mesh capable node receives a mesh configuration with a CSN higher than its current CSN, it updates its mesh configuration with the configuration denoted by the latest CSN.

In another implementation, any MAP that is willing to form a mesh connection with MAP GW <NUM> first needs to establish connection with MAP GW <NUM> through one of the interfaces, so that it can receive the "mesh announcement" message. For example, MAP node <NUM> can connect to MAP GW <NUM> via Ethernet. In such a case, MAP node <NUM> receives the "mesh announcement" from the Ethernet interface.

In another implementation, a wireless connection between MAP GW <NUM> and MAP <NUM> can be established by utilizing the wireless protected system (WPS) protocol. Specifically, standard push button WPS event can be triggered at MAP GW <NUM> and MAP nodes, yielding an AP-STA connection between MAP GW <NUM> and the MAP nodes. In particular, a WPS button of MAP GW <NUM> and a WPS button of MAP <NUM> can be pressed, triggering a WPS transaction between MAP GW <NUM> and MAP <NUM>. Note that, in such a scenario, MAP GW <NUM> is the registrar and MAP <NUM> is the enrollee, i.e., MAP GW <NUM> is the node that distributes the credentials, whereas MAP <NUM> acquires the credentials from the MAP GW <NUM>.

It shall be noted that before the mesh connection is established between MAP GW <NUM> and MAP <NUM>, the wireless connection formed through the use of a WPS push button event is an AP-STA type of connection. That is to say, MAP <NUM> connects to MAP GW <NUM> as a station, but not as an AP. Unless MAP <NUM> establishes a mesh connection with MAP GW <NUM>, MAP <NUM> operates as a station wirelessly connected to MAP GW <NUM>. In further implementations, MAP <NUM> may operate as a UR connected to MAP GW <NUM>, before it establishes a mesh connection with MAP GW <NUM>.

After MAP <NUM> node has already established a connection with MAP GW <NUM> through at least one of its interfaces, MAP <NUM> receives the mesh announcement messages broadcast by MAP GW <NUM>. Furthermore, alternative implementations are possible in which MAP <NUM> establishes a mesh connection with MAP GW <NUM> without establishing another connection first. In such instances, MAP <NUM> sends MAP GW <NUM> a "join request" message through every one of its communications interfaces in unicast mode. For example, if the MAP <NUM> is connected to MAP GW <NUM> through both the Ethernet and the Wi-Fi interfaces, then the MAP <NUM> sends a "join request" message through the Ethernet and the Wi-Fi interfaces, with the MAC address of MAP GW's <NUM> respective interface as the destination address.

In response to the "join request" message sent by MAP <NUM>, MAP GW <NUM> sends the confidential credentials to MAP <NUM> in an encrypted "join response" message. As noted above, the confidential credentials may include a trusted PIN associated with MAP <NUM>. The confidential credentials provided in the "join response" message are the trusted PIN, SSID and passphrase for some or all interfaces, for example, Wi-Fi <NUM> and <NUM> interfaces, and PLC interface, if it exists. The join response message is encrypted in order to avoid a security breach that may be encountered due to unencrypted connection between MAP <NUM> and MAP GW <NUM>. That is to say, even if the connection between MAP <NUM> and MAP GW <NUM> is not protected by any encryption method, such as defined in WPA2, or the like, the join response message is encrypted to protect the confidential credentials, most essentially, the trusted PIN.

If the "join response" message is sent on every possible interface between MAP <NUM> and MAP GW <NUM>, encryption is especially of paramount importance, since it prevents a node attached to the network (through Ethernet) decoding the confidential credentials by eavesdropping the communication between MAP <NUM> and MAP GW <NUM>. In further implementations, MAP GW <NUM> may limit the interfaces it transmits the join response message over. For example, MAP GW <NUM> may choose to utilize only wireless a <NUM> interface to send the join response message although it has Ethernet and/or other interfaces that can be used to reach MAP GW <NUM>.

As noted above, in some implementations, MAP <NUM> may connect to MAP GW <NUM> as a station (for example, a wireless client) and exchange the "join request" and "join response" message over a connection that is established as a result of MAP <NUM> connection to MAP GW <NUM> as a station. When MAP <NUM> is connected to MAP GW <NUM> as a station, it operates in STA mode, and the connection between MAP <NUM> and MAP GW <NUM> is referred to as station-mode connection. When MAP <NUM> receives the credentials from MAP GW <NUM> while in STA mode, it changes its mode of operation to AP, and applies the credentials: updates its SSID and passphrase in accordance with the received credentials, creates the WDS connections in accordance with the mesh peers list shared by MAP GW <NUM>, adds these WDS connections to its bridge interface, sets the configuration UUID, and adds vendor information element (IE) to its management packets.

If the mesh connection is established on the <NUM> wireless interface, both MAP <NUM> and MAP GW <NUM> set CCMP (Counter Mode Cipher Block Chaining Message Authentication Code Protocol) key derived from <NUM> interface's main SSID's passphrase to the WDS connection. After this procedure, MAP GW <NUM> and the MAP <NUM> form a mesh network, and wireless communication between MAP <NUM> and MAP GW <NUM> is carried out on the WDS connection.

<FIG> is a diagram of an example of a network <NUM>, according to aspects to the disclosure. Network <NUM> may be any suitable type of network. In some implementations, network <NUM> may include a wireless network (for example, an <NUM> a/b/g/ac network). Additionally or alternatively, in some implementations, network <NUM> may include a wired network (for example, an Ethernet network). As illustrated, network <NUM> may include a mesh capable access point gateway (MAP GW) <NUM>, mesh capable access point (MAP) <NUM>, and MAP <NUM> that are configured to operate as access points for network <NUM>. Moreover, MAP GW <NUM>, and MAPs <NUM> and <NUM> may be connected to one another via mesh connections (for example, WDS links) to form a mesh network <NUM>. Mesh network <NUM> may be a subnetwork of network <NUM>. In some implementations, mesh network <NUM> may include only nodes that are configured to operate as access points for network <NUM>. Additionally or alternatively, in some implementations, mesh network <NUM> may include other nodes in addition to nodes that are configured to operate as access points for network <NUM>.

Network <NUM> includes stations (STAs) <NUM> and <NUM>. STA <NUM> is connected to MAP <NUM> via a station-mode connection. STA <NUM> is connected to MAP <NUM> via a station-mode connection. In other words, stations in network <NUM> are connected to nodes in the mesh network <NUM> via station-mode connections, whereas nodes within mesh network <NUM> are connected via mesh connections. In some implementations, any of the mesh connections may be a WDS connection and/or any other suitable type of connection that would permit MAP <NUM> to connect to MAP <NUM> and perform at least some of the routing functions described throughout the specification. The present disclosure is not limited to any specific type of protocol for establishing the mesh-connections. Furthermore, although in the present example the network <NUM> is a mesh network, alternative implementations are possible in which the network <NUM> has any other suitable type of topology. The present disclosure is thus not limited to any specific topology for the network <NUM>.

<FIG> is a sequence diagram of an example of a process <NUM> performed by MAP GW <NUM> and MAP <NUM> when the mesh connection connecting MAP GW <NUM> and MAP <NUM> is established.

At step <NUM>, MAP <NUM> establishes a wireless station-mode connection with MAP GW <NUM> through any of its interfaces, such as the Ethernet, PLC or Wi-Fi interfaces. It shall be noted that for MAP <NUM> to establish a wireless station-mode connection with MAP GW <NUM>, it may first associate with MAP GW <NUM> as a station node. For this, the MAP <NUM> can utilize various methods. For example, MAP <NUM> can associate with MAP GW <NUM> or any of the MAPs (for example, MAP <NUM>) by the WPS push button method. Specifically, once the WPS buttons of MAP <NUM> and MAP GW <NUM> are pressed, a WPS transaction is initiated between these two nodes. At the end of the transaction, MAP <NUM> establishes a station-mode connection to MAP GW <NUM>. When MAP <NUM> operates as a STA connected to MAP GW <NUM>, it is said to operate in STA mode (e.g., IEEE <NUM> STA mode).

At step <NUM>, MAP <NUM> receives a "mesh announcement" message that is transmitted by MAP GW <NUM>. In some implementations, the "mesh announcement" message may include a CCUID corresponding to the mesh network <NUM>. As noted above, the CUUID may be a <NUM>-byte value, <NUM> bytes of which are used to represent a network identifier (NI) corresponding to the mesh network <NUM>, and <NUM> bytes used to represent a configuration sequence number (CSN) identifying configuration of the mesh network <NUM>.

At step <NUM>, upon reception of the "mesh announcement" message, MAP <NUM> sends a "join request" message to MAP <NUM>. This "join request" message is unicast, and it may include a destination address field set to the MAC address of MAP GW <NUM>, a source address field set to the MAC address of MAP <NUM>, and a sender/transmitter address fields that are both set to MAP's <NUM> MAC address.

At step <NUM>, upon reception of the "join request" message transmitted by MAP <NUM>, MAP GW <NUM> sends the confidential credentials for network <NUM> to MAP <NUM> via an encrypted "join response" message. As noted above, the confidential credentials may include a trusted PIN for connecting to the mesh network <NUM> and/or one or more nodes in the mesh network <NUM>.

At step <NUM>, following reception of the "join response" message, MAP <NUM> applies the configuration parameters, and sets up a mesh connection (for example, a WDS connection) with MAP GW <NUM>, as well as additional mesh connections (for example, WDS connections) with other MAPs that are part of mesh network <NUM> (for example, mesh peers), such as MAP <NUM>, provided that MAP <NUM> is already connected. In some implementations, any of the mesh connections may be a one-hop data-link layer connection. After the mesh connection(s) are established, MAP <NUM> may transition into AP mode (e.g., IEEE <NUM> AP mode) and begin operating as an AP for the network <NUM>.

In some implementations, the station-mode connection established at step <NUM> may be terminated after the establishment of one or more mesh connections at step <NUM>. In such instances, MAP <NUM> may exit STA mode and begin operating in AP mode. Alternatively, in some implementations, the station-mode connection established at step <NUM> may be maintained after the establishment of one or more mesh connections at step <NUM>. In such instances, MAP <NUM> may operate in both STA mode and AP mode at the same time. As can be readily appreciated, while MAP <NUM> operates in both AP mode and STA mode, the station-mode connection may be used for the transmission of data, received from a STA connected to the network <NUM> via MAP <NUM> (e.g., STA <NUM> shown in <FIG>), towards MAP GW <NUM> and/or a node in the network <NUM>. Additionally or alternatively, while MAP <NUM> operates in both AP mode and STA mode, the station-mode connection may be used for the receipt of data that is directed to the STA.

<FIG> is a diagram of an example of a process <NUM> for adding additional nodes to network <NUM>, according to aspects of the disclosure. At step <NUM>, MAP <NUM> connects to network <NUM> as a station by establishing a station-mode connection with MAP <NUM>. For example, when the station-mode connection is an IEEE <NUM>. 11ac connection, MAP <NUM> may connect to MAP <NUM> in the same way any device might connect to a home wireless router or commercial access point. In some implementations, the station-mode connection may be a direct connection between MAP <NUM> and MAP <NUM> (e.g., a one-hop data link layer connection). When MAP <NUM> is connected to network <NUM> as a station, it is said to operate in station (STA) mode (e.g., IEEE <NUM> station mode). When operating in STA mode, MAP <NUM> may be an end-node (or a leaf) in the graph defined by network's <NUM> topology.

At step <NUM>, one or more mesh connections (for example, WDS connections) are established between MAP <NUM> and nodes in mesh network <NUM>. The mesh connections may be established in accordance with the process discussed with respect to <FIG>. In some implementations, one or more of the mesh connections may be one-hop data-link layer connections. More particularly, MAP <NUM> may receive a "mesh announcement" message transmitted by MAP GW <NUM> (or another node in network <NUM>) over the station-mode connection, and transmit a "join request" message in response. Afterwards, MAP <NUM> may receive a "join response" message from MAP GW <NUM> (or another node in mesh network <NUM>), which contains configuration parameters for establishing a mesh connection (for example, a WDS connection) with MAP GW <NUM>. The configuration parameters may also be used to establish a mesh connection with other nodes in mesh network <NUM> (for example MAP <NUM>). The other nodes in mesh network <NUM> may be identified by MAP <NUM> based on a peer list that is provided to MAP <NUM> by MAP GW <NUM>. The peer list may identify one or more devices that are part of mesh network <NUM>, and it may include an identifier (for example, an address, such as a MAC address) corresponding to at least one respective communications interface of each of the devices that are currently part of mesh network <NUM> when step <NUM> is executed.

It should be noted that before setting up the mesh connections, MAP <NUM> is connected only to MAP node <NUM>, and it is connected to MAP GW <NUM> via MAP <NUM>. However, after it successfully sets up its mesh connections (for example, WDS connections), it becomes part of mesh network <NUM>, and so it attains a direct mesh connection (for example, a WDS connection) to MAP GW <NUM>. This direct mesh connection (for example, WDS connection) to MAP GW <NUM> provides an alternative path to MAP GW <NUM>, which would not be an option if MAP <NUM> stayed connected to MAP <NUM> in STA or UR mode. According to aspects of the disclosure, a direct connection between two devices may be a connection which allows data to travel in one hop between the two devices without passing through any intermediate nodes.

In some aspects, when MAP <NUM> is connected to mesh network <NUM> via one or more mesh connections, MAP <NUM> is said to operate in AP mode (e.g., IEEE <NUM> AP mode). When operating in AP mode, MAP <NUM> may be an intermediate node in the graph defined by network's <NUM> topology. As such, when operating in AP mode, MAP <NUM> may lie on any network path connecting MAP GW <NUM> to another node in network <NUM> (for example, STA <NUM>). Furthermore, when operating in AP mode, MAP <NUM> may operate as an access point for the network <NUM>.

At step <NUM>, STA <NUM> connects to network <NUM> via MAP <NUM>. After connecting to network <NUM>, STA <NUM> may transmit a message (or data) to a destination located outside network <NUM> via MAP GW <NUM> and MAPs <NUM> and <NUM>. MAP <NUM> may receive the message and route it to MAP <NUM>. Upon receiving the message from MAP <NUM>, MAP <NUM> may forward the message to MAP GW <NUM>. Upon receiving the message, MAP GW <NUM> may further forward the message to a node that is located outside of network <NUM>. For example, MAP GW <NUM> may transmit the message to a node located in network <NUM>. Network <NUM> may be the Internet and/or any other suitable type of network, such as a wide area network.

According to aspects of the disclosure, the configuration of the mesh network <NUM> may change during its operation. For example, the user may change the SSID and/or the passphrase of the network <NUM>, or the user may change the operating channel of the Wi-Fi interfaces, or the user may even replace MAP GW <NUM> with another gateway node. For the cases that necessitate mesh configuration updates, examples of methods to maintain the connectivity in the mesh network <NUM> are disclosed further below.

According to aspects of the disclosure, due to government regulations, an AP operating in radar channels have to be able to detect radar with at least a given probability, and in case of detection, change its operating channel and not return to its previous operating channel for a time duration designated by the regulation. This is called dynamic frequency selection (DFS); the channels in which radar detection capability is required are called DFS channels, and the other available channels are called non-DFS channels. The local authorities govern the regulations for devices operating in <NUM> band, for example, ETSI in Europe and FCC in the USA. For example, according to ETSI, channels that fall within <NUM>-<NUM> are called non-DFS channels, whereas channels that fall within <NUM>-<NUM> and <NUM>-<NUM> are called DFS channels. In cases where the mesh network is operating in a DFS channel of the <NUM> band (i.e., mesh connections are on the <NUM> DFS channel), if a MAP node detects radar, it notifies the gateway node about the presence of radar. Note that due to regulations, the node that detects radar has to cease transmission in that DFS channel within a predetermined time period, and then switches to a radar-free channel. An AP is allowed to make transmissions only in a fraction of the allowed time period before ceasing its transmissions in the DFS channel following detection of radar.

<FIG> is a diagram illustrating an example of a process <NUM> for changing a channel used by network <NUM> in response to detecting that the channel is being used by one or more systems (for example, radar systems) that have a higher priority to use the channel than the devices in network <NUM>.

At step <NUM>, network <NUM> is operating in a current channel (for example, channel <NUM>), and MAP <NUM> detects that the current channel is used by a radar. In response to detecting the presence of the radar, MAP <NUM> sends two messages to its mesh peers: (i) a channel switch announcement (CSA) message designating a candidate channel to switch to is sent to every node in network <NUM>, including MAP GW <NUM>, MAP <NUM>, and the station nodes, and (ii) radar-detected message is broadcasted to every MAP (for example, MAP <NUM>) in the mesh network <NUM>, and MAP GW <NUM>. If the nodes (for example, MAP GW <NUM> and MAP <NUM>) successfully receive the CSA message, then the network switches to the channel designated in the CSA message; thus re-setting up the WDS connections in the switched channel. However, if the CSA messages were not delivered successfully, the nodes that couldn't receive the CSA would not be able to switch to the designated channel. In one implementation, the radar-detected message includes an indication of an alternative channel to switch to, or a list of alternative channels to switch to. In another implementation, the radar-detected message may only be used to notify the other MAPs in network <NUM> (for example, MAP <NUM>) or MAP GW <NUM> that the current channel is being used by a higher-priority system, without dictating or suggesting an alternative channel. In further implementations, Extended Channel Switch Announcement (ECSA) may be used instead of CSA.

At step <NUM>, MAP GW <NUM> receives the CSA message successfully, but MAP <NUM> does not. Afterwards, MAP GW <NUM> and MAP <NUM> switch to using the alternative channel designated in the CSA message. However, because MAP <NUM> has not received the CSA message, it continues operating in the same channel. As a result, the mesh connection between MAP <NUM> and MAP GW <NUM> is lost, and the mesh connection between MAP <NUM> and MAP <NUM> is also lost. MAP <NUM> recognizes that it has lost its mesh connections, since it cannot receive periodic "mesh announcement" messages through the mesh connections. It shall be noted that if MAP <NUM> and MAP GW <NUM> are connected through another interface, for example an Ethernet interface, then MAP <NUM> can learn about the updated channel information via a "mesh announcement" message received over the other interface. However, if the only connection option between the MAP and the gateway is the mesh connection that was lost, then with the channel switch of MAP GW <NUM>, MAP <NUM> loses its connection to MAP GW <NUM>.

At step <NUM>, when MAP <NUM> loses its connection to MAP GW <NUM>, it reverts back to STA mode, and scans available channels to find the MAC address of MAP GW <NUM> which is already known to the MAP <NUM>. The scan can be a passive scan (meaning that the scanning node listens to messages, for example, beacons), an active scan (meaning that the scanning node sends probe request messages to the broadcast address or to the previously known MAC addresses), or a combination of both.

At step <NUM>, MAP <NUM> reconnects to mesh network <NUM> and reestablishes the mesh connections with MAP <NUM> and MAP GW <NUM> that were lost when MAP <NUM> and MAP <NUM> changed channels. More particularly, once MAP GW <NUM> is found, MAP <NUM> switches to AP mode, and changes its operating channel to the one MAP GW <NUM> and MAP <NUM> are found in.

The procedure explained above is followed also in the case when MAP GW <NUM> does not receive the CSA message but it successfully receives the radar-detected message, in which case the MAP GW <NUM> changes its operating channel. MAP GW <NUM> sends the mesh announcements in the newly switched channel, with the updated channel information, and with an incremented CSN. If MAPs <NUM> and <NUM> successfully receive the CSA message, then mesh network <NUM> switches to the channel designated in the CSA message; thus re-setting up the WDS connections in the switched channel.

<FIG> is a diagram illustrating an example of a process <NUM> for changing a channel used by network <NUM> in response to detecting that the channel is being used by one or more systems (for example, radar systems) that have a higher priority to use the channel than the devices in network <NUM>. In both of process <NUM> and process <NUM>, MAP <NUM> detects that the current channel occupied by mesh network <NUM> is being used by one or more systems that have a higher priority to use the channel and transmits CSA and radar-detected messages, in response. However, unlike process <NUM>, in process <NUM>, the CSA and/or radar-detected messages fail to be delivered to MAP GW <NUM>. In this regard, process <NUM> illustrates steps performed by mesh network <NUM> when MAP GW <NUM> fails to receive the CSA and/or radar-detected messages that are transmitted by a MAP node in the network.

At step <NUM>, MAP <NUM> detects that the first channel is used by a radar. In response to detecting the presence of the radar, MAP <NUM> transmits (for example, broadcasts) two messages to its mesh peers: (i) a CSA message designating a candidate channel to switch to is sent to every node in mesh network <NUM>, including MAP GW <NUM>, MAP <NUM>, and the station nodes, and (ii) a radar-detected message is broadcasted to every MAP (for example, MAP <NUM>) in the mesh network <NUM>, and MAP GW <NUM>.

At step <NUM>, MAP <NUM> receives the CSA message and/or radar-detected message that are transmitted at step <NUM>. However, MAP GW <NUM> fails to receive the CSA message and radar-detected message that are transmitted at step <NUM>. As a result, MAPs <NUM> and <NUM> switch to using the alternative channel that is designated in the CSA and/or radar-detected message, while the MAP GW <NUM> fails to do so.

At step <NUM>, following the switch to the designated channel, MAPs <NUM> and <NUM> detect that they have lost their respective mesh connections to MAP GW <NUM>, and transition back to STA mode. MAPs <NUM> and <NUM> establish respective station-mode connections with MAP GW <NUM>, and re-transmit the CSA and/or radar detected message, which includes an indication of the alternative channel. Upon receiving one or more of the messages, MAP GW <NUM> switches to using the alternative channel.

At step <NUM>, the MAPs <NUM> and <NUM> reconnect to mesh network <NUM> at the alternative channel and re-establish the mesh connections that are lost at step <NUM>. As discussed above with respect to <FIG>, to reconnect to mesh network <NUM>, each of MAP <NUM> and MAP <NUM> may perform a handshake with MAP GW <NUM> which involves the exchange of "join request" and "join response" messages.

<FIG> is a flowchart of an example of a process <NUM> for reconfiguring mesh network <NUM> in response to a change of the passphrase for connecting to MAP GW <NUM>, according to aspects of the disclosure. For the purposes of this example, it will be assumed that the mesh connections between MAP GW <NUM> and MAPs <NUM> and <NUM> are established using a <NUM> interface that is part of MAP GW <NUM>.

At step <NUM>, MAP GW <NUM> detects a re-configuration event specifying a new passphrase for the wireless <NUM> interface passphrase. The event may be detected in response to MAP GW <NUM> receiving a user input specifying the new passphrase. When the wireless <NUM> interface passphrase is changed at MAP GW <NUM>, a key (for example, WDS key) used for the establishment of the mesh connections between MAP GW <NUM> and MAPs <NUM> and <NUM> needs to be updated too because it is derived from the updated passphrase. In one implementation, the key is always derived from the primary SSID's passphrase, and hence, when the primary SSID's passphrase is changed, the key is automatically changed. In another implementation, the key may be derived and set once, and it is not updated when the <NUM> interface's primary SSID's passphrase is changed. In further implementations, the key (for example, WDS key) may be derived from a separate passphrase dedicated for mesh connections (for example, WDS connections). In the present example, the change of the passphrase requires a key update.

At step <NUM>, MAP GW <NUM> announces the passphrase update in transmitted "mesh announcement" messages. The "mesh announcement" messages need not state that the passphrase is to be updated or they need not specify which parameter is to be updated, but by using an incremented CSN in the "mesh announcement" message, MAP GW <NUM> informs its mesh peers (for example, MAPs <NUM> and <NUM>) about a configuration update.

At step <NUM>, MAPs <NUM> and <NUM> receive one or more of the "mesh announcement" messages and detect that the primary SSID passphrase has changed.

At step <NUM>, in response to detecting that the passphrase has changed, MAPs <NUM> and <NUM> request the updated configuration from MAP GW <NUM> by sending an encrypted configuration-request message. In one implementation, each configuration-request message includes an identification of the current configuration of the MAP which has transmitted the configuration-request message.

At step <NUM>, in response to the configuration-request messages sent by MAP <NUM> and <NUM>, MAP GW <NUM> sends a respective encrypted configuration-response message to each of MAP <NUM> and MAP <NUM>. Each respective configuration-response message includes the updated passphrase. In one implementation, each respective configuration-response message incorporates all configuration parameters of MAP GW <NUM>.

At step <NUM>, MAP GW <NUM> applies the new passphrase. In some implementations, the MAP GW <NUM> may apply the passphrase only after MAP GW <NUM> has received a confirmation from every MAP node in mesh network <NUM> that the configuration-response messages have been received. In one implementation, MAP GW <NUM> updates the passphrase only after it has received configuration-request message from all active mesh-peers (for example, both MAP <NUM> and <NUM> in this example) and it has responded to all active mesh-peers with the configuration-response message. In another implementation, MAP GW <NUM> waits for a predetermined number of mesh announcements before it applies the passphrase update. For example, in one implementation, MAP GW <NUM> waits for <NUM> mesh announcement periods, where each announcement has a period of <NUM> second. Having received the updated passphrase, the MAPs in mesh network <NUM> (for example, MAPs <NUM> and <NUM>) update the WDS keys in accordance with the new passphrase information. After MAP GW <NUM> applies the new passphrase, all WDS connections become active with the WDS keys derived from the new passphrase.

<FIG> is a flowchart of an example of a process <NUM> that is performed by MAP <NUM> after reboot, according to aspects of the disclosure.

At step <NUM>, after boot-up, MAP <NUM> (a former peer of a mesh network <NUM>) operates in STA mode and tries to establish a connection with MAP GW <NUM> via the WPS-PIN method defined in the IEEE <NUM> standard. According to aspects of the disclosure, MAP GW <NUM> keeps two PINs stored in memory: (<NUM>) MAP GW's <NUM> default PIN, which is used for PIN based WPS connections with non-MAP capable devices, and (<NUM>) the trusted PIN, which is used for PIN-based WPS connections with MAP capable devices. When MAP <NUM> tries to establish connection with MAP GW <NUM> via the WPS-PIN method using the trusted PIN, MAP GW <NUM> detects whether the requesting MAP belongs to a WDS peer list that is stored in the memory of MAP GW <NUM>, and which identifies a one or more MAPs, which have been authenticated to establish mesh connections with MAP GW <NUM>. If MAP <NUM> is not identified in the WDS peer list, then MAP GW <NUM> does not initiate WPS-PIN method with the trusted PIN. In some implementations, a node that is not identified in the WDS peer list of MAP GW <NUM> can initiate WPS-PIN with MAP GW's <NUM> default PIN. On the other hand, if MAP <NUM> is identified in the mesh peer list, a mesh connection between MAP <NUM> and other nodes in mesh network (for example, MAP <NUM>) can be established.

At step <NUM>, MAP <NUM> detects whether the attempt to establish a WPS-PIN connection with MAP GW <NUM> has been successful. If the attempt has been successful, the process ends. Otherwise, if the attempt is unsuccessful, the process proceeds to step <NUM>.

At step <NUM>, if MAP <NUM> does not have direct connection with MAP GW <NUM>, it establishes connection to MAP <NUM>. MAP <NUM> uses the trusted PIN that it acquired during its initial connection with MAP GW <NUM>, for establishing a PIN based station-mode connection with MAP <NUM>. After MAP <NUM> establishes a STA station-mode connection with MAP <NUM> (or another MAP), it receives one or more "mesh announcement" messages via station-mode connection with MAP <NUM> and uses those "mesh announcement" messages to establish a mesh connection with MAP GW <NUM> and/or MAP <NUM>.

In some implementations, if MAP <NUM> node is connected to the MAP GW <NUM> through an Ethernet connection, it receives the "mesh announcement" messages via the Ethernet connection. In instances, in which MAP <NUM> is connected to MAP GW <NUM> via an Ethernet connection, MAP <NUM> need not use the WPS-PIN method defined in the IEEE <NUM> standard to establish a station-mode connection with MAP GW <NUM>.

<FIG> is a diagram of the network <NUM> illustrating an example in which the gateway node is replaced, according to aspects of the disclosure. As illustrated, at time to, MAP GW <NUM> is the gateway node in network <NUM>, and MAPs <NUM> and <NUM> are connected to MAP GW <NUM>, as shown. At time t<NUM>, MAP GW <NUM> is replaced with MAP GW <NUM>, and MAPs <NUM> and <NUM> are connected to MAP GW <NUM> via new mesh connections.

<FIG> is a flowchart of an example of a process <NUM> for incorporating MAP GW <NUM> into mesh network <NUM> after MAP GW <NUM> has been replaced with MAP GW <NUM>. At step <NUM>, MAP GW <NUM> detects a trigger event and transmits a message containing an indication of the trigger event. Because MAP GW <NUM> has no prior connection with mesh network <NUM>, it requires a trigger event to initiate a connection. This trigger event may be a WPS push button event, which can be realized by pushing the WPS buttons on MAP GW <NUM> and MAP <NUM>, or this trigger event may be another event initiated through the user interface of MAP GW <NUM>, or this trigger event may be generated using a user application running on a smart phone or tablet, etc., which can send a trigger event command to any of MAP GW <NUM> and MAPS <NUM> and <NUM> for starting a WPS transaction.

At step <NUM>, MAP <NUM> receives the message containing the indication of the trigger event and establishes a station-mode connection with MAP GW <NUM>, while also transitioning from AP mode into STA mode. At step <NUM>, MAP GW <NUM> transmits a "mesh announcement" message including a first CUUID, and in particular a first NI (which is part of the first CUUID) that is different from a second NI that was associated with mesh network <NUM> while MAP GW <NUM> was part of it.

At step <NUM>, MAP <NUM> detects whether MAP GW <NUM> is a replacement gateway. According to aspects of the disclosure, a "replacement gateway" may include a gateway that has never been part of a mesh network before, or one which has been reset to delete some or all information that is associated with a mesh network which the gateway has been part of.

In some implementations, MAP <NUM> may detect that MAP GW <NUM> is a replacement gateway by comparing the first NI that is contained in the "mesh announcement" message to the second NI, which is stored in the memory of MAP <NUM> (and was previously used by MAP GW <NUM> to identify mesh network <NUM>). As noted above, the second NI is associated with mesh network <NUM>, and MAP GW <NUM>, in particular. When the first NI and the second NI do not match, MAP <NUM> deduces from the NI that the source of the "mesh announcement" message (i.e., MAP GW <NUM>) is a replacement GW.

Furthermore, MAP <NUM> may determine that MAP GW <NUM> is a replacement gateway when the "mesh announcement" message does not include a mesh peer list that identifies a prior mesh configuration with other MAPs. The mesh peer list, as discussed above, may include a list of MAPs which have been previously connected to MAP GW <NUM> (and/or mesh network <NUM>) via mesh connections. Thus, when the "mesh announcement" message does not include a WDS peer list, MAP <NUM> may again deduce that MAP GW <NUM> is a replacement gateway because no MAP nodes have been previously connected to it.

When MAP <NUM> detects that MAP GW <NUM> is not a replacement gateway, the process proceeds to step <NUM>. At step <NUM>, MAP <NUM> transmits a first "join request" to MAP GW <NUM>, MAP GW <NUM> responds with a "join response" message to MAP <NUM>, and a mesh connection is established between MAP <NUM> and MAP GW <NUM>, in the manner discussed with respect to <FIG>.

When MAP <NUM> detects that MAP GW <NUM> is a replacement GW, the process proceeds to step <NUM>. At step <NUM>, MAP GW <NUM> delivers its mesh configuration, namely its peer list (for example, WDS peer list corresponding to mesh network <NUM>), to MAP GW <NUM>. More particularly, at step <NUM>, MAP <NUM> sends a second "join request" message to MAP GW <NUM> within which it incorporates the mesh configuration (for example, the mesh peer list of mesh network <NUM> and/or the second NI that was used by MAP GW <NUM> to identify mesh network <NUM>). Unlike the first "join request" message, the second "join request" message may include at least one of the second NI of the mesh network <NUM> and the mesh peer list of the mesh network <NUM>. At step <NUM>, MAP GW <NUM> transmits a "join response" message to MAP <NUM>, and a mesh connection is established between MAP <NUM> and MAP GW <NUM>.

At step <NUM>, MAP GW <NUM> adopts the configuration information of mesh network <NUM>. More particularly, MAP GW <NUM> begins announcing the mesh peer list of mesh network <NUM> in its "mesh announcement" messages. Furthermore, MAP GW <NUM> begins making its mesh announcements with the adopted second NI and an incremented CSN. This way, MAPs that have mesh network's <NUM> NI (for example, the second NI) may receive "mesh announcement" messages through their mesh connections (for example, WDS connections), and update their configurations accordingly.

At step <NUM>, MAP GW <NUM> establishes mesh connections with one or more other MAPs (for example, MAP <NUM>) by using the adopted configuration settings of MAP GW <NUM>. When MAP GW <NUM> is replaced with MAP GW <NUM>, MAP <NUM> retains the configuration settings of mesh network <NUM> and performs a scan for the lost GW (i.e., MAP GW <NUM>). Note that when MAP GW <NUM> is turned off, all MAPs (for example, MAP <NUM>) in mesh network <NUM> revert to STA mode in an effort to find MAP GW <NUM>. Since MAP GW <NUM> is turned off, the MAPs (for example, MAP <NUM>) stay in STA mode searching for MAP GW <NUM>. This search is stopped, either when MAP GW <NUM> is turned on or when the MAPs receive a "mesh announcement" message from a new GW node (for example, MAP GW <NUM>) with the same NI. MAPs in the mesh network <NUM> (for example, MAP <NUM>) may receive "mesh announcement" messages on the interfaces which connect the MAPs to the gateway node (for example, MAP GW <NUM>) of the mesh network <NUM>. The new gateway node (for example, MAP GW <NUM>) may obtain the interface addresses of MAPs in mesh network <NUM> (for example, MAP <NUM>) from the peer list transmitted at step <NUM>. A MAP that has switched to STA mode may receive mesh announcements, for example, if it is connected to MAP GW <NUM> through Ethernet.

The remaining MAPs in mesh network <NUM> (for example, MAP <NUM>) and MAP GW <NUM> establish a mesh network with the confidential credentials of mesh network <NUM> that are used before MAP GW <NUM> is replaced with MAP GW <NUM>. In one implementation, MAP GW <NUM> and the MAPs in mesh network <NUM> (for example, MAP <NUM>) may adopt and keep mesh network's <NUM> confidential credentials, such as the SSID, passphrase, trusted PIN. In another implementation, the MAP GW <NUM> may temporarily use mesh network's <NUM> confidential credentials to connect to the MAP nodes in the mesh network <NUM>, and it may update these credentials with its default credentials immediately after connecting. MAP GW <NUM> informs the mesh network of the new confidential credentials by incrementing the CSN. In one implementation, any MAP in mesh network <NUM> that receives a "mesh announcement" message with a higher CSN than its current CSN state, sends configuration-request message to MAP GW <NUM>. MAP GW <NUM> responds with the encrypted configuration-response message with the new confidential credentials.

<FIG> depicts an example of a network <NUM> in which mesh processor <NUM> is incorporated in MAP GW <NUM>, and a hybrid mesh network is setup by using MAPs, <NUM>, <NUM>, and <NUM>. The dashed lines represent Wi-Fi connections, either <NUM> or <NUM>, and the solid lines represent either Ethernet or PLC. More particularly, connections 1110b and 1116b are PLC connections, connection 1117b is an Ethernet connection, and network <NUM> represents the Internet. In accordance with the present example, if the MAPs, <NUM>, <NUM>, and <NUM> employ a communication technology that is not supported by MAP GW <NUM>, such as PLC, they can utilize this communication medium for transmission among each other; thus increasing the available capacity beyond the common communication medium. The MAPs, <NUM>, <NUM>, and <NUM> make use of all available communication media in the hybrid network while creating their forwarding tables, and making routing decisions.

Claim 1:
A method for use in a mesh gateway (<NUM>) of a mesh wireless local area network, WLAN, (<NUM>) the method comprising:
on a condition that a trigger event is detected, transmitting, to a mesh access point, MAP, (<NUM>), of the mesh WLAN, a message indicating that the trigger event is detected;
establishing a station, STA, mode connection with the MAP (<NUM>) after the MAP (<NUM>)
transitions from an access point, AP, mode to the STA mode;
transmitting, to the MAP (<NUM>) in STA mode, a mesh announcement message including a first network identifier, NI, to enable the MAP (<NUM>) to determine, based on the first NI and a second NI, that the mesh gateway (<NUM>) is a replacement mesh gateway (<NUM>), wherein the second NI is associated with the mesh WLAN (<NUM>) while the replaced mesh gateway (<NUM>) was part of it;
receiving, from the MAP (<NUM>) in STA mode, a join request message including mesh configuration information associated with the mesh WLAN (<NUM>);
establishing a mesh connection with the MAP (<NUM>) using the mesh configuration information; and
transmitting a mesh announcement message including a mesh peer list based on the mesh configuration information.