Method and apparatus for adaptive mesh network configuration
Adaptive mesh network configurations in WMNs manage peering requests and node roles based on signal quality to reduce memory overhead and enhance network performance in high-mobility environments, addressing inefficiencies in static deployments.
Patent Information
- Application Number
- JP2024204903
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-26
- Filing Date
- 2024-11-25
- Publication Date
- 2026-02-05
- Estimated Expiration
- 2044-11-25
AI Technical Summary
Existing wireless mesh networks (WMNs) face challenges with high memory overhead and inefficient peering management due to static node deployments and high mobility of low-complexity devices, particularly in IoT applications, leading to rapid memory exhaustion and network performance degradation.
Implement adaptive mesh network configurations that allow mesh nodes to dynamically accept or reject peering requests based on signal quality, such as RSSI and packet error rate (PER), and adjust roles as root or non-root nodes based on network state, reducing memory footprint and optimizing network performance.
The adaptive configuration reduces memory overhead and improves network performance by maintaining strong connections and terminating weak links, enhancing the efficiency and reliability of WMNs in high-mobility scenarios.
Smart Images

Figure 2026019974000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD OF THE DISCLOSURE The present disclosure relates generally to wireless communications. For example, aspects of the disclosure relate to wireless mesh networks (WMNs) and / or adaptive configuration of one or more root mesh nodes of a WMN. [Background technology]
[0002] A wireless mesh network (WMN) is a communication network containing multiple wireless nodes organized in a mesh topology. The mesh topology can be based on rich interconnections between the nodes, with each node in the mesh topology connected to one or more other nodes in the mesh topology. In the context of a WMN, the mesh topology between multiple wireless nodes allows multiple different paths to be taken between a source and a destination. In some instances, a WMN can typically be implemented as a low-mobility wireless ad hoc network. The mesh infrastructure allows data to be transmitted over long distances by dividing each distance into a series of short hops, and intermediate nodes cooperatively pass data from one node to another by making forwarding decisions based on each intermediate node's knowledge of the network and / or the underlying mesh topology. For example, using knowledge of the network and / or the underlying mesh topology, every node in the network can dynamically act as a router for every other node.
[0003] An example of a WMN is the Institute of Electrical and Electronics Engineers (IEEE) 802.11s mesh network. The IEEE 802.11s wireless mesh networking standard defines the interconnection between multiple wireless devices to create a wireless local area network (WLAN) mesh network. A wireless mesh network device, also known as a mesh station (mesh STA) or mesh node, forms a mesh link with one or more additional mesh STAs associated with the WMN. With multiple mesh links interconnecting various pairs of mesh STAs included in the WMN, a mesh path can be established using an ad hoc mobile routing protocol (e.g., a mesh path can include multiple mesh links between interconnected mesh STAs or nodes of the WMN).
[0004] Multihop wireless links in a mesh architecture can be used to route packets from one node (e.g., a source node on a WMN) through one or more other nodes (e.g., intermediate nodes on a WMN) to a destination node (e.g., a destination node on a WMN). The IEEE 802.11s mesh standard requires all nodes in a mesh network to transmit a beacon every beacon interval. This beacon, also known as a mesh beacon, advertises the mesh ID, mesh profile, and power-saving state. IEEE 802.11s mesh beaconing is intended for mesh network discovery and synchronization between mesh nodes when the mesh power-saving mode is enabled. Mesh networks operating in the sub-gigahertz (S1G) frequency band (e.g., frequencies below 1 GHz) offer the advantages of long-range wireless communication and improved fault tolerance compared to infrastructure networks. For example, license-exempt frequency bands below 1 gigahertz (GHz) can be used for wireless communication between mesh nodes in a mesh network. Summary of the Invention [Problem to be solved by the invention]
[0005] The following presents a simplified summary of one or more aspects disclosed herein. As such, the following summary is not intended to be an extensive overview of all aspects contemplated, nor is it intended to identify key or essential elements of all aspects contemplated, or to delineate the scope associated with any particular aspect. As such, the following summary has the sole purpose of presenting certain concepts relevant to one or more aspects of the mechanisms disclosed herein in a simplified form, prior to the detailed description presented below. [Means for solving the problem]
[0006]
[0003] A method for wireless communication over a wireless mesh network is provided, comprising: a first area network (WLAN) for communicating with a wireless local area network (WLAN) over a wireless network; For example, an adaptive root mesh configuration method for a first mesh node in a mesh network may include broadcasting, by the first mesh node, a route advertisement frame at a set time interval, the route advertisement frame being used to advertise the presence of the first mesh node as a root mesh node of the mesh network based on a configuration of the first mesh node in a role of a root mesh node of the mesh network; receiving, by the first mesh node, a plurality of path reply messages from one or more mesh peers in the mesh network, each path reply message of the plurality of path reply messages being a response to a corresponding path request message; determining updated state information of the mesh network based on the plurality of path reply messages; and configuring the first mesh node in a role of a non-root mesh node or configuring the first mesh node to maintain the role of the root mesh node, the configuration of the first mesh node in a role of the non-root mesh node or the root mesh node being determined based on the updated state information of the mesh network.
[0007] In another illustrative example, a first mesh node in a mesh network is provided, the first mesh node including a radio frequency (RF) receiver and an RF transmitter, a processor communicatively coupled to the RF receiver and the RF transmitter, and one or more memory banks communicatively coupled to the processor and storing processor-readable instructions. When executed by the processor, the processor-readable instructions cause the processor to: broadcast, by the RF transmitter, route advertisement frames at set time intervals, the route advertisement frames being used to advertise the presence of a first mesh node as a root mesh node of the mesh network based on a configuration of the first mesh node in a role of a root mesh node of the mesh network; receive, by the RF receiver, a plurality of path response messages from one or more mesh peers in the mesh network, each path response message of the plurality of path response messages responding to a corresponding path request message; determine updated state information of the mesh network based on the plurality of path response messages; and configure the first mesh node in a role of a non-root mesh node or configure the first mesh node to maintain the role of the root mesh node, the configuration of the first mesh node in a role of the non-root mesh node or root mesh node being determined based on the updated state information of the mesh network.
[0008] Other objects and advantages associated with the embodiments disclosed herein will become apparent to those skilled in the art based on the accompanying drawings and detailed description. [Brief explanation of the drawings]
[0009] Exemplary aspects of the present application will be described in detail with reference to the following drawings.
[0010] [Figure 1] 1 is a block diagram illustrating an exemplary wireless communication network.
[0011] [Figure 2A] 1 is a block diagram of a wireless communication device that can implement a station (STA) or an access point (AP) according to some embodiments.
[0012] [Figure 2B] 2B is a schematic block diagram of a receiver data flow architecture of the wireless communication device of FIG. 2A according to some embodiments.
[0013] [Figure 2C] 1 is a schematic block diagram of a transmitter data flow architecture that can be used to transmit radio frequency (RF) signals over a wireless medium, according to some embodiments.
[0014] [Figure 3] FIG. 1 illustrates an example of a mobile mesh node moving away from a first mesh network associated with a first mesh basic service set (BSS) toward a second mesh network associated with a second mesh BSS, according to some embodiments.
[0015] [Figure 4] FIG. 1 is a signaling diagram illustrating an example of mesh peering signaling between a first mesh node and a second mesh node, according to some embodiments.
[0016] [Figure 5] 1 is a signaling diagram illustrating an example of adaptive mesh peering performed by a mesh STA when a new peer is discovered after capacity has been reached on the maximum number of peer links, according to some embodiments.
[0017] [Figure 6] 1 illustrates an example of adaptive root mesh node management for an MBSS including multiple root mesh nodes or STAs, according to some embodiments.
[0018] [Figure 7] 1 is a flow diagram of an example process for adaptive root mesh configuration of a first mesh node in a mesh network, according to some embodiments.
[0019] [Figure 8] FIG. 1 is a block diagram illustrating an example of a computing system for implementing certain aspects described herein, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0020] Specific aspects of the present disclosure are described below. As will be apparent to one skilled in the art, some of these aspects can be applied independently and some of them can be applied in combination. In the following description, for purposes of explanation, specific details are set forth in order to provide a thorough understanding of aspects of the present application. However, it will be apparent that various aspects may be practiced without these specific details. The drawings and description are not intended to limit the invention.
[0021] The following description provides exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of exemplary embodiments will provide those skilled in the art with an enabling description for implementing the exemplary embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the spirit or scope of the present invention, as set forth in the appended claims. [overview]
[0022] As previously mentioned, wireless mesh networks (e.g., WMNs) are typically implemented as low-mobility wireless ad hoc networks, with little or no mobility or movement expected from individual mesh nodes. For example, many existing approaches to WMNs, including IEEE 802.11s-based WMNs, are implemented with static or semi-static deployments of individual mesh nodes that form mesh topologies and interconnections. In these static or semi-static deployments, individual mesh nodes do not change location, or change location only very infrequently. For example, a Wi-Fi mesh network in a user's home may support a static or semi-static deployment of mesh nodes, based on mesh nodes that are placed in desired rooms in the home during setup and then maintained in the same locations indefinitely.
[0023] If the locations of individual mesh nodes in a WMN do not change, or change infrequently, then the list of interconnections maintained by each mesh node is expected to change infrequently as well. This is because the interconnections of a particular mesh node consist of other mesh nodes in the WMN that are within the communication range of the particular mesh node. Furthermore, existing WMNs are sometimes implemented under the assumption that a particular mesh node in the WMN will have a relatively small interconnection list (e.g., a relatively small number of intermediate mesh nodes connected to / within range of the particular mesh node).
[0024] Thus, many WMNs do not include or specify memory management techniques that can be used to reduce the memory overhead or memory storage footprint used by mesh nodes to maintain their respective connection list information. Furthermore, WMNs using static or semi-static deployments typically utilize relatively robust and / or full-featured devices as mesh nodes, and the memory overhead associated with storing mesh connectivity information (e.g., encryption keys for all other nodes to which a particular mesh node is connected, and / or other mesh connectivity information stored in low-memory on-chip RAM configured to store keys such as per-link unicast and broadcast keys) may be relatively low.
[0025] For Internet of Things (IoT) devices and / or other low-power wide-area network (LPWAN) technologies, assumptions made by existing technologies and standards for implementing wireless mesh networks (e.g., negligible hardware memory limitations, low mesh node mobility) often no longer apply. For example, the fundamental communication requirements for many IoT applications, devices, and deployments often include low device complexity and high device mobility. This can better support city-scale IoT applications and / or large-scale interconnections among thousands of individual IoT devices. Implementing a WMN with multiple low-complexity and / or high-mobility devices configured as mesh nodes can quickly reach the device's hardware memory limitations. This is because high mobility forces devices to frequently "check in" with and store connectivity information for new configurations of other mesh node devices, while the low-complexity (e.g., low memory) nature of the devices accelerates the rate at which on-device memory reaches its maximum capacity. Examples of low-complexity, high-mobility wireless devices include IOT devices, LPWAN devices, and / or Wi-Fi HaLow devices (e.g., devices that operate according to the IEEE 802.11ah standard above 900 MHz or other S1G license-exempt bands and provide extended-range, low-power Wi-Fi networks).
[0026] What is needed are systems and techniques that can be used to provide adaptive mesh network configurations that mesh nodes of a WMN can use to adaptively accept (or reject) peering requests from other mesh nodes, for example, based on analyzing or determining the signal quality of received signals carrying the peering requests. By adaptively accepting only peering requests with the strongest connection strength, the memory footprint for maintaining mesh connection / interconnection information at individual mesh nodes can be reduced. What is also needed are systems and techniques that can be used to provide adaptive mesh network configurations that mesh nodes of a WMN can use to adaptively terminate established peerings with other mesh nodes, for example, based on the associated signal quality falling below a set threshold. By adaptively terminating peerings with low connection strength, the memory footprint for maintaining mesh connection / interconnection information at individual mesh nodes can also be reduced.
[0027] Systems, methods, apparatus, and computer-readable media (collectively "systems and techniques") are disclosed that provide novel and effective methods for adaptive mesh network configuration. For example, in some embodiments, an adaptive mesh peering method for a first mesh node in a mesh network includes receiving a signal from a second mesh node, determining a signal quality of the received signal, and adaptively accepting a peering request from the second mesh node according to the signal quality of the received signal. In some embodiments, the first mesh node can also adaptively terminate an established peering with the second mesh node according to the signal quality of the received signal. One embodiment of the signal quality of the received signal is a received signal strength indicator (RSSI) of the received signal. For example, the first mesh node terminates an established peering with the second mesh node if the RSSI of a third mesh node of the received signal is better than the RSSI of the second mesh node by a set (e.g., predetermined) RSSI margin.
[0028] Another embodiment of the signal quality of the received signal is a packet error rate (PER), and the adaptive mesh peering method may further include calculating the PER of the established link. The PER is calculated based on the number of packets lost among the number of packets transmitted. For example, the first mesh node terminates the established peering with the second mesh node if the PER of the link exceeds a predetermined PER threshold. In one embodiment, the adaptive mesh peering method considers both the RSSI and PER of the link to establish or terminate the peering. For example, the first mesh node terminates the established peering with the second mesh node if the PER of the link exceeds a predetermined PER threshold and the RSSI is below a predetermined RSSI threshold. In some embodiments, if the signal quality of the received signal falls below an expected quality level, the first mesh node blacklists the second mesh node for a timeout period. In some aspects, the first mesh node can be configured to terminate the established peering if the signal quality of the signal received from the second mesh node remains below an expected quality level after the timeout. In one illustrative example, the blacklist timeout may begin after peering ends.
[0029] According to one aspect of the present invention, there is provided a first mesh node including a radio frequency (RF) receiver and a RF transmitter, a processor communicatively coupled to the RF receiver and the RF transmitter, and one or more memory banks communicatively coupled to the processor for storing processor-readable code, wherein the first mesh node is configured to receive a signal from a second mesh node by the RF receiver, determine a signal quality of the received signal, and accept a peering request from the second mesh node or terminate an established peering with the second mesh node according to the signal quality of the received signal.
[0030] Another aspect of the present invention corresponds to an adaptive root mesh configuration method for a first mesh node in a mesh network. Some embodiments of the adaptive root mesh configuration method include: periodically generating and broadcasting route advertisement frames to announce the presence of the first mesh node; receiving path responses (e.g., path responses sent in response to path request frames that can be used to generate and / or update the mesh node's path table) from mesh peers in the mesh network; updating a state of the mesh network in response to the path responses; and configuring the first mesh node as a normal mesh node or maintaining it as a root mesh node in response to the updated state of the mesh network. If the first mesh node is to be maintained as a root mesh node in the mesh network, the first mesh node continues to periodically generate and broadcast route advertisement frames; or, if configured as a normal mesh node, the first mesh node stops generating or broadcasting route advertisement frames.
[0031] In some embodiments, the state of the mesh network includes the number of peer mesh nodes directly connected to the first mesh node, the number of root mesh nodes directly connected to the first mesh node, or both the number of peer mesh nodes and the root mesh nodes directly connected to the first mesh node. For example, a first mesh node is configured as a normal mesh node if the number of peer mesh nodes directly connected to the first mesh node is below a threshold and the number of root mesh nodes directly connected to the first mesh node is at least one. In another example, a first mesh node is configured as a normal mesh node if the number of root mesh nodes directly connected to the first mesh node is at least one. In one example, a first mesh node is maintained as a root mesh node if the number of peer mesh nodes directly connected to the first mesh node is above a threshold and the number of root mesh nodes directly connected to the first mesh node is zero.
[0032]
[0009] One aspect of the present invention provides a first mesh node in a mesh network, including an RF receiver, an RF transmitter, a processor, and one or more memory banks communicatively coupled to the processor for storing processor-readable code. The first mesh node is configured to periodically generate and broadcast route advertisement frames by the RF transmitter to announce the presence of the first mesh node, receive path responses transmitted by mesh peers in the mesh network by the RF receiver, update a state of the mesh network according to the path responses, and configure the first mesh node as a normal mesh node or maintain it as a root mesh node according to the updated state of the mesh network. If the first mesh node is maintained as the root mesh node, the first mesh node continues to periodically generate and broadcast route advertisement frames, or if configured as a normal mesh node, the first mesh node stops generating or broadcasting route advertisement frames. Exemplary Embodiments
[0033] FIG. 1 is a block diagram illustrating an exemplary wireless communication network 100. In some aspects, the wireless communication network 100 may be an example of a wireless local area network (WLAN). As used herein, a WLAN may be a Wi-Fi network. In some examples, the WLAN 100 may be a network implementing at least one of the IEEE 802.11 family of wireless communication protocol standards (e.g., such as, but not limited to, those defined by the IEEE 802.11-2020 specification or amendments thereof, including 802.11ah, 802.11ay, 802.11ax, 802.11az, 802.11ba, and 802.11be). The WLAN 100 may include at least one AP 102 and multiple associated STAs 104. For example, the STAs 104 may include a first STA 104a, a second STA 104b, a third STA 104c, a fourth STA 104d, etc. Although only one AP 102 is shown, the WLAN network 100 may include multiple APs 102 .
[0034] Each of the STAs 104a-104d may also be referred to as a mobile station (MS), mobile device, mobile handset, wireless handset, access terminal (AT), user equipment (UE), participant station (SS), and / or participant unit. The STAs 104 may represent a variety of devices, such as a mobile phone, a handheld device, a netbook, a computer, a tablet computer, a laptop, a display device (e.g., a TV, a computer monitor, a navigation system, etc.), a music or other audio or stereo device, a remote control device ("remote"), a printer, a kitchen or other household appliance, a key fob (e.g., a passive keyless entry and start (PKES) system), etc.
[0035] A single AP 102 and the set of associated STAs 104a-104d may be referred to as a basic service set (BSS) managed by each AP 102. Figure 1 further shows an example of a coverage area 106 of an AP 102, which may represent a basic service area (BSA) of the WLAN 100. A BSS may be identified to users by a service set identifier (SSID) and to other devices by a basic service set identifier (BSSID), which may be the medium access control (MAC) address of the AP 102.
[0036] The AP 102 periodically broadcasts a beacon frame (“beacon”) including the BSSID to allow any STAs (e.g., one or more, or all, of the STAs 104a-104d) within radio range of the AP 102 to associate or reassociate with the AP 102 and establish corresponding communication links 108a-108d (e.g., also referred to hereinafter as “Wi-Fi links”). For example, a first STA 104a can establish a corresponding communication link 108a with the AP 102, a second STA 104b can establish a corresponding communication link 108b with the AP 102, a third STA 104c can establish a corresponding communication link 108c with the AP 102, and a fourth STA 104d can establish a corresponding communication link 108d with the AP 102. The STAs 104a-104d can further use the beacon frames broadcast by the AP 102 to maintain their corresponding communication links 108a-108d with the AP 102. For example, the beacon may include an identification of the primary channel used by the corresponding AP 102, as well as timing synchronization functionality for establishing or maintaining timing synchronization with the AP 102. The AP 102 may provide various STAs within the WLAN with access to external networks via the corresponding communication link 108.
[0037] To establish a communication link 108a-108d with the AP 102, each corresponding STA 104a-104d may perform passive or active scanning operations (“scans”) on frequency channels within one or more frequency bands. For example, to perform passive scanning, each of the STAs 104a-104d listens for beacons transmitted by the AP 102 at periodic time intervals called target beacon transmit times (TBTTs). The TBTTs may be measured in time units (TUs). In some examples, one TU may equal 1024 microseconds (μs). In some examples, the TBTTs may have a default value of 102.4 milliseconds (ms). To perform active scanning, each of the STAs 104a-104d may generate a probe request on each channel to be scanned and listen for a probe response from the AP 102. Each of the STAs 104a-104d may be configured to identify or select an AP 102 to associate with (e.g., based on scan information obtained via passive or active scanning) and perform authentication and association operations to establish a corresponding communication link 108a-108d with the selected AP 102. The AP 102 assigns each of the STAs 104a-104d an association identifier (AID) at the end of the association operation, which the AP 102 uses to track the STAs 104a-104d.
[0038] In some cases, one or more of the STAs 104a-104d may have the opportunity to select one of many BSSs within range of the STA or to select from multiple APs 102 that form an extended service set (ESS) that includes multiple connected BSSs. Extended network stations associated with the WLAN 100 may be connected to a wired or wireless distribution system that allows multiple APs 102 to be connected within an ESS. In some examples, one or more of the STAs 104a-104d may be covered by multiple APs 102 and may associate with different APs 102 at different times for transmission. After associating with an AP 102, one or more of the STAs 104a-104d may be configured to periodically scan the surroundings to find a more suitable AP with which to associate. For example, a given one of the STAs 104a-104d moving away from its associated AP 102 may perform a “roaming” scan to find another AP with more desirable network characteristics (e.g., a greater received signal strength indicator (RSSI), reduced traffic load, etc.).
[0039] In some cases, the STAs 104a-104d may form a network without any other equipment other than the AP 102 or the STAs 104a-104d themselves. One example of such a network is an ad hoc network. Examples of ad hoc networks include mesh networks and peer-to-peer (P2P) networks. In some cases, an ad hoc network may be implemented within a larger wireless network. In such an implementation, the STAs 104a-104d may communicate with each other through the AP 102 using corresponding communication links 108a-108d, but the STAs 104a-104d may also communicate directly with each other using a direct wireless link 110. In some examples, two STAs may communicate via the direct communication link 110 regardless of whether both STAs 104 are associated with and served by the same AP 102. In such an ad hoc system, one or more of the STAs 104a-104d may assume the role filled by the AP 102 in a BSS. Such a STA may be called a group owner (GO) and may coordinate transmissions within the ad hoc network. Examples of direct wireless links 110 include one or more of a Wi-Fi Direct connection, a connection established by using a Wi-Fi Tunneled Direct Link Setup (TDLS) link, other P2P group connections, etc.
[0040] The AP 102 and the STAs 104a-104d can function and communicate according to at least one of the IEEE 802.11 wireless communication protocol standards using the corresponding communication links 108a-108d. These standards define WLAN radio and baseband protocols at the physical layer (PHY) and medium access control (MAC) layers. For example, the AP 102 and the STAs 104a-104d transmit and receive wireless communications with each other in the form of PHY Protocol Data Units (PPDUs) or Physical Layer Convergence Protocols (PLCPs). The AP 102 and the STAs 104a-104d in the WLAN 100 can transmit PPDUs over licensed or unlicensed spectrum, which can be a portion of the spectrum including frequency bands traditionally used by Wi-Fi technology, such as the 2.4 GHz band, the 5 GHz band, the 60 GHz band, the 3.6 GHz band, and sub-1 GHz bands. Some implementations of the AP 102 and the STAs 104a-104d described herein can also communicate over other frequency bands, such as the 6 GHz band, which can support both licensed and unlicensed communications. The AP 102 and the STAs 104a-104d may also be configured to communicate over other frequency bands, such as shared licensed frequency bands, in which multiple operators may have licenses to operate within the same or overlapping frequency bands.
[0041] Each frequency band can contain multiple sub-bands or frequency channels. For example, PPDUs conforming to the IEEE 802.11 standard and specifications can be transmitted over a frequency band divided into multiple 20 MHz channels. In such an example, the PPDUs are transmitted over physical channels with a minimum bandwidth of 20 MHz, although other channel bandwidths are possible. In some cases, larger bandwidth channels can be formed using channel bonding, combining multiple channels of the minimum bandwidth.
[0042] Each PPDU is a composite structure that includes a PHY preamble and a payload in the form of a PHY service data unit (PSDU). Information provided in the preamble can be used by a receiving device to decode the subsequent data in the PSDU. If the PPDU is transmitted over a bonded channel, the preamble field may be duplicated and transmitted on each of multiple component channels. The PHY preamble can include both a legacy portion (or "legacy preamble") and a non-legacy portion (or "non-legacy preamble"). The legacy preamble can be used for packet detection, automatic gain control, channel estimation, etc. The legacy preamble may be used to maintain compatibility with legacy devices. The preamble format, coding, and information provided in the non-legacy portion are based on the specific IEEE 802.11 protocol used to transmit the payload.
[0043] 2A is a high-level block diagram of an exemplary wireless communication device 200 that may be used to implement a STA or an AP in some examples. The wireless communication device 200 may include a MAC layer and a PHY layer that conforms to one or more of the IEEE 802.11 standards.
[0044] The wireless communication device 200 includes a radio frequency (RF) transmitter module 202, an RF receiver module 204, an antenna unit 206, one or more memory banks 208, an input / output interface 210, and a communication bus 212. The RF transmitter module 202 and the RF receiver module 204 include modems (modulator-demodulators) that transmit data by modulating one or more carrier signals to encode digital information and receive data by demodulating the signals to recover the original digital information. As shown, the wireless communication device 200 further includes a MAC processor 214, a PHY processor 216, and a HOST processor 218. These processors can be any type of integrated circuit (IC), including a general-purpose processing unit, an application-specific integrated circuit (ASIC), or a reduced instruction set computer-5 (RISC-V)-based IC, etc.
[0045] The memory 208 may be used to store software and / or computer-readable instructions, including software or instructions that may be used to implement at least some of the functionality of the MAC layer. For example, each processor included in the wireless communication device 200 (e.g., the MAC processor 214, the PHY processor 216, the HOST processor 218, etc.) executes respective software to implement the functionality of its respective communication / application layer.
[0046] The PHY processor 216 includes a transmit signal processing unit and a receive signal processing unit (not shown) and can be used to manage the interface with the wireless medium (WM). The PHY processor 216 operates on the PPDU by exchanging digital samples with a radio module that includes the RF transmitter 202, the RF receiver 204, an analog-to-digital converter, and a digital filter.
[0047] The MAC processor 214 executes MAC-level instructions and manages the interface between application software and the WM via the PHY processor 216. The MAC processor 214 is responsible for coordinating access to the WM so that access points (APs) and STAs within range can communicate effectively. The MAC processor 214 adds header and tail bytes to units of data provided by higher levels and sends them to the PHY layer for transmission. The reverse occurs when receiving data from the PHY layer. If a frame is received in error, the MAC processor 214 manages retransmission of the frame.
[0048] The HOST processor 218 is responsible for interfacing with the MAC layer and performing the higher level functions of the wireless communication device.
[0049] The PHY processor 216, the MAC processor 214, the HOST processor 218, the peripheral bus 220, the memory 208, and the input / output interface 210 communicate with each other via the peripheral bus 212. The peripheral bus 220 connects to multiple peripherals that support core functions of the wireless communication device 200, including timers, interrupts, radio / filter / system registers, counters, UARTs, GPIO interfaces, and the like. The memory 208 can further store an operating system and applications. In some examples, the memory stores recorded information about captured frames and packets. The input / output interface unit 210 enables information exchange with a user of the wireless communication device. The antenna unit 206 can include a single antenna and / or multiple antennas. For example, multiple antennas can be used to implement multiple-input multiple-output (MIMO) technology, among other things.
[0050] 2B shows a schematic block diagram of a receiver data flow architecture 250 that can be used to receive Wi-Fi packets over a network. In one illustrative example, the receiver data flow architecture 250 shown in FIG. 2B can correspond to or relate to the wireless communication device 200 shown in FIG. 2A. A wireless signal is received via a WM and converted to an electrical signal via a receive antenna 252 (e.g., which may be the same as or similar to the antenna 206). The received signal is conditioned using a series of analog filters 254 (e.g., shown as analog RF receive (Rx) filters) before being converted to an equivalent digital signal using an analog-to-digital converter (ADC) 256. The sampled signal output of the ADC 256 is again conditioned using a filter bank 258, which can include one or more digital RF filters and / or farrows, before the samples are collected in an asynchronous receive first-in-first-out (FIFO) data structure 260.
[0051] The samples in the FIFO structure 260 are accessible by multiple modules. For example, the samples can be accessed by a packet detection module and a sub-band module, both of which may be included in the lower-level PHY section 262 shown in Figure 2B. In some embodiments, the lower-level PHY section 262 is itself included in the PHY processor 216 shown in Figure 2A.
[0052] The packet detection module included in the lower-level PHY section 262 may include hardware and / or implemented algorithms that can be used to analyze the initial section of the PPDU in the time domain. Based on the analysis, the packet detection module may be used to recognize the received frame and synchronize the frequency and timing of the wireless communication device with the packet being received. The sub-band module included in the lower-level PHY section 262 may include hardware and / or implemented algorithms that can be used to detect which sub-channel within an assigned frequency band is being used for the packet being received.
[0053] Once a packet is detected and the associated subchannel is established, the samples can be forwarded to an upper-level PHY unit 264. The upper-level PHY unit 264 can be included in the PHY processor 216 shown in FIG. 2A. In some aspects, the upper-level PHY unit 264 can be used (e.g., with the support of a co-processor module) to process and decode Orthogonal Division Multiplexing (OFDM) symbols and reconstruct the complete PPDU. The reconstructed PPDU is output by the upper-level PHY unit 264 and then processed by the MAC layer processor 266. The MAC layer processor 266 can be used to extract the data payload from the PPDU and provide relevant information to the HOST layer 268 for consumption.
[0054] In some examples, the MAC layer processor 266 shown in Figure 2B may be the same as or similar to the MAC processor 214 shown in Figure 2A. In some cases, the HOST layer 268 shown in Figure 2B can include or may be the same as or similar to the HOST processor 218 shown in Figure 2A.
[0055] FIG. 2C is a schematic block diagram of a transmitter data flow architecture 280 that can be used to transmit RF signals over a wireless medium, according to some examples. More specifically, FIG. 2C illustrates a simplified schematic block diagram of the transmitter data flow architecture 280 used to transmit wireless signals over a WM. Data can be generated from a HOST or APP module 282 and packaged into MAC-level protocol data units (MPDUs) that are routed over the wireless network by a MAC management module 284. A PHY module 286 interfaces with the WM and adds a PHY preamble and tail to the MPDU to compile a PPDU. Typically, a modulation coding scheme (MCS) for transmitting packets over the medium is established using a rate control algorithm by the MAC module 284 or PHY module 286. The selected modulation scheme can define the modulation technique and coding rate used to transmit data over the WM. Based on the selected modulation scheme (e.g., quadrature amplitude modulation (QAM) 64), the PPDU is modulated for transmission over the WM. The encoder module 288 generates signals corresponding to points of a QAM constellation symbol (a group of bits in a PPDU) that can be encoded using polar coordinates (r-θ) or rectangular coordinates (QI). The modulation is performed by linking the encoder module 288 to a digital phase-locked loop (DPLL) 290. The modulated signal is filtered by an analog filter 292 and transmitted using a transmit antenna 294.
[0056] As previously mentioned, a wireless mesh network (WMN) may be provided as a communications network including a plurality of mesh nodes organized according to a mesh topology that corresponds to the interconnections between the various mesh nodes. For example, each mesh node of a plurality of mesh nodes included in a WMN is connected to at least one additional mesh node of the WMN, and more generally, each mesh node is connected to multiple additional mesh nodes of the WMN (e.g., each mesh node is typically connected to a subset of the multiple mesh nodes of the WMN).
[0057] Mesh nodes communicate with each other using wireless routing, where data packets are sent through intermediate mesh nodes. The optimal path for data transmission can be dynamically found by mesh routing algorithms, such as the Hybrid Wireless Mesh Protocol (HWMP) used in IEEE 802.11s. By utilizing different combinations of interconnection links between mesh nodes that make up the WMN / mesh topology, new paths between source / destination pairs can be automatically formed when any mesh node goes down. Mesh peering management and path discovery processes are two key elements that help form a mesh network and enable the discovery of peer mesh nodes. When mesh peering management and path discovery are handled properly, better results can be achieved in terms of network performance and reliability.
[0058] The four HWMP frames involved in the path discovery process (e.g., in mesh networks implemented using or based on IEEE 802.11s, or mesh networks that perform path discovery using the HWMP mesh routing algorithm) are Path Request, Path Reply, Path Error, and Route Announcement. To optimize a mesh network for best performance, two aspects must be considered: first, peer link quality, and second, root node designation.
[0059] For example, peer link quality represents the quality of the link (based on or represented using one or more measurements or other link quantification measurements) between peer mesh nodes (e.g., a first and a second mesh node directly connected to each other via a peer link). In some aspects, peer link quality can be described based on the received signal strength index (RSSI) of the peer link between the two mesh nodes. Each node associated with the peer link can measure its respective RSSI (e.g., a first peer mesh node can measure the RSSI of a signal received over the peer link from a second peer mesh node, and / or a second peer mesh node can measure the RSSI of a signal received over the peer link from the first peer mesh node). The peer link quality of each peer link between peer mesh nodes in a WMN or mesh topology can affect the performance of the entire mesh network and, therefore, can be an important aspect for optimizing the performance of the entire mesh network.
[0060] For example, when a first peer mesh node moves away from a second peer mesh node with which peering has already (e.g., previously) been established, the peer link quality between the first and second peer mesh nodes may degrade, potentially reducing the overall mesh network performance. In particular, as peer mesh nodes move away from each other, peer link quality may degrade because the movement away reduces the peer link RSSI. As the distance between peer mesh nodes increases, for example, due to retransmissions caused by increased distance or a lower link RSSI, peer mesh nodes with weaker signal strength (e.g., lower or degraded RSSI) may occupy the wireless medium for longer periods of time. Because Wi-Fi and / or other mesh networks typically do not support simultaneous transmissions, longer communication times between peer mesh nodes with lower RSSI peer links may impact (e.g., reduce) the availability of the medium to other peer mesh nodes. Deteriorating wireless medium availability due to longer communication times between low peer link quality / low RSSI peer links may have a cumulative effect that ultimately impacts the overall network throughput. Therefore, there is a need for systems and techniques that can be used to better handle the configuration and management of peer mesh nodes (and the peer links between them) to improve the performance of a mesh basic service set (MBSS).
[0061] Generally, root nodes are designed to reduce path detection frames. A mesh gate node (which can be the root node of a mesh network / mesh topology) is the top-level node in a mesh network and can provide connectivity to one or more non-mesh networks (to the entire mesh network and to multiple other mesh nodes within it) using various connection and communication means. For example, a mesh gate can provide wired connectivity to one or more non-mesh networks via a switch and wireless connectivity to one or more non-mesh networks or other wireless infrastructure networks via an AP interface, etc. Thus, a mesh gate node can be configured as a gateway between individual mesh nodes of a mesh network and one or more non-mesh networks, based on the fact that all mesh nodes are organized as child or leaf nodes of the top-level mesh gate node (e.g., in the mesh topology of a mesh network). For example, all other mesh nodes in a mesh network can connect to a wired / wireless network via one or more wireless hops to the mesh gate node.
[0062] In the event that a root node is unavailable in a mesh network (e.g., if a previously configured / available mesh root node goes offline, becomes unavailable, or becomes unreachable), all mesh nodes are configured to search and discover / discover other peers using broadcast action frames. In such a scenario, broadcast action frames from multiple mesh nodes in the mesh network may generate a large amount of traffic, overloading or saturating the wireless medium (e.g., traffic corresponding to broadcast action frames may occupy the wireless medium more frequently or at a greater range than data packets). The root node in a mesh network is typically selected based on manual configuration (e.g., when the mesh network is set up or manually reconfigured or tuned). Traditionally, in mesh network deployments, root node configuration is static, and the root node selection does not change unless or until a manually selected root node goes down (in which case a new root node is selected). However, in instances where at least some mesh nodes (e.g., of a plurality of mesh nodes in a mesh network) are mobile in nature, dynamic root node configuration may be desirable because the high mobility of these mesh nodes and associated mobility events may cause constant or frequent changes in the network dynamics. [Adaptive Mesh Peering]
[0063] As explained above, mesh networks are constantly victimized by bad mesh peers, which can be considered mesh nodes reached via peer links with relatively weak signal strength (e.g., poor mesh link quality, low RSSI, etc.), since transmissions to and from these bad mesh peers can occupy a significant portion of airtime on the wireless medium. Identifying and terminating these bad mesh peers (e.g., terminating the corresponding poor quality / low RSSI peer links to the bad mesh peers) is a solution that effectively solves this problem, but current mesh network implementations do not address this issue. This is particularly important for sub-gigahertz (S1G) mesh networks, whose bandwidth can be significantly limited compared to other mesh networks operating in higher frequency bands with wider bandwidths. In some examples, S1G mesh network embodiments can implement a mesh topology on an IEEE 802.11ah-based network.
[0064] IEEE 802.11ah, also known as Wi-Fi HaLow, is a wireless networking protocol that uses sub-gigahertz (S1G) radios to provide low-power, long-range wireless communications. Wi-Fi HaLow devices operate in the license-exempt ISM (Industrial, Scientific, and Medical) frequency band below 1 gigahertz (GHz). A Wi-Fi HaLow access point (AP) can provide connectivity to thousands of stations (STAs) within a network coverage radius of approximately 1 km. Wi-Fi HaLow supports a variety of bandwidths, including 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz. These bandwidths are approximately one order of magnitude narrower (e.g., 10 times narrower) than the bandwidths used in the IEEE 802.11ac (Wi-Fi 5) standard. Furthermore, the symbol duration of IEEE 802.11ah Wi-Fi HaLow, operating at a 2 MHz bandwidth, can be up to 10 times longer than the equivalent IEEE 802.11ac Wi-Fi 5 symbol duration. As a result, Wi-Fi HaLow networks have significantly less bandwidth and significantly longer symbol durations within that bandwidth compared to Wi-Fi 5 and other recent Wi-Fi networks, resulting in a more limited overall airtime and a much longer airtime for individual data transmissions in a HaLow network compared to a Wi-Fi 5 network.
[0065] In some embodiments of the adaptive mesh peering systems and techniques described herein, there are two times during peering and network operation when a mesh node can be filtered from the mesh network (e.g., two time instances or opportunities when a mesh node can be terminated or removed from peering). As described in more detail below, a received signal strength indicator (RSSI) and / or a packet error rate (PER) associated with a peer link / mesh peer node are two exemplary factors that can be considered during the decision-making of whether to accept a mesh peering request and / or whether to terminate an already established peering. In some aspects, the RSSI and / or PER of a peer link associated with a particular mesh node can correspond to or be used to determine the corresponding peer link quality.
[0066] The PER may be calculated based on the number of packets lost out of the number of packets transmitted (e.g., the percentage of lost or erroneous packets out of all packets transmitted by the peer mesh node over the peer link for which the PER is being determined). In one embodiment, a configured (e.g., predetermined) threshold may be used to terminate an already established peering (e.g., an existing peer link between a first peer mesh node and a second peer mesh node) based on a determination that the PER of the link to this mesh node is not sufficient. For example, a peer link from a first mesh node to a second mesh node may be terminated during network operation based on a determination that the PER of the peer link from the first mesh node to the second mesh node is greater than a configured PER threshold (e.g., based on an increase in the PER corresponding to a degradation in peer link quality).
[0067] Similarly, a configured or predetermined threshold may be used to terminate an already established peering based on a determination that the RSSI of a peer link between a first mesh node and a second mesh node has fallen below a configured threshold (e.g., below a configured minimum RSSI value for maintaining the peer link) (based on a decrease in RSSI corresponding to a decrease in peer link quality). In some aspects, separate thresholds may be used for PER and RSSI. In some examples, a peer link may be terminated during network operation based on either a measured PER exceeding a configured PER threshold or a measured RSSI falling below a configured RSSI threshold. In some examples, a peer link may be terminated during network operation based on the occurrence of both a measured PER greater than a configured PER threshold and a measured RSSI less than a configured RSSI threshold.
[0068] In some embodiments, the measured RSSI (and corresponding configured RSSI threshold) between mesh nodes can be used to determine whether to accept (or reject) a peering request from a new mesh node. One or more of the measured RSSI and the measured PER between mesh nodes, or both, can be used in decisions related to terminating an established peering when a mesh node reaches its capacity with a maximum number of peer links (e.g., RSSI may be measured both before and after establishing peering, while PER is measured only after establishing peering). For example, a first mesh node may determine that it should accept a peering request from a second mesh node based on the measured RSSI associated with the peering request (or other transmission received on the link from the second mesh node to the first mesh node) being greater than or equal to a configured RSSI threshold.
[0069] When a mesh node terminates an existing peer link (e.g., an established peering) based on reaching its capacity with a maximum number of peer links, the mesh node may be configured to identify or select an existing peer link with the worst or lowest peer link quality for termination (e.g., based on one or more of the measured RSSI and / or PER of the existing peer link, or both).
[0070] In some aspects, a mesh node may be configured to verify that at least one other peer link has been established to the peer node (the peering being disconnected or rejected) before terminating an existing link to or rejecting a peering request from another mesh node, thereby ensuring that the disconnection or rejection of a peering request from the other mesh node does not cause the other mesh node to be completely disconnected from the mesh BSS (MBSS).
[0071] For example, in some embodiments, a mesh node may be configured to accept peering requests that would normally be rejected (e.g., requests above a PER threshold and / or requests below an RSSI threshold) if the requesting peer node has no other peer links. Similarly, in some embodiments, a mesh node may be configured to maintain (e.g., not terminate or disconnect) an existing peering with a peer node whose peer link would be terminated / disconnected if the peer node has no other peer links. By considering both the RSSI and PER parameters of a link to a mesh network and dynamically deciding whether to accept or terminate a mesh link based on the respective RSSI and / or PER measurements, link quality of peer links in a mesh network / mesh topology can be maintained, thereby improving overall mesh network performance by preventing retransmissions over poor quality links.
[0072] 3 illustrates an example of a mobile mesh node (e.g., a mesh STA) moving away from a first mesh network associated with a first mesh basic service set (MBSS) toward a second mesh network associated with a second MBSS, according to some examples. For example, in the example of FIG. 3, the first mesh network is associated with a first MBSS-1 (e.g., MBSS-1 310) and the second mesh network is associated with a second MBSS-2 (e.g., MBSS-2 360).
[0073] A mobile mesh node moving away from MBSS-1 310 towards MBSS-2 360 is denoted as mesh STA-2 (e.g., mesh STA 334-1 when in a first location within MBSS-1 310, and mesh STA 334-2 when in a second location moving away from MBSS-1 310 towards MBSS-2 360). The first mesh network associated with MBSS-1 310 may include a mesh gate 320, a first mesh STA-1 332, a second mesh STA-2 (334-1 when in MBSS-1 310, 334-2 after moving away from MBSS-1 310), and a third mesh STA-3 336. 3, the mesh network of MBSS-1 310 is fully connected, with a respective mesh link between each possible combination of pairs formed from four participating mesh nodes, including mesh gate 320, first STA-1 332, second STA-2 334-2, and third STA-3 336. A second mesh network associated with MBSS-2 360 may include mesh gate 370, first mesh STA-4 382, and second mesh STA-5 384, and may also have full connectivity between pairs formed between these three mesh nodes.
[0074] 3 illustrates an exemplary scenario in which a mobile mesh node (e.g., mesh STA-2) moves away from the remaining mesh nodes in mesh network MBSS-1 310, thereby weakening its links with the remaining mesh nodes. In this scenario, mesh nodes Mesh Gate 320, Mesh STA1 332, and Mesh STA3 336 may terminate their respective connections (e.g., their respective peer links) with mobile mesh node Mesh STA2 based on the RSSI or PER (or both) of their respective links to Mesh STA2 in accordance with embodiments of the adaptive mesh peering method disclosed herein. For example, each of the remaining mesh nodes may check Mesh STA2's peer link count, and if the peer link count is equal to 1, the remaining mesh nodes may not terminate their respective links to Mesh STA2, even if the links are bad.
[0075] In some aspects, when mesh STA2 is located at a first location 334-1 within MBSS-1 310, each of three applicable peer links to mesh STA2 334-1 is determined based on the RSSI of each peer link to mesh STA2 334-1 being equal to or greater than a configured RSSI threshold (e.g., the RSSI of the peer link from mesh STA1 332 to mesh STA2 334-1, the RSSI of the peer link from mesh STA3 336, and the RSSI of the peer link from mesh gate 320 to mesh STA2 334-1 may each be equal to or greater than a configured RSSI threshold), and / or based on the PER of each peer link to mesh STA2 334-1 being equal to or less than a configured PER threshold (e.g., the PER of the peer link from mesh STA1 332 to mesh STA2 334-1, the PER of the peer link from mesh STA3 336 to mesh STA2 334-1, and the PER of the peer link from mesh gate 320 to mesh STA2 334-1 may each be equal to or greater than a configured RSSI threshold). 334-1) may be maintained within the first MBSS-1 310. The PER of the peer link to the first MBSS-1 334-1 may be less than or equal to a respective configured PER threshold.
[0076] After moving from the first location 334-1 to the second location 334-2, each remaining mesh node in MBSS-1 310 may determine that the quality of its corresponding peer link to mesh STA2 at the second location 334-2 does not meet or exceed a minimum required peer link quality corresponding to an RSSI threshold and / or a PER threshold configured to implement the adaptive mesh peering techniques described herein. Based on this determination, each remaining mesh node of MBSS-1 310 (e.g., mesh STA1 332, mesh STA3 336, and / or mesh gate 320) may terminate its respective peer link to mesh STA2 334-2.
[0077] In some aspects, the remaining mesh nodes of MBSS-1 310 may blacklist the mobile mesh node Mesh STA2 for a timeout period / time of a few seconds, after which peering may be re-established when the mobile mesh node Mesh STA2 returns within the coverage range of the mesh network MBSS-1 310 (e.g., when Mesh STA2 returns from a location 334-2 outside MBSS-1 to a location 334-1 within MBSS-1).
[0078] For example, if mesh STA2 returns to mesh network MBSS-1 310 after a timeout period (triggered when mesh STA2 previously moved from MBSS-1 to location 334-2 and the remaining mesh nodes of MBSS-1 first terminated their respective peer links to mesh STA2), mesh STA2 may re-establish peering with the mesh nodes in mesh network MBSS-1 310 and become part of this mesh network again.
[0079] If the mobile mesh node Mesh STA2 moves further away from MBSS-1 310 and / or closer to another mesh network MBSS-2 360, the mobile mesh node Mesh STA2 may join MBSS-2 360, in which case the mobile mesh node Mesh STA2 may improve its wireless link quality with the mesh nodes in MBSS-2 360 (e.g., based on Mesh STA2 sending peering request(s) to the mesh nodes in MBSS-2 360 rather than to the mesh nodes in MBSS-1 310).
[0080] In some embodiments, the RSSI associated with the requesting peer node may be considered during peering with a new mesh node (and, as noted above, one or both of the RSSI and PER of a mesh node link may be considered for decisions regarding terminating an existing peer link with another mesh node). In still other embodiments, only the RSSI or only the PER is considered during peering to terminate an existing link and accept a new peer. For example, a peering request from a new mesh node is accepted only if the RSSI of the signal received from the new mesh node is higher than a predetermined threshold. In one embodiment, both the RSSI and PER are considered when determining whether to terminate an already established peering mesh node; in other embodiments, only the RSSI is considered during termination; and in still other embodiments, only the PER is considered during termination.
[0081] 4 is a signaling diagram 400 illustrating an example of signaling associated with a mesh peering process between a first mesh node (e.g., mesh node-1) 402 and a second mesh node (e.g., mesh node-2) 408, according to some examples. In some aspects, the first mesh node 402 may be the same as or similar to the second mesh node 408, or vice versa. In some examples, the first mesh node 402 and / or the second mesh node 408 may be the same as or similar to one or more of the mesh nodes of FIG. 3. For example, the first mesh node 402 and / or the second mesh node 408 may be the same as or similar to one or more of mesh STA1 332, mesh STA2 334-1 / 334-2, mesh STA3 336, mesh gate 320, mesh gate 370, mesh STA4 382, and / or mesh STA5 384 of FIG. 3.
[0082] In one illustrative example, the mesh peering signaling process 400 of FIG. 4 may include a scanning and discovery phase 410 , an authentication phase 440 , a mesh peering phase 470 , and a mesh peering termination phase 490 .
[0083] In the scanning and discovery phase 410, mesh node-1 402 joins the mesh network by sending broadcast probe requests 412, scanning and discovering peer mesh nodes 414, and broadcasting mesh beacons 416. In particular, mesh node-1 402 may perform scanning and discovery 414 for peer mesh nodes based on receiving response information from peer mesh nodes in response to the broadcast probe request 412 sent by mesh node-1 402 in block 412. Based on the broadcast probe responses received from the discovered peer mesh nodes, mesh node-1 402 may start a new mesh network in block 416. A mesh network can be started with one or more mesh nodes. For example, mesh node-1 402 may start a new mesh network including only mesh node-1 402 and / or may start a new mesh network including at least mesh node-1 402, etc. In some examples, mesh node-1 may initiate a new mesh network to include at least mesh node-1 and the discovered peer mesh nodes from block 414. Mesh node-1 402 initiating the new mesh network at block 416 may include mesh node-1 402 beginning to transmit mesh beacons corresponding to the newly initiated mesh network.
[0084] Mesh node-2 408 also sends a broadcast probe request at block 418, which is the same or similar process as mesh node-1 402 sending the broadcast probe request at block 412. Mesh node-2 408 may send the broadcast probe request at block 418 based on the initiation of a process to scan and discover mesh peer nodes 422. This process may be the same or similar to the process performed by mesh node-1 402 to scan and discover mesh peer nodes 414 and described above.
[0085] The broadcast probe request from mesh node-2 408 may be received by mesh node-1 402 based on mesh node-1 402 being a nearby / peer node of mesh node-2 408. In response to receiving the broadcast probe request sent from mesh node-2 408 (e.g., at block 418), mesh node-1 402 sends a probe response including details of the mesh network to mesh node-2 408 at block 424. At block 426, mesh node-2 408 determines that a peer node has been discovered based on receiving the probe response 424 from the peer node mesh node-1 402.
[0086] In the authentication phase 440 of the mesh peering signaling 400, mesh node-2 408 sends an authentication management frame (e.g., an AUTH_Mgmt(Commit) frame) to mesh node-1 402 in block 442. Mesh node-1 402 sends an authentication management frame (e.g., an AUTH_Mgmt(Commit)) to mesh node-2 408 in block 444. Mesh node-2 408 sends an AUTH_Mgmt(Confirm) and mesh node-1 402 receives the AUTH_Mgmt(Confirm) from mesh node-2 408 in block 446. Mesh node-1 402 sends an AUTH_Mgmt(Confirm) and mesh node-2 408 receives the AUTH_Mgmt(Confirm) from mesh node-1 402 in block 448.
[0087] In the mesh peering phase 470 of the mesh peering signaling 400, mesh node-2 408 sends a mesh peering management frame to mesh node-1 402 to confirm mesh peering. For example, in block 472, mesh node-2 408 sends a Mesh_Peering_Mgmt(PEER_Open) frame to mesh node-1 402. In block 478, mesh node-1 402 sends a Mesh_Peering_Mgmt(PEER_Confirm) frame to mesh node-2 408.
[0088] Similarly, at block 474, mesh node-1 402 sends a Mesh_Peering_Mgmt(PEER_Open) frame to mesh node-2 408. At block 476, mesh node-2 408 sends a Mesh_Peering_Mgmt(PEER_Confirm) frame to mesh node-1 402.
[0089] Mesh node-2 408 successfully joins the mesh network after receiving a mesh peering management frame (PEER_Confirm) from mesh node-1 402. For example, mesh node-2 408 successfully joins the mesh network after receiving a mesh peering management frame (PEER_Confirm) from mesh node-1 402 in block 478.
[0090] In the mesh peering termination phase 490, mesh peering between previously peered mesh nodes may be terminated (e.g., peering between nodes that previously successfully completed the mesh peering phase 470 may be terminated). For example, if mesh node-2 408 wants to terminate mesh peering with mesh node-1 402, mesh node-2 408 may send a mesh peering management frame (PEER_Close) to mesh node-1 402 (e.g., at block 492). Mesh node-1 402 may terminate or close the peer link with mesh node-2 408 based on receiving the PEER_Close mesh peering management frame in block 492. In block 494, mesh node-1 402 may send a response to mesh node-2 408 indicating that the peer link between mesh node-1 402 and mesh node-2 408 has been closed. For example, in block 494, mesh node-1 402 may send a mesh peering management frame (PEER_Close) indicating that the peer link between mesh node-1 402 and mesh node-2 408 has been successfully terminated or closed.
[0091] 5 is a signaling diagram 500 illustrating an example process for adaptive mesh peering in a mesh STA when a new peer is discovered after capacity has been reached on the maximum number of peer links. For example, this process may be performed by mesh STA1 502 when a new peer mesh STA3 506 is discovered and an existing mesh peer mesh STA2 504 is identified for termination based on a peer link of weak signal strength to mesh STA1 502. In some aspects, mesh STA1 502, mesh STA2 504, and / or mesh STA3 506 may be identical or similar to each other and / or to one or more of mesh STA1 332, mesh STA2 334-1 / 334-2, mesh STA3 336, mesh gate 320, mesh gate 370, mesh STA4 382, and / or mesh STA5 384 of FIG. 3. In some aspects, mesh STA1 502, mesh STA2 504, and / or mesh STA3 506 may be the same as or similar to one or more of mesh STA1 402 and / or mesh STA2 408 of FIG.
[0092] In the example of FIG. 5, mesh STA1 502 may include a supplicant 512, a mac80211 component 514, and an upper MAC driver 516.
[0093] In a first step of the adaptive mesh peering process 500, the upper MAC driver 516 of mesh STA1 502 may receive a beacon or probe response from mesh STA3 506. In some aspects, the upper MAC driver 516 of mesh STA1 502 may be used to determine whether the new mesh peer mesh STA3 506 has good (e.g., strong) signal strength for the peer link to mesh STA1 502. Based on a determination that mesh STA3 506 does not have an existing peering with mesh STA1 502 (e.g., mesh STA3 506 is a new mesh STA peer of mesh STA1 502) and that mesh STA3 506 has a sufficiently good or strong signal strength to be added as a new peer of mesh STA1 502, in step 2, mesh STA1 502 may use the upper MAC driver 516 to check (e.g., determine) whether new peer mesh STA3 506 is allowed as a new peer by kicking (e.g., terminating) existing peers of mesh STA1 502 that have a lower signal strength than the new peer mesh STA3 506.
[0094] For example, the upper MAC driver 516 of mesh STA1 502 may be configured to check whether any of mesh STA1 502's existing peer links have corresponding signal strengths that are lower than the signal strength (e.g., RSSI) measured or determined for the new peer link to new peer mesh STA3 506.
[0095] Based on mesh STA1 502 identifying or determining an existing peer with a lower signal strength than new mesh STA3 506 (e.g., mesh STA2 504 may be identified by mesh STA1 502 as an existing peer with a lower signal strength than the signal strength determined for new peer mesh STA3 506), mesh STA1 502 may be configured to transmit a vendor event including the address of the identified existing peer with the lowest signal strength. In one illustrative example, the upper MAC driver 516 may transmit a vendor event to the supplicant 512 of mesh STA1 502 including the address of the identified existing peer with low signal strength (e.g., mesh STA2 504).
[0096] When the supplicant 512 of mesh STA1 502 receives a vendor event from the upper MAC driver 516, the supplicant 512 closes (e.g., terminates) the peer link that matches the address identified in the vendor event. In some aspects, the supplicant 512 can close the peer link of the identified low signal strength peer by sending a peering close frame (e.g., a peering close request frame) to the peer node having the address identified in the vendor event. For example, the supplicant 512 of mesh STA1 502 can send a peering close request frame to mesh STA2 504 to indicate that the peer link between mesh STA1 502 and mesh STA2 504 is being closed (e.g., terminated) by mesh STA1 502.
[0097] Terminating the peer link with mesh STA2 504 creates capacity for mesh STA1 502 to establish a peer link with a new mesh STA3 506 (e.g., recall that process 500 shown in FIG. 5 corresponds to a scenario in which mesh STA1 502 has the maximum number of peer links allowed before detecting a new, stronger signal strength peer mesh STA3 506).
[0098] In some aspects, after the supplicant 512 transmits a peering close request frame to terminate the peer link between the mesh STA1 502 and the mesh STA2 504, the mesh STA1 502 and the mesh STA3 506 can establish a peer link by exchanging peering frames. For example, the supplicant 512 can perform the process of establishing a new peer link from the mesh STA1 502 to the mesh STA3 506 and exchanging peering frames. The supplicant 512 is a user-space daemon for maintaining a wireless connection. In some aspects, the supplicant 512 can be configured to establish a peer link and exchange peering frames with the new mesh STA3 506 based on the upper MAC driver 516 passing a beacon of the new peer mesh STA3 506 to the Mac80211 component 514, which then provides the supplicant 512 with NL80211_CMD_NEW_PEER_CANDIDATE information. Peering exchange frames between the supplicant 512 of mesh STA1 502 and the new mesh STA3 506 may include a peering open request frame (from the supplicant 512 to the mesh STA3 506), a peering confirm frame (from the mesh STA3 506 to the supplicant 512), a peering open frame (from the supplicant 512 to the mesh STA3 506), and a peering confirm frame (from the mesh STA3 506 to the supplicant 512). In the case of a mesh STA, mesh peering management and Wi-Fi Protected Access (WPA) key handshakes may be handled (e.g., performed) by the supplicant 512 of the mesh STA (e.g., mesh STA1 502).
[0099] The adaptive mesh peering system and techniques described herein provide a novel approach for handling weak peer links in mesh networks. The adaptive mesh peering technique is particularly useful when the number of peer links a mesh peer can support is limited due to on-chip memory stacking. This is very common in Internet of Things (IoT) devices due to cost and size reasons, which limits the memory available on the chip. As a result, mesh node or mesh STA devices are limited in the number of encryption keys they can store on the target chip (e.g., they can maintain a limited number of mesh peer links and store them in the limited memory available on the chip). For example, in a mesh network, every mesh STA maintains a unique PTK (unicast) and GTK (broadcast / multicast) pair for each link. Storing the above key pair on each peer link is not always possible, especially in congested networks where a given mesh STA recognizes many additional nearby mesh STAs that can be configured as peers. Adaptive mesh peering solves this problem by replacing peers with weaker links with peers with stronger links when the mesh node reaches the maximum number of peer links it can support.
[0100] In some aspects, a mesh node (e.g., mesh STA1 502) becomes aware of a new peer (e.g., mesh STA3 506) by receiving a beacon, probe response, or peering open frame, and then examines all peer links (e.g., comparing the signal strength of the new peer to the corresponding signal strength measured or determined for each of the mesh node's existing peers) to see if the signal strength of the new peer (e.g., mesh STA3 506) is better than any of the existing peer links.
[0101] The mesh node (Mesh STA1 502) checks the mesh ID of the new peer (Mesh STA3 506) to ensure that the new peer (Mesh STA3 506) is trying to join the same MBSS, verifies whether the mesh configuration IE is present, and ensures that the new peer (Mesh STA3 506) is not already part of the mesh network. The mesh node (Mesh STA1 502) looks at all existing peers, checks the number of peer links each existing peer has, and compares their signal strengths. By checking the number of peer links to which each existing peer is connected, the mesh node (Mesh STA1 502) prevents existing peers from being completely disconnected from the mesh network. This is because some mesh nodes may be far away from all other mesh nodes in the MBSS and may only be aware of one mesh node. For example, if an existing peer has no other peers other than mesh nodes, that existing peer will not be terminated and will not be considered a termination candidate (e.g., if mesh STA2 504 has no other peers other than mesh STA1 502, then mesh STA1 502 will not identify mesh STA2 504 as a candidate for deletion / termination, since doing so would remove mesh STA2 502 from the mesh network. Instead, mesh STA1 502 may use the next lowest candidate with another peer link as an existing peer to be terminated to create capacity for adding a new peer, mesh STA3 506. Alternatively, if mesh STA1 502 has no existing peers with both other connections to mesh peer nodes and lower signal strength than mesh STA3 506, then mesh STA1 502 may reject a peering request from mesh STA3 506).
[0102] The mesh node (Mesh STA1 502) may be configured to perform a signal strength (e.g., RSSI) check to verify that the new peer (Mesh STA3 506) has a better signal strength than the existing peer (Mesh STA2) that has been identified as a termination candidate. In some cases, the signal strength check may be based on determining that the signal strength / RSSI of the new peer (Mesh STA3 506) is greater than the signal strength / RSSI of the existing peer (Mesh STA2 504) by at least a configured RSSI margin (e.g., the difference between the RSSI of Mesh STA3 506 and the RTSSI of Mesh STA2 504 is equal to or greater than the configured RSSI margin amount). In one illustrative example, the configured RSSI margin for the signal strength check may be a default or configured value, among various other illustrative values that may be utilized without departing from the scope of this disclosure. In some cases, the signal strength check can be based on determining that the signal strength / RSSI of the new peer (Mesh STA3 506) is greater than the signal strength / RSSI of the existing peer (Mesh STA2 504) by any amount (e.g., the only requirement being that the RSSI margin be positive and greater than zero, etc.).
[0103] A signal strength check comparing the RSSI of a new peer (mesh STA3 506) added by closing or terminating a connection with an existing peer (mesh STA2 504) can be implemented to avoid the ping-pong effect commonly encountered in Wi-Fi roaming. When a mesh node (mesh STA1 502) discovers a weak peer, for example, if the signal strength of the weak peer (mesh STA2 504) is lower than that of the new peer link, the mesh node (mesh STA1 502) can be configured to save the address and corresponding timestamp of the weak peer being kicked out. The upper MAC (UMAC) driver 516 sends a vendor event to the supplicant 512 indicating the address of the identified weak peer mesh STA2 504. The UMAC driver 516 can further be configured to check incoming frames from the kicked-out peer (mesh STA2 504) after notifying the supplicant 512 of the peer. This is to prevent the kicked-out peer (mesh STA2 504) from immediately establishing a peer link (e.g., the kicked peer is blacklisted or prevented from establishing a peer link for at least a configured time period, which may be a finite or specified time period (e.g., a configured timeout or blacklist period), or may be an indefinite or unspecified time period). In some examples, the kicked peer is prevented from establishing a peer link for a configured time period corresponding to the blacklist period or timeout. The mesh node may allow the kicked peer to connect or peer after the timeout period has elapsed or expired.
[0104] The supplicant 512 checks whether the peer address exists as an entry stored in the station (STA) list maintained by the supplicant 512 and, after receiving a mesh peer event from the UMAC driver 516, closes the existing link by sending a peering close request frame to the identified existing peer mesh STA2 504. The Linux stack advertises mesh capabilities to accept additional peering in the beacon, and when the peer link is closed, the mac80211 514 enables the acceptance of additional peering bits in the mesh configuration IE of the beacon. Mac80211 is a framework that driver developers can use to create drivers for SoftMAC radio devices. SoftMAC devices allow for more control over the hardware, enabling 802.11 frame management, such as parsing and generating radio frames, in software. A mesh node (mesh STA1 502) establishes a peer link with a new peer (mesh STA3 506) after the existing weak peer link (with mesh STA2 504) is closed.
[0105] Adaptive mesh peering improves network performance because weak peer links occupy most of the airtime at low data rates and affect other peer links. It is important for mesh STAs to always maintain strong links with good RSSI to avoid impacting data performance. In embodiments of the adaptive mesh peering algorithm, only one peer can be kicked out at a time, and the mesh STA initiates adaptive mesh peering after the blacklist time expires. In some other embodiments, the adaptive mesh peering algorithm also handles situations where multiple peers are available with better signal strength than some of the existing peer links. The adaptive mesh peering algorithm replaces multiple existing peers with new peers depending on the quality of the peer links. In some embodiments, the mesh STA activates the adaptive mesh peering algorithm to monitor the mesh peer links only when the maximum number of peer links is reached, and kicks out one or more weak peer links if a new peer with a better peer link is present. In other embodiments, the mesh STA continuously monitors existing mesh peer links and kicks out existing peers with weaker peer links. [Adaptive Root Mesh Node Management]
[0106] Path discovery frames generated by mesh peers to discover other peers can consume most of the airtime in a dense mesh network. To reduce airtime on the wireless medium and / or the number of path discovery frames, a mesh network can be configured with one or more root mesh STAs. For example, as described above, a root mesh STA can be selected (e.g., selected, configured, etc.) for a mesh network and then used to broadcast route advertisement frames to the remaining non-root mesh STAs included in the same mesh network. For example, a root mesh STA is often selected as a mesh gate / mesh portal for a mesh network, but any mesh STA participating in a mesh network can serve as a root mesh STA for the network (e.g., a mesh STA that is not a mesh gate or portal can also serve as a root mesh STA).
[0107] The route advertisement frame broadcast by the selected root mesh STA is sometimes called a route advertisement message (RANN). For example, the RANN element can be transmitted in a Hybrid Wireless Mesh Protocol (HWMP) that is part of an IEEE 802.11s path selection frame. The RANN element (or other route advertisement frame broadcast by the root mesh STA) can indicate information such as the root mesh STA address (e.g., MAC address), an indication of whether the root mesh STA is a mesh gateway, an interval indicating how often the mesh root STA broadcasts the RANN message, and a hop count field that can be modified by the STA forwarding the RANN so that each STA can determine its distance to the root mesh STA.
[0108] Generally, route advertisement frames (e.g., RANN) are periodically generated by a root mesh STA and used to notify other peer nodes in the mesh network of the existence of the root mesh STA. Other non-root peers in the mesh network learn the mesh path (e.g., to the root mesh STA) based on path replies transmitted by other mesh peers. The configuration and selection of the root mesh node is typically static, and the identity of the root node is not expected to change. Thus, RANN and / or other messages indicating the identity, location, and / or path of the configured root node are typically not updated after initial configuration. However, problems can arise when mesh peers move from time to time. This mobility of mesh peers, combined with the static configuration of the root mesh STA, can result in peers being unable to discover the route (or, more specifically, the path to the mesh root STA) and / or peers being unable to discover each other within the mesh network. In some aspects, the systems and techniques described herein can be used to address this challenge based on systems and techniques used to provide a dynamic approach for discovering a suitable mesh peer to designate (e.g., configure, select, utilize, etc.) as a root mesh STA. The dynamic identification and designation / configuration of root mesh STAs may be performed periodically at set intervals or at dynamic periodic intervals. For example, the dynamic identification and designation of root mesh STAs for a mesh network may be performed on an ad hoc basis in response to changing dynamic(s) of the mesh network, as described in more detail below.
[0109] In one illustrative example, a new approach for dynamically selecting and configuring a dynamic root mesh node for a mesh network is described to improve the overall performance of the mesh network. Some examples of root mesh node management techniques can assign a root mesh node to a mesh network and / or remove an existing root mesh node based on one or more conditions of the mesh network. In some embodiments, these conditions for assigning and / or removing a root mesh node can include, but are not limited to, the number of peer mesh nodes directly connected to a candidate root mesh node and the number of root mesh nodes directly connected to this candidate root mesh node.
[0110] For example, the conditions may include the number of mesh nodes that a candidate root mesh node can reach, where a candidate root mesh node that can reach more mesh nodes in the network is preferred over another candidate root mesh node that can reach fewer mesh nodes in the network. The number of mesh nodes that can be reached from a candidate root mesh node may be determined based on path table information of the candidate root mesh node. The path table information is maintained and updated by the candidate root mesh node according to path responses sent by other mesh nodes in the network and received by the candidate root mesh node.
[0111] In some embodiments, a non-root mesh node may be assigned to a root mesh node based on a determination that the non-root mesh node is handling too many forwarded packets. For example, the adaptive root mesh node management technique may determine to assign a non-root mesh node to a root mesh node based on the number of communication packets, the total communication time, or both the number of communication packets and the total communication time measured for the non-root mesh node over a measurement window or other predetermined time interval.
[0112] In some examples, a mesh STA can be configured as a root mesh node only if it has multiple peers associated with it and does not have direct access (e.g., no single-hop link) to an existing root mesh node in the mesh network. Direct access is defined as a one-hop distance. This allows the mesh network to be managed more dynamically to address peer mobility issues. When two root mesh nodes are directly connected with a one-hop distance, root mesh node management techniques can be used and / or configured to stop sending route advertisements from root mesh nodes that have no connected peers other than other root mesh nodes. This reduces the number of route advertisement (RANN / GANN) broadcast frames in the mesh network.
[0113] FIG. 6 illustrates an example of adaptive root mesh node management for an MBSS 610 including multiple root mesh nodes (e.g., also referred to as root mesh STAs), according to some examples. In some aspects, the MBSS 610 may be the same as or similar to one or more of MBS-1 310 of FIG. 3, MBSS-2 360 of FIG. 3, etc. The MBSS 610 shown in FIG. 6 may include multiple mesh STAs (e.g., root mesh STA1 605, root mesh STA2 634, non-root mesh STA2 642, non-root mesh STA3 643, non-root mesh STA4 644, non-root mesh STA5 645, non-root mesh STA6 636-1, etc.). The mesh STAs included in the MBSS 610 and / or corresponding mesh network may be of various different types. Furthermore, the mesh STAs included in the MBSS 610 may be configured with different roles. For example, one or more of the mesh STAs of the MBSS 610 may be configured as mesh root nodes, and / or one or more of the mesh STAs of the MBSS 610 may be configured as mesh portal nodes.
[0114] For example, mesh STA1 605 is shown configured as both a root mesh node and a mesh portal node in Figure 6. In its role as a mesh portal node, mesh STA1 605 can provide connectivity between MBSS 610 and one or more additional networks. For example, mesh STA1 605 acting as a mesh portal node can connect MBSS 610 (and all mesh STAs included in MBSS 610) to an Internet gateway 660 to provide Internet connectivity from the Internet gateway 660 to all other mesh nodes in MBSS 610.
[0115] A mesh network or MBSS can have one root mesh node or multiple root mesh nodes. For example, MBSS 610 includes a first root mesh STA1 605 and further includes a second root mesh STA2 634. In this example, as described above, first root mesh STA1 605 is additionally configured as a mesh portal, but second root mesh STA2 634 is not configured as a mesh portal.
[0116] 6 illustrates an exemplary scenario in which peering mesh node mesh STA6 has moved out of the coverage range of MBSS 610, such that its designation of root mesh STA2 634 is no longer a valid root mesh node. For example, peering mesh node mesh STA6 may move from a first location 636-1 (within the coverage range of MBSS 610) to a second location 636-2 (which may be completely outside the coverage range of MBSS 610 or closer to the edge / end of the coverage range of MBSS 610 compared to the first location 636-1). When in the first location 636-1, mesh STA6 was a peering mesh node with a peer link to the second root mesh STA2 634. When in the second location 636-2, mesh STA6 may cease to be a peering mesh node with the second root mesh STA2 634 based on the peer link quality no longer meeting a minimum link quality threshold (e.g., based on RSSI, PER, or both RSSI and PER, etc.), for example, as described above with respect to Figures 3-5.
[0117] In MBSS 610, the root mesh node root mesh STA1 and mesh portal 605 is also the mesh portal that provides connectivity to the Internet gateway 660 for all other mesh nodes in MBSS 610. Because all other mesh nodes in MBSS 610 have a path to the root mesh STA1 and mesh portal 605, all other mesh nodes in MBSS 610 have a path to connect to the Internet via the Internet gateway 660. Mesh nodes can have a direct or indirect path to the root mesh STA1 and mesh portal 605. For example, root mesh STA2 634, the first non-root mesh STA1 641, the second non-root mesh STA2 642, the third non-root mesh STA3 643, the fourth non-root mesh STA4 644, and the fifth non-root mesh STA5 645 all have a direct, one-hop path to the root mesh STA1 and mesh portal 605.
[0118] When in a first location 636-1 (e.g., within MBSS 610), the sixth non-root mesh STA6 does not have a direct one-hop path to the root mesh STA1 and mesh portal 605. Instead, the sixth non-root mesh STA6 connects to a second root mesh STA2 634, which is designated as the mesh STA6's root mesh node and peer mesh node. Thus, mesh STA6 can connect to the mesh network through the second root mesh node provided by root mesh STA2 634. Mesh node mesh STA6 accesses MBSS 610 through root mesh node root mesh STA2 634 and learns paths to all mesh peers within MBSS 610 from route advertisements (e.g., RANN / GANN) sent by root mesh STA2 and corresponding responses sent by other peers.
[0119] When mesh STA6 leaves MBSS 610 (e.g., mesh STA6 moves from a first location 636-1 to a second location 636-2), the route advertisements (e.g., RANN / GANN) of root mesh STA2 634 become redundant because none of the remaining mesh nodes in MBSS 610 are solely connected to root mesh STA2 634. For example, mesh STA6 at location 636-1 was the only mesh STA with root mesh STA2 634 as its only single-hop peering root node. Each remaining mesh STA in MBSS 610 has at least root mesh STA1 and mesh portal 605 as single-hop peering root nodes.
[0120] Therefore, if mesh STA6 leaves MBSS 610 or moves from MBSS 610 to a second location 636-2, the configuration of root mesh STA2 634 as the second root node of MBSS 610 becomes redundant. All remaining mesh nodes in MBSS 610 can receive route advertisements directly from root mesh STA1 and mesh portal 605. For example, even though a first non-root mesh STA1 641 is connected to both root mesh STA2 634 and root mesh STA1 and mesh portal 605 via a single-hop peering link, it is redundant and unnecessary for the first non-root mesh STA1 641 to receive route advertisements from both root mesh STA2 634 and root mesh STA1 and mesh portal 605. However, existing mesh network implementations with static root node configuration and management do not support dynamic / automatic updates and / or reconfigurations of the role of the root mesh node within a mesh network / MBSS. Therefore, in existing mesh network implementations with static root node configuration and management, root mesh STA2 634 remains in the configuration as the root node, and continues to periodically broadcast route advertisements RANN / GANN, even though root mesh STA2 634 is no longer the only single-hop root node peer to any of the remaining non-root mesh nodes in MBSS 610 after mesh STA6 leaves.
[0121] The systems and techniques described herein can improve the efficiency of mesh root node management and configuration by removing a root node from its role as a root when a change in network topology or network dynamics causes the existing root node to no longer provide at least one non-root mesh STA with the only single-hop / direct connection to the mesh root node. For example, in the example of FIG. 6, the first non-root mesh STA1 641 can receive route advertisements only from the root mesh STA1 and mesh portal 605 without adversely affecting its operation or its ability to reach the root node, the mesh portal 605, and / or the Internet gateway 660. Thus, the systems and techniques can use mesh STA6's departure from MBSS 610 as a triggering condition to remove root mesh STA2 634 from its role or configuration as a root node for MBSS 610, and then reconfigure root mesh STA2 634 to begin operating as a normal (e.g., non-root) mesh node after mesh STA6 leaves MBSS 610 and moves to a second location 636-2.
[0122] In an embodiment of the adaptive root mesh node management method, an existing root mesh node (e.g., root mesh STA2) is changed from a root mesh node configuration to a normal (e.g., non-root) mesh node configuration when all non-root mesh nodes directly connected to the existing root mesh node (e.g., root mesh STA1 and mesh portal 605) are also directly connected to other root mesh nodes (e.g., root mesh STA1 and mesh portal 605). This change avoids additional periodic route advertisement RANN / GANN frames from the existing root mesh node (e.g., root mesh STA2 634), thereby reducing overall network traffic and / or airtime on the wireless medium used by MBSS 610.
[0123] As described and discussed herein, each of the mesh nodes in various embodiments manages the medium access control (MAC) layer and the physical (PHY) layer in accordance with the Wi-Fi (IEEE 802.11) standard. For example, a mesh node may be a mobile device, a personal computer, a laptop computer, an Internet of Things (IoT) device, a wearable device, an augmented reality device, a video server, or a communication device on a vehicle. The mesh node includes a radio frequency (RF) transmitter, an RF receiver, an antenna, one or more memory banks, an input / output interface, and a communication bus. The RF transmitter transmits data by modulating one or more carrier signals to encode digital information, and the RF receiver receives the data by demodulating the signals to reconstruct the original digital information. The mesh node includes a MAC processor, a PHY processor, and a HOST processor. These processors can be any type of integrated circuit (IC), including a general-purpose processing unit (GPU), an application-specific integrated circuit (ASIC), or a reduced instruction set computing V (RISC-V)-based IC. The memory stores software including the MAC layer functions. Each processor executes software to implement its respective communications / application layer functions. In particular, the PHY processor includes a transmit signal processing unit and a receive signal processing unit and manages the interface with the wireless medium. The PHY processor operates on physical layer protocol data units (PPDUs) by exchanging digital samples with the radio module, which includes an RF transmitter, a digital-to-analog converter (DAC), an RF receiver, an analog-to-digital converter (ADC), and a digital filter. The MAC processor executes MAC-level instructions and manages the interface between the application software and the wireless medium through the PHY processor. The MAC processor is responsible for coordinating access to the wireless medium so that mesh nodes within range can communicate effectively. The MAC processor adds header and tail bytes to units of data provided by higher levels and sends them to the PHY layer for transmission.The reverse happens when receiving data from the PHY layer. If a radio frame is received in error, the MAC processor manages the retransmission of the radio frame. The HOST processor is responsible for interfacing with the MAC layer and performing high-level functions.
[0124] 7 is a flow diagram of an example process 700 for adaptive root mesh configuration of a first mesh node in a mesh network. For example, process 700 may be performed for a first mesh node in a mesh network that is the same as or similar to the mesh network associated with MBSS 610 of FIG. 6. In some examples, the first mesh node may be the same as or similar to root mesh STA2 634 of FIG. 6 and / or root mesh STA1 and mesh portal 605 of FIG. 6. In some aspects, the mesh network may be the same as or similar to one or more mesh networks associated with MBSS1 310 and / or MBSS2 360 of FIG. 3, etc.
[0125] At block 702, the process 700 includes broadcasting, by the first mesh node, a route advertisement frame at a set time interval, the route advertisement frame being used to advertise the presence of the first mesh node as a root mesh node of the mesh network based on the configuration of the first mesh node with the role of root mesh node of the mesh network. At block 704, the process 700 includes receiving, by the first mesh node, a plurality of path reply messages from one or more mesh peers in the mesh network, each path reply message of the plurality of path reply messages responding to a corresponding path request message. At block 706, the process 700 includes determining updated state information of the mesh network based on the plurality of path reply messages. At block 708, the process 700 includes configuring the first mesh node with the role of a non-root mesh node or configuring the first mesh node to maintain the role of a root mesh node, the configuration of the first mesh node with the role of a non-root mesh node or root mesh node being determined based on the updated state information of the mesh network.
[0126] 8 shows a computing device architecture 800 of a computing device capable of implementing one or more of the techniques described herein. In some examples, the computing device may include a mobile device, a wearable device, an augmented reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a vehicle (or a computing device in a vehicle), or other device. The components of the computing device architecture 800 are shown in electrical communication with each other using connections 805, such as a bus. The computing device architecture 800 includes a processing unit 810 and computing device connections 805 that couple various computing device components, including computing device memory 815, such as read-only memory (ROM) 820 and random access memory (RAM) 825, to the processor 810.
[0127] The computing device architecture 800 may include a cache of high-speed memory directly connected to the processor 810, close to the processor 810, or integrated as part of the processor 810. The computing device architecture 800 may copy data from the memory 815 and / or the storage device 830 to the cache 812 for quick access by the processor 810. In this manner, the cache may provide a performance boost that avoids delays in the processor 810 while waiting for data. These and other engines may control or be configured to control the processor 810 to perform various operations. Other computing device memories 815 may also be used. The memory 815 may include multiple different types of memory with different performance characteristics. The processor 810 may include any general-purpose processor, hardware or software services (e.g., service 1 832, service 2 834, and service 3 836) stored in the storage device 830 configured to control the processor 810, and dedicated processors in which software instructions are built into the processor design. The processor 810 may be a self-contained system including multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0128] To enable user interaction with computing device architecture 800, input device(s) 845 may represent any number of input mechanisms, such as a microphone for audio, a touch-sensitive screen for gesture or graphic input, a keyboard, a mouse, motion input, speech, etc. Output device(s) 835 may be one or more of many output mechanisms known to those skilled in the art, such as a display, projector, television, or speaker device. In some cases, a multimodal computing device may allow a user to provide multiple types of input to communicate with computing device architecture 800. Communications interface 840 generally may control and manage user input and computing device output. Because there are no limitations to operation with a specific hardware configuration, the basic functionality herein may be easily replaced with improved hardware or firmware configurations as they are developed.
[0129] The storage device 830 is non-volatile memory and may be a hard disk or other type of computer-readable medium capable of storing data accessible by a computer, such as a magnetic cassette, a flash memory card, a solid-state memory device, a digital versatile disk, a cartridge, RAM, ROM, and hybrids thereof. The storage device 830 may include services 832, 834, 836 for controlling the processor 810. Other hardware or software modules or engines are also contemplated. The storage device 830 may be connected to the computing device connections 805. In one aspect, a hardware module that performs a specific function may include software or processor-readable code stored on a computer-readable medium in association with hardware components necessary to perform that function, such as the processor 810, the connections 805, and the output devices 835.
[0130] The term "device" is not limited to one or a specific number of physical objects (such as a smartphone, a controller, a processing system, etc.) As used herein, a device may be any electronic device with one or more components capable of implementing at least a portion of the present disclosure.
[0131] Individual aspects may be described as a process or method that is depicted as a flowchart or data flow diagram. While a flowchart may depict operations as a sequential process, many of the operations may be performed in parallel or simultaneously. Additionally, the order of operations may be rearranged. A process terminates when the operations are completed, but may include additional steps not included in the diagram. A process may correspond to a method, a function, a procedure, a subroutine, or a subprogram. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.
[0132] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices, such as a general-purpose computer, a wireless communication device handset, or an integrated circuit device having multiple uses, including applications in wireless communication device handsets and other devices. Any features described as modules or components may be implemented together in an integrated logic device or separately as separate but interoperable logic devices. If implemented in software, the techniques may be realized at least in part by a computer-readable data storage medium comprising program code including instructions that, when executed, perform one or more of the methods described above.
[0133] The program code may be executed by a processor, which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Such a processor may be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices.
Claims
1. 1. A method for adaptive root mesh configuration of a first mesh node in a mesh network, comprising: The method comprises: broadcasting, by the first mesh node, a route advertisement frame at a set time interval, the route advertisement frame being used to advertise the presence of the first mesh node as a root mesh node of the mesh network based on a configuration of the first mesh node with a role of root mesh node of the mesh network; receiving, by the first mesh node, a plurality of path reply messages from one or more mesh peers in the mesh network, each path reply message of the plurality of path reply messages responding to a corresponding path request message; determining updated state information for the mesh network based on the plurality of path response messages; configuring the first mesh node in a non-root mesh node role or configuring the first mesh node to maintain the role of the root mesh node, wherein the configuration of the first mesh node in the role of the non-root mesh node or the root mesh node is determined based on updated state information of the mesh network; A method comprising:
2. Configuring the first mesh node in the role of the non-root mesh node or configuring the first mesh node to maintain the role of the root mesh node includes implementing an adaptive root mesh configuration for the first mesh node. The method of claim 1.
3. the adaptive route mesh configuration is determined based on the updated state information; The adaptive root mesh configuration indicates the role of the non-root mesh node or the role of the root mesh node used by the first mesh node; The method of claim 2.
4. The adaptive root mesh configuration causes the first mesh node to maintain the role of the root mesh node; and wherein the first mesh node is configured to continue generating and broadcasting the route advertisement frame at the set time interval to maintain the role of the root mesh node. The method of claim 2.
5. The adaptive root mesh configuration causes the first mesh node to switch from the role of the root mesh node to the role of the non-root mesh node. The method of claim 2.
6. and to switch from the role of the root mesh node to the role of the non-root mesh node, the first mesh node is configured to stop broadcasting the route advertisement frame. The method of claim 5.
7. the updated mesh network state information indicates a number of peer mesh nodes directly connected to the first mesh node, a number of additional root mesh nodes directly connected to the first mesh node, or both a number of peer mesh nodes directly connected to the first mesh node and a number of additional root mesh nodes directly connected to the first mesh node; The method of claim 1.
8. The first mesh node is configured to switch from the role of the root mesh node to the role of the non-root mesh node based on determining that the number of peer mesh nodes directly connected to the first mesh node is less than a threshold and the number of additional root mesh nodes directly connected to the first mesh node is at least one. The method of claim 7.
9. The first mesh node is configured as a normal mesh node when the number of additional root mesh nodes directly connected to the first mesh node is at least one, and configuring the first mesh node as a normal mesh node corresponds to configuring the first mesh node in the role of a non-root mesh node. The method of claim 7.
10. The first mesh node is configured to maintain the role of the root mesh node based on determining that the number of peer mesh nodes directly connected to the first mesh node is greater than a threshold and that the number of additional root mesh nodes directly connected to the first mesh node is zero. The method of claim 7.
11. If there is a one-hop distance between a peer mesh node and the first mesh node, the peer mesh node is directly connected to the first mesh node; If there is a one-hop distance between the additional root mesh node and the first mesh node, the additional root mesh node is directly connected to the first mesh node; The method of claim 7.
12. determining the updated mesh network state information based on information associated with a packet forwarded by a first mesh node within the mesh network; The method of claim 1.
13. the updated mesh network status information is determined by one or more of a number of communication packets associated with packets forwarded by the first mesh node, or a total communication time associated with packets forwarded by the first mesh node; The method of claim 12.
14. A first mesh node in a mesh network, comprising: The first mesh node: a radio frequency (RF) receiver and an RF transmitter; a processor communicatively coupled to the RF receiver and the RF transmitter; one or more memory banks communicatively coupled to the processor for storing processor-readable instructions; Including, The processor-readable instructions, when executed by the processor, cause the processor to: broadcasting, by the RF transmitter, a route advertisement frame at a set time interval, the route advertisement frame being used to advertise the presence of a first mesh node as a root mesh node of the mesh network based on a configuration of the first mesh node with the role of root mesh node of the mesh network; receiving, by the RF receiver, a plurality of path reply messages from one or more mesh peers in the mesh network, each path reply message of the plurality of path reply messages responding to a corresponding path request message; determining updated state information for the mesh network based on the plurality of path response messages; configuring the first mesh node in a non-root mesh node role or configuring the first mesh node to maintain the role of the root mesh node, wherein the configuration of the first mesh node in the role of the non-root mesh node or the root mesh node is determined based on updated state information of the mesh network; The first mesh node executes
15. Configuring the first mesh node in the role of the non-root mesh node or configuring the first mesh node to maintain the role of the root mesh node includes implementing an adaptive root mesh configuration for the first mesh node. The first mesh node of claim 14.
16. the adaptive route mesh configuration is determined based on the updated state information; The adaptive root mesh configuration indicates the role of the non-root mesh node or the role of the root mesh node used by the first mesh node; The first mesh node of claim 15.
17. The adaptive root mesh configuration causes the first mesh node to maintain the role of the root mesh node; and wherein the first mesh node is configured to continue generating and broadcasting the route advertisement frame at the set time interval to maintain the role of the root mesh node. The first mesh node of claim 15.
18. The adaptive root mesh configuration causes the first mesh node to switch from the role of the root mesh node to the role of the non-root mesh node. The first mesh node of claim 15.
19. and to switch from the role of the root mesh node to the role of the non-root mesh node, the first mesh node is configured to stop broadcasting the route advertisement frame. The first mesh node of claim 18.
20. the updated mesh network state information indicates a number of peer mesh nodes directly connected to the first mesh node, a number of additional root mesh nodes directly connected to the first mesh node, or both a number of peer mesh nodes directly connected to the first mesh node and a number of additional root mesh nodes directly connected to the first mesh node; The first mesh node of claim 14.