Single-pass feed-forward rebroadcast optimization

By optimizing rebroadcasting in wireless mesh networks through autonomous node determination using RAQ and ACT tags, redundant rebroadcasting is minimized, enhancing network efficiency and reliability.

WO2025149304A1PCT designated stage expired Publication Date: 2025-07-17SIGNIFY HOLDING BV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/086514
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-08
Filing Date
2024-12-16
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

In wireless mesh networks, there is a challenge of redundant radio rebroadcasting leading to bandwidth consumption and network sluggishness, which existing systems address by trading off reliability.

Method used

A method where network nodes autonomously determine and enable/disable rebroadcasting based on received signal strength and node identifiers, using a Rebroadcast Activation Query (RAQ) and Rebroadcast Activation (ACT) tags to optimize rebroadcasting in a feed-forward manner, reducing redundant rebroadcasting.

Benefits of technology

This approach minimizes bandwidth consumption while maintaining network connectivity, reducing coexistence issues and freeing up resources for higher throughput activities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024086514_17072025_PF_FP_ABST
    Figure EP2024086514_17072025_PF_FP_ABST
Patent Text Reader

Abstract

A mesh network configuration algorithm is described herein where the mesh network configures itself to minimize rebroadcasting. The disclosed embodiments provide a mechanism by which nodes in a network (e.g., wireless mesh network) may enable / disable rebroadcasting on their own without explicit request from a commissioning agent or network manager. A network node receives a rebroadcast activation query from a plurality of network nodes, selects a network node to activate for rebroadcasting, and sends a message to the activated node.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Single-Pass Feed-Forward rebroadcast optimization

[0002] FIELD OF THE INVENTIONS

[0003] The present disclosure relates generally to the field of wireless computer networks. More specifically, the present disclosure is directed to rebroadcast optimization in wireless mesh networks.

[0004] BACKGROUND OF THE INVENTIONS

[0005] In wireless mesh networking, the wireless space is becoming overcrowded with radio signals. A new node cannot know ahead of time if the space it has entered will need to share radio channels with other networks. For large dense networks, there is a challenge of chatty networks, limiting throughput. An individual node must trade off one feature with another, and / or causing the network to become sluggish, affecting usability.

[0006] SUMMARY OF THE INVENTIONS

[0007] There is a need for systems and techniques for limiting radio rebroadcasting without trading off reliability.

[0008] In some aspects, the techniques described herein relate to a network node including: one or more microprocessors; a network interface electrically connected to the one or more microprocessors, the network interface including a radio; and a memory electrically connected to the one or more microprocessors, the memory including non-transitory machine-readable instructions to: listen for a plurality of signals through the radio, the plurality of signals organized as messages; receive one or more messages with a rebroadcast activation query tag from the radio; select a selected message with the rebroadcast activation query tag from the one or more rebroadcast messages with the activation query tag; identify an identified node that sent the selected message with the rebroadcast activation query tag; broadcast, using the radio, a message with a rebroadcast activation list, where the message with the rebroadcast activation list includes the identified node in the rebroadcast activation list; broadcast, using the radio, the selected message with the rebroadcast activation query tag; listen, using the radio, for a node-specific message with the rebroadcast activation list that specifies the network node as one of the rebroadcast nodes; and if the network node is specified as one of the rebroadcast nodes, listen to the radio for broadcast messages and rebroadcast the broadcast messages received through the radio.

[0009] In some aspects, the techniques described herein relate to a network node further including of non-transitory machine-readable instructions to listen for an adjacent node message with the rebroadcast activation list before sending the message with the rebroadcast activation list to the identified node.

[0010] In some aspects, the techniques described herein relate to a network node further including of non-transitory machine-readable instructions to set the identified node to a specified node found in the adjacent node message with the rebroadcast activation list.

[0011] In some aspects, the techniques described herein relate to a network node where the selected message with the rebroadcast activation query tag is selected based upon a strength of the plurality of signals.

[0012] In some aspects, the techniques described herein relate to a network node where the selected message with the rebroadcast activation query tag is selected based upon a source identifier.

[0013] In some aspects, the techniques described herein relate to a network node further includes an output module electrically connected to the one or more microprocessors.

[0014] In some aspects, the techniques described herein relate to a network node further includes an LED filament electrically connected to the output module.

[0015] In some aspects, the techniques described herein relate to a network node where the messages are formatted according to a Zigbee protocol.

[0016] In some aspects, the techniques described herein relate to a network node where the messages are received from a mesh network of similar network nodes.

[0017] In some aspects, the techniques described herein relate to a method including: listening for a plurality of signals with a microprocessor connected to a radio, the plurality of signals organized as messages, and the microprocessor and radio forming a network node; receiving one or more messages with a rebroadcast activation query tag from the radio; selecting, by the microprocessor, a selected message with the rebroadcast activation query tag from the one or more messages with the rebroadcast activation query tag and identifying an identified node as the identified node that sent the selected message with the rebroadcast activation query tag; broadcasting, by the microprocessor through the radio, a message with a rebroadcast activation list, where the message with the rebroadcast activation list includes the identified node in the rebroadcast activation list; broadcasting, using the radio, the selected message with the rebroadcast activation query tag; listening, using the radio, for a node- specific message with the rebroadcast activation list that specifies the network node as one of the rebroadcast nodes; and if the network node is specified as one of the rebroadcast nodes, listening to the radio for broadcast messages and rebroadcasting the broadcast messages received through the radio.

[0018] In some aspects, the techniques described herein relate to a method further includes listening for an adjacent node message with the rebroadcast activation list before sending the message with the rebroadcast activation list to the identified node.

[0019] In some aspects, the techniques described herein relate to a method further includes setting the identified node to a specified node found in the adjacent node message with the rebroadcast activation list.

[0020] In some aspects, the techniques described herein relate to a method where the selected message with the rebroadcast activation query tag is selected based upon a strength of the plurality of signals.

[0021] In some aspects, the techniques described herein relate to a method further includes receiving a lighting message to energize an LED filament electrically connected to the microprocessor.

[0022] In some aspects, the techniques described herein relate to a network including a plurality of network nodes described above.

[0023] Disclosed systems and techniques may be used in conjunction with various mesh networking or other broadcast-type wireless radio protocols.

[0024] BRIEF DESCRIPTION OF THE DRAWINGS

[0025] FIG. 1 is a block diagram of a network node.

[0026] FIG. 2 is a flow chart of a rebroadcast configuration event for transmission.

[0027] FIG. 3 is a flowchart of a pure feed-forward rebroadcast configuration event for reception.

[0028] FIG. 3A is a flowchart of an any -hop rebroadcast configuration event for reception.

[0029] FIG. 4 is a flowchart of the best N candidates routine.

[0030] FIG. 5 is a chart of rebroadcast messages flowing through the mesh network at t=0.

[0031] FIG. 6 is a chart of rebroadcast messages flowing through the mesh network at t=T. FIG. 7 is a chart of rebroadcast messages flowing through the mesh network at t=2T.

[0032] FIG. 8 is a chart of rebroadcast messages flowing through the mesh network at t=3T.

[0033] FIG. 9 is a chart of messages flowing through the mesh network.

[0034] FIG. 10 is a timing diagram of the message flow through the network.

[0035] DETAIL DESCRIPTIONS OF THE INVENTION

[0036] All illustrations of the drawings are for the purpose of describing selected versions of the present disclosure and are not intended to limit the scope of the claimed inventions.

[0037] In mesh networking generally, a node of a network that receives a broadcast event may repeat / rebroadcast / forward it to another network node. All, some, or none of the router nodes of the network may successively rebroadcast the event from one node to the next, until all nodes have been reached. In some embodiments, the network protocols could be Zigbee or Bluetooth Mesh. For Zigbee, all router nodes participate in rebroadcasting. A router node can suppress rebroadcasting, say, by changing it into an end node. For a Bluetooth Mesh, a relay node can be configured to enable / disable forwarding in controlled flooding. In large and dense networks, the goal is to eliminate redundant rebroadcasting to save on bandwidth consumption.

[0038] According to embodiments of the present disclosure, a method is provided whereby the need for rebroadcasting can be determined and automatically enabled / disabled. The commissioning agents may be knowledgeable enough to determine which subset of nodes are optimal for rebroadcasting and reaching all nodes.

[0039] Reduction in redundant rebroadcasting can effectively shape the bandwidth and reduce coexistence issues. An automatic way of reducing redundant rebroadcasting can allow the operator to be agnostic of which nodes have rebroadcasting enabled during network commissioning, and automatically maintain connection with all network nodes in lieu of shifting network connectivity in the form of received signal strength (RS SI).

[0040] In one embodiment, each node in one “hop” may query nodes in the next hop to determine if it should enable rebroadcasting. Each receiving node collects the queries, and based on a fitness function, determines which of the query senders are a “best fit” to rebroadcast. Thereafter, they will query nodes in the next hop and, in some cases, simultaneously respond on the best-fit nodes of the previous hop. Nodes seeing themselves being named in the response will have their rebroadcasting enabled. The process can repeat, from one to the next in feed-forward fashion, in a single pass, until the entire network is covered. This is referred to herein as a Rebroadcast Configuration Event.

[0041] Once the configuration is complete, all network nodes may be reachable via rebroadcasting of the best-fit nodes. The Rebroadcast Configuration Event may occur periodically to “refresh” the connectivity of the network.

[0042] In the Rebroadcast Configuration Event, the initiating node attaches a Rebroadcast Activation Query (RAQ) tag to the message and then rebroadcasts or forwards it to all receive-capable network nodes within radio range. After the transmission, the network node immediately disables its own rebroadcasting.

[0043] Nodes that receive the message with the RAQ tag may process the message as it would normally and wait a trial period before rebroadcasting the message. The rebroadcasted message, which still contains the RAQ tag, may also have appended a Rebroadcast Activation (ACT) tag. The rebroadcasted message may also include an ACT list of network node identifiers designated to be rebroadcast nodes.

[0044] Within this trial period, for every packet with RAQ received, radio characteristics, such as the received signal strength (RSSI) and node identifier are noted, and a fitness function is computed based on these. In one embodiment, only the RSSI is used for selection, in which case the node to enable rebroadcasting is identified as the strongest one, or within a range of RSSI values. This helps to identify nodes that are not likely to not fall out of radio range in the short term. In another embodiment, the node identifier may also be included to help in the final verdict. This is helpful in the following scenario: If two adjacent nodes at one hop need to evaluate the fitness of two adjacent nodes from the previous hop, and the RSSIs are sufficiently close to one another, then the choice is made by using the node identifier. This will improve the chances that a common node is selected.

[0045] Once the trial period has been completed, the node determines the fittest node from the previous hop from the RAQ tagged messages, includes the ACT tag naming that node, then rebroadcasts the message with the RAQ and said ACT tags. This informs the fittest node of the previous hop that it should turn on rebroadcasting, and, at the same time, signals the next hop to request rebroadcast activation.

[0046] A broadcast message that is transmitted may be uniquely identified by a sequence number. Note that a node that has processed RAQ of a particular sequence number shall not process RAQ again. A node that has sent RAQ may process ACT once if it has a matching sequence number and the node identified in the ACT tag is itself. A broadcast message may be repeated multiple times so that it can be more reliably received due to the air interface packet loss.

[0047] In one embodiment, as an ad hoc requirement, if a node preparing to send ACT overhears an adjacent node within the same hop responding with an ACT, and the node named in that tag is within the list of sources for its own RAQ-tagged messages, then it may be coerced to use the same node identifier of that transmitted ACT tag in its rebroadcast. This act of converging on a common rebroadcaster helps to further reduce the total number of rebroadcasters in the network.

[0048] The process can be repeated hop-to-hop until finally the last hop sends RAQ but receives no ACT tags.

[0049] In the worst case, all nodes but the outer-most nodes have rebroadcasting enabled. This is because nodes furthest out will not be receiving an ACT designation. Thus, if half of the nodes are on the edge of the mesh, then we are looking at a 50% reduction in rebroadcasting. In the best case, all nodes are within radio range of the broadcast initiator, in which case rebroadcasting is disabled altogether.

[0050] This may be universally applied across all platforms and applications, as its intent is simply to be able to reach all network nodes whilst minimizing bandwidth consumption. In doing so, this frees up the bus budget so that other activities of notably higher throughput may be actualized, and creates additional margin in dealing with coexistence issues.

[0051] FIG. 1 shows a block diagram of a representative network node 101 usable to implement embodiments of the present disclosure. For example, network nodes of FIGS. 5-9 may be implemented by the structure in network node 101. Network node 101 can be implemented, for example, as a consumer device such as a smartphone, other mobile phones, tablet computer, a wearable computing device (for example, a smartwatch, eyeglasses, or a head wearable display), desktop computer, laptop computer, an intent-of-things device, a lighting controller, or implemented with distributed computing devices. The network node 101 may include computer components, such as a processor 103, a memory 104, a network interface 102, and a user output device 105.

[0052] Network interface 102 can provide a connection to a mesh network 107 (for example, the Internet, Zigbee, Bluetooth Mesh, or other networks). Network interface 102 can include a wireless interface implementing various RF data communication standards, such as Wi-Fi, Bluetooth, Zigbee, or cellular data network standards (for example, 3G, 4G, 5G, 60 GHz, or LTE). In some embodiments, the network interface 102 is electrically connected to a radio 108. The radio 108 may connect to the mesh network 107.

[0053] User output device 105 can include any device via which the network node 101 can provide information to a user. For example, user output device 105 can include a display to show images generated by or delivered to the network node 101. The display can incorporate various image generation technologies, for example, a liquid crystal display (LCD), a light-emitting diode (LED), such as an organic light-emitting diode (OLED), a projection system, a cathode ray tube (CRT), or the like, together with supporting electronics (for example, digital-to-analog or analog-to-digital converters, or signal processors). A device such as a touch screen that functions as both an input and output device can be used. User output devices 105 can be provided in addition to or instead of a display. Examples include indicator lights, speakers, tactile “display” devices, printers, and so on. For example, user output device 105 could drive a light 106 such as an LCD, LED, incandescent, OLED, laser, or similar lights.

[0054] Some implementations include electronic components, such as microprocessors, storage, and memory that store computer program instructions in a computer-readable storage medium (for example, a non-transitory computer-readable medium).

[0055] Many of the features described in this specification can be implemented as processes that are specified as a set of program instructions encoded on a computer-readable storage medium. When these program instructions are executed by one or more processors, they cause the processors to perform various operations indicated in the program instructions. Examples of program instructions or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter. Through suitable programming, processor 103 can provide various functionality for the network node 101, including any of the functionality described herein as being performed by a server or client, or other functionality associated with message management services.

[0056] It will be appreciated that network node 101 is illustrative and that variations and modifications are possible. Computer systems used in connection with the present disclosure can have other capabilities not specifically described here. Further, while network node 101 is described with reference to particular blocks, it is to be understood that these blocks are defined for convenience of description and are not intended to imply a particular physical arrangement of component parts. For instance, different blocks can be located in the same facility, in the same server rack, or on the same motherboard. Further, the blocks need not correspond to physically distinct components. Blocks can be configured to perform various operations, for example, by programming a processor or providing appropriate control circuitry, and various blocks might or might not be reconfigurable depending on how the initial configuration is obtained. Implementations of the present disclosure can be realized in a variety of apparatus, including electronic devices implemented using any combination of circuitry and software.

[0057] Turning now to FIG. 2, and with continued reference to FIG. 1, an illustrative process may be used for the initial transmission of messages in the rebroadcast configuration event. In some embodiments, this process is executed by the processor 103. In some embodiments, the instructions for this flow chart are stored in the memory 104. The process could be executed by the network interface 102 and stored in memory in the network interface 102.

[0058] The transmission start process 201 starts with a check of the message being transmitted to see if optimization is requested 202. If not, the packet is transmitted 205 through the network interface 102 to the radio 108 and to the mesh network 107.

[0059] If optimization is requested 202, then the initiator network node 101 starts the optimization process by sending the first RAQ message. To send the first message, the reactivation process is initialized 203 by setting the transmit forward flag to FALSE, calling the heard, clear routine, calling the overheard, clear routine, and starting the trial window.

[0060] The RAQ message is setup 204 by loading the sequence number into the message, setting the hop count to 0, and setting the tag field in the message to RAQ.

[0061] The message is then transmitted 205 through the network interface 102 to the radio 108 and to the mesh network 107. The transmit process then ends 206.

[0062] The message could be structured according to the Zigbee protocol, a Bluetooth

[0063] Mesh protocol, or other network protocol. The protocol could run as part of the IEEE

[0064] 802.15.4 network standard. While disclosed embodiments are protocol-independent, one possible message structure is as follows:

[0065] The size and encoding of these fields are protocol-specific. The sequence number may be a unique number for the message broadcast through the network. It is used to uniquely identify the rebroadcast optimization request, which may originate from any node. The RAQ may be a tag (or flag) specifying that the message is a rebroadcast configuration message. The destination identifier may signify that this is a broadcast message or a rebroadcast message. The source identifier may be the network address of the network node 101 that sent the message.

[0066] The hop number may be the number of hops that the message has been rebroadcast. It is the hop count from which the message was transmitted, which may start at 0 and be incremented at each hop. This is used to determine if the network node 101 is hearing a message from a previous hop, or an adjacent hop, or some hop after. Examples of hops are illustrated in FIGS. 5, 6, and 7 and discussed in detail below in conjunction therewith.

[0067] The delay is the random back-off time applied to the packet before it was transmitted. This is subtracted during the computation of the time for the next hop rebroadcast so that the message falls faithfully into the trial window of the next hop. With the delay, the timing can be adjusted for the next hop so that windows for the network nodes 101 A-K receiving RAQ for all adjacent hops are relatively well aligned.

[0068] The ACT List may be a list of source identifiers of network nodes 101 A-K that are activated for rebroadcasting. It contains the list of network node IDs to activate rebroadcasting. The redundancy and reliability of reaching the node 101 is proportional to the length of the list.

[0069] Turning to FIG. 3, and with continued reference to FIG. 1, an illustrative process for the processing of messages received in the rebroadcast configuration event is shown. In some embodiments, this process is executed by the processor 103. In some embodiments, the instructions for this flow chart are stored in the memory 104. The process could be executed by the network interface 102 and stored in memory in the network interface 102.

[0070] The process starts when a message is received 301. Then the process checks to see if a broadcast message was received 302. If not, the process checks to see if the trial period timed out 303. If the trial period has not expired, then the message is ignored, and the process returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0071] Selection

[0072] If the trial period has expired, then the process continues to determine the best candidates by combining what the network node 101 has heard and overheard on the network. In some embodiments, a best N candidates routine is called, sending parameters containing a data structure of what has been heard and of what has been overheard by the radio 108. One embodiment of this routine can be found in FIG. 4.

[0073] Next, forwarding is enabled if the tx_fwd flag is set 305. In embodiments, forwarding is enabled at a node after receiving the message and thus retroactively to receiving the message. If not, forwarding is disabled. Then the message is assembled by adding in the sequence number, the hop number (in some embodiments, the hop number is incremented), and setting the RAQ and ACT tags 306. Then the process waits a random period of time 307 and transmits the message (step 313) through the network interface 102 to the radio 108 and to the mesh network 107.

[0074] Forwarding

[0075] If a broadcast message was received 302, then the message is checked to see if it contains an RAQ or an ACT tag 311. This is the forwarding or rebroadcasting process. If not, the process checks if forwarding is enabled (step 312). If forwarding is not enabled, then the message is ignored, and the process returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0076] If forwarding is enabled (step 312), then the message received is transmitted through the network interface 102 to the radio 108 and to the mesh network 107.

[0077] Activation

[0078] If the message contains one or more ACT tags 321, then the list of ACT network nodes is checked to see if the current node is in the list of ACT nodes 322. If the network node 101 is in the list of ACT nodes from the message, then the current network node 101 is requested to activate forwarding. The tx_fwd flag is set to TRUE 323. Processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0079] Eavesdropping

[0080] However, if the current node 101 is not in the list of ACT nodes 322, then the process checks to see if the hop field is the same as the sender’s hop 331. If it is not from the same hop, the message is ignored, and processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0081] If the message is from the same hop 331, then an adjacent activation request has been heard from a neighboring network node 101 A-K. The sender identifier for each item in the list of ACT nodes is added to the local overheard list through an overheard. add(sender id) function call 332. Processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0082] Collection

[0083] FIG. 3 shows a pure feed-forward embodiment where the RAQ message can only be received from a previous hop, according to some embodiments. This functionality is isolated within the dashed line of FIG. 3. FIG. 3A has an alternate embodiment in the dashed lines. Continued reference is made to FIG. 1.

[0084] If the message does not contain an ACT tag 321, then the message is checked to see if the sender is from the previous hop 341. If not, the message is ignored, processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0085] The message is also checked to see if it contains an RAQ tag. If not, the message is ignored, processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0086] This collection step notes the network nodes from the previous hop that have been heard. If the message contains an RAQ tag 342, then the process checks to see if the trial period has started. If the trial period has not been started, then the trial period is started by setting the tx fwd flag to FALSE, clearing the list of nodes heard by calling the heard, clear routine, clearing the list of nodes overheard by calling the overheard, clear routine, the random back-off is subtracted from the trial start period (used in step 307), and starting the trial period 344.

[0087] Regardless of whether the trial period was started 343, add the sender identifier to the list of network nodes that were heard by calling a heard. add(sender id) routine 345. Processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0088] FIG. 3A shows an embodiment that is essentially the same as FIG. 3, except that an RAQ message can be received from any adjacent hop as long as the ACT list in the message has not reached capacity. FIG. 3 only allows RAQ messages from the previous hop.

[0089] In FIG. 3A, if the message contains an ACT 321, then the message is checked to see if the sender is from a different hop 351. If not, then the message is ignored, processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302. Next, the message is checked to see if the ACT list is at capacity 352. If not, then the message is ignored, processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0090] Then the message is checked to see if it contains an RAQ tag 353. If not, then the message is ignored, processing returns to monitoring the radio 108 for traffic 300 and then checks if a message was received 302.

[0091] The process in FIG. 3A can then continue as in FIG. 3 by checking if the trial period has started 343.

[0092] FIG. 4 is a flowchart of the best N candidates routine 304, as executed by the processor 103 and / or the network interface 102 of FIG. 1. This routine determines network nodes 101 A-K from the previous hop that have the best characteristics for selection as the node to receive broadcasts from. The best N candidates routine 304 begins by sorting the list of network nodes heard by the radio signal data 401. The list is sorted by a fitness function based on radio info for each network node 101 A-K, such as received signal strength (RS SI) and chip errors as seen by the radio 108 and / or the network interface 102.

[0093] Next, the overheard list is filtered through the fitness function 402. Only network nodes 101 A-K whose radio info meets certain criteria based on a fitness function, such as minimum RS SI, maximum number of chip decoding errors and / or the unique network node identifier, are retained in the overheard list.

[0094] The heard list is then arranged into a top list and a bottom list 403, with the top list incorporating the intersection of the filtered overheard list with the heard list. The bottom list contains all elements of the heard list that are not in the top list. This is an intersection of the two sets of network node IDs to ensure that those network nodes from the eavesdropped network nodes (overheard list) pick only the network nodes 101 A-K that can be directly heard. These will be the "top" of candidates. The remainder of the heard network nodes will make up the "bottom" list.

[0095] The bottom list is concatenated to the bottom list to form a sorted candidate list 404. By putting the top list first we are in effect coercing the results to what the neighboring network nodes 101 A-K have decided.

[0096] The top N candidates in the candidate list are then returned 405. This candidate list is the list for which we want forwarding / rebroadcast activation to be enabled. The choice of N determines objectively the minimum number of redundant routes to reach this network node 101. FIGS. 5, 6, 7, and 8 show the progression of the rebroadcast configuration event as it propagates through a mesh network 107. Note that these diagrams look like a tree, but in a mesh network, the propagation may extend in all directions. A tree was chosen to simply illustrate the concept.

[0097] FIG. 5 shows the mesh network 107 at time t=0 of the rebroadcast configuration event. Network node 101A is to produce a message to be consumed by all other nodes 101B-K, without requiring all network nodes 101B-K to rebroadcast in order to minimize the radio channel budget consumption without trading off the reliability of the mesh network 107.

[0098] Node 101A broadcasts the message to all network nodes 101B-101D within radio range in a single hop and attaches a tag requesting Rebroadcast Activation Query (RAQ) to the message. This message is received by network nodes 101B, 101C, and 101D.

[0099] Network node 101A is in the origin hop 501 and broadcasts the RAQ message to the network nodes 101B-D in hop one 502. Network node 101A executes the algorithm in FIG. 2. As the receiving nodes 101B-D receive the message, the network nodes 101B-D execute the collection algorithm 343-345 in FIG. 3 or 3A.

[0100] FIG. 6 shows the mesh network as time t=T of the rebroadcast configuration event. Network nodes 101B, 101C, and 101D see the RAQ tag and unanimously decide on activating rebroadcasting in node 101A. Network nodes 101B, 101C, and 101 D rebroadcast the message with the RAQ tag but also attach a rebroadcast activation (ACT) tag naming node 101A. Network node 101A sees itself being mentioned in the ACT tag and enables rebroadcasting.

[0101] The network nodes 101B-D in hop one 502 rebroadcast the updated message to all network nodes 101E-G within radio range in a single hop. Network nodes 101E-G are in hop two 603 in the present example. Network nodes 101B-D execute the selection algorithm 304-307, 313 in FIG. 3 or 3A with each node selecting network node 101A as the rebroadcast node. As the receiving nodes 101E-G receive the RAQ message and execute the collection algorithm 343-345 in FIG. 3 or 3A. Network node 101A, upon receiving the ACT messages, executes the activation algorithm with steps 322,323 for the first ACT message received, and with steps 331, 300 for the subsequent ACT messages received. In the origin hop 501, the rebroadcasting node selection is complete: network node 101A is now a rebroadcasting node.

[0102] Note that in some embodiments, network nodes 101B, 101C, and 101D may broadcast a single RAQ message each with the updated ACT list to nodes 101A-G in both the previous hop 501, the current hop 502, and the next hop 603. This allows the nodes 101 A in the previous hop 501 to determine whether they are an ACT rebroadcast node. This also allows the network nodes 101B-D in the current hop 502 to determine if they should change their ACT designation to their neighboring network node’s ACT designation. The network nodes 101E-G in the next hop 603 can use this message as an RAQ message.

[0103] FIG. 7 shows the mesh network as time t=2T of the rebroadcast configuration event. Network node 101E sees RAQ from both network nodes 101B and 101C, and chooses to rebroadcast the updated message with RAQ tag and ACT tag naming network node 101B. Network node 101G sees RAQ from both network nodes 101C and 101D, and chooses to rebroadcast the message with RAQ tag and ACT tag naming network node 101D. Network node 101F sees a request from 101B, 101C, and 101D, but overhears network node lOlG's rebroadcast with ACT tag naming network node 10 ID, which coerces network node 10 IF to also rebroadcast the message with an RAQ tag and ACT tag naming network node 101D.

[0104] The network nodes 101E-G in hop two 603 rebroadcast the updated message to all network nodes 101H-K within radio range in a single hop. Network nodes 101H-K are in hop three 704 in the present example. Network nodes 101E-G execute the selection algorithm 304-307, 313 in FIG. 3 or 3A with network node 101E selecting network node 101B as a rebroadcast node. Network node 101G selects network node 101D as its rebroadcast node. Network node 101F sees that network node 101G has chosen network node 10 ID, and subsequently uses network node 101 D as its rebroadcast node. The receiving nodes 101H-K receive the RAQ message and execute the collection algorithm 343-345 in FIG. 3 or 3A. Network nodes 101B and 101D, upon receiving the ACT messages, execute the activation algorithm with steps 322,323 for the first ACT message received, and 331, 300 for the subsequent ACT messages received. In hop one 502, the rebroadcasting node selection is complete: network nodes 101B and 101D are now rebroadcasting nodes.

[0105] Note that in some embodiments, network nodes 101E, 101F, and 101G may broadcast a single RAQ message each with the updated ACT list to nodes 101B-K in both the previous hop 502, the current hop 603, and the next hop 704. This allows the nodes 101B-D in the previous hop 502 to determine whether they are an ACT rebroadcast node. This also allows the network nodes E-G in the current hop 603 to determine if they should change their ACT designation to their neighboring network node’s ACT designation. The network nodes 101H-K in the next hop 704 can use this message as an RAQ message.

[0106] FIG. 8 shows the mesh network as time t=3T of the rebroadcast configuration event. In this example, the messages are reaching the end nodes 101H-101K in this mesh network 107. Network node 1011 selects network node 101F to rebroadcast. Network node 1011 rebroadcasts the message with RAQ and ACT naming network node 101F. Network node 101H sees this and is coerced to also rebroadcast the message with RAQ and ACT naming network node 101F. Network node 101 J sees RAQ from network nodes 101F and 101G, but selects network node 101G for ACT using a candidate selection routine 304 as seen in FIG. 4 when rebroadcasting the message. Network node 101K only sees RAQ from network node 101G and also rebroadcasts the message with RAQ and ACT naming network node 101G.

[0107] The network nodes 101H-K in hop three 704 rebroadcast the updated message to all network nodes within radio range in a single hop, but since they are at the edge of the network, no network nodes see the message to respond (other network nodes 101A-K may see the message, but since they have already processed the message, the message is ignored). Network nodes 101H-K are in hop three 704 in the present example. Network nodes 101H-K execute the selection algorithm 304-307, 313 in FIG. 3 or 3A with network node 1011 selecting network node 101F as a rebroadcast node. Network node 101H sees that network node 1011 has chosen network node 101F, and subsequently uses network node 101F as its rebroadcast node. Network nodes 101 J and 101K select network node 101G as their rebroadcast node. Network nodes 101F and 101G, upon receiving the ACT messages, execute the activation algorithm with steps 322,323 for the first ACT message received, and 331, 300 for the subsequent ACT messages received. In hop two 603, the rebroadcasting node selection is complete: network nodes 101F and 101G are now rebroadcasting nodes. Since network nodes 101H-101K are at the edge of the mesh network 107, these network nodes never receive an ACT message.

[0108] FIG. 9 shows our example mesh network 107 after the rebroadcast configuration event. Originating network node 101 A broadcasts a message to network nodes 101B-D. Network node 101C processes the message locally but does not forward the message. Network nodes 101B and 101D, because they are designated for rebroadcasting in hop one 502, rebroadcast the message as in steps 312, 313 in FIGS. 3 and 3A after processing the message locally. The rebroadcasts from network nodes 101B and 101D are heard by the network nodes 101E-101G in hop two 603. Network nodes 101FB and 101G, because they are designated for rebroadcasting in hop two 603, rebroadcast the message as in steps 312, 313 in FIGS. 3 and 3A after processing the message locally. Network node 101E processes the message locally but does not forward the message. Network nodes 101H-K receive the messages from network nodes 101F and 101G process the message locally but do not forward the message.

[0109] To process the message, the payload may be sent from the network interface 102 to the memory 104 for processing by the processor 103. In some embodiments, the payload could contain data related to the state of a light or a display image. This payload data, once processed by the processor 103, may be sent to the user output device 105 for illuminating one or more lights 106. This light 106 could be a filament in a light-emitting diode (LED).

[0110] The mesh network 107 topology in FIGS. 5-9 is an example. In other embodiments, the network could have more or fewer nodes, could be circular rather than tree-structured, and could have many mode hops. FIGS. 5-9 in no way limit the network 107 topology.

[0111] FIG. 10 shows the timing as broadcast messages propagate through the mesh network 107. In the origin hop 501, the initiating network node 101A broadcasts out an RAQ message to all network nodes 101B,101C,101D capable of hearing the radio transmission. Network nodes 101B, 101C, and 101D receive the RAQ message during the origin hop 501, prepare their responses, and send ACT messages during the ACT Window. The RAQ window is the time period when an RAQ message from the previous hop 501,502,603,704 will be seen. During the ACT window, the network node 101 a) is open to receiving ACT tags from the same hop (i. e. , "neighbors"), information that is used for eavesdropping; b) generates an output ACT list comprised of filtered nodes from the previous hop and from eavesdropped results; and c) rebroadcasts the message tagged with both ACT and RAQ after waiting for a random back-off time. The ACT tag targets the previous hop, and the RAQ tag simultaneously targets the next hop.

[0112] While the disclosure has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. The claimed inventions are not limited to the disclosed embodiments.

[0113] Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed inventions, from a study of the drawings, the disclosure, and the appended claims.

[0114] In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims.

[0115] The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to obtain an advantage.

[0116] A computer program may be stored / distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems. Any reference signs in the claims should not be construed as limiting the scope.

Claims

CLAIMS1. A network node (101) comprising: one or more microprocessors (103); a network interface (102) electrically connected to the one or more microprocessors, the network interface including a radio (108); and a memory (103) electrically connected to the one or more microprocessors, the memory including non-transitory machine-readable instructions to: listen for a plurality of signals through the radio (302), the plurality of signals organized as messages; receive one or more messages with a rebroadcast activation query tag from the radio (342); select a selected message with the rebroadcast activation query tag from the one or more rebroadcast messages with the activation query tag (304); identify an identified node that sent the selected message with the rebroadcast activation query tag, wherein forwarding is enabled at the network node subsequent to receiving the one or more messages (306); broadcast, using the radio, a message with a rebroadcast activation list (313), where the message with the rebroadcast activation list includes the identified node in the rebroadcast activation list; broadcast, using the radio, the selected message with the rebroadcast activation query tag (313); listen, using the radio, for a node-specific message with the rebroadcast activation list that specifies the network node as one of the rebroadcast nodes (322); and if the network node is specified as one of the rebroadcast nodes (322), listen to the radio for broadcast messages and rebroadcast the broadcast messages received through the radio (312).

2. The network node of claim 1 further comprising of non-transitory machine- readable instructions to listen for an adjacent node message with the rebroadcast activation list before sending the message with the rebroadcast activation list to the identified node (331).

3. The network node of claim 2 further comprising of non-transitory machine- readable instructions to set the identified node to a specified node found in the adjacent node message with the rebroadcast activation list (332).

4. The network node of claim 1 where the selected message with the rebroadcast activation query tag is selected based upon a strength of the plurality of signals (401).

5. The network node of claim 1 where the selected message with the rebroadcast activation query tag is selected based upon a source identifier (401).

6. The network node of claim 1 further comprises an output module (105) electrically connected to the one or more microprocessors.

7. The network node of claim 6 further comprises an LED filament (106) electrically connected to the output module.

8. The network node of claim 1 where the messages are formatted according to a Zigbee protocol.

9. The network node of claim 1 where the messages are received from a mesh network (107) of similar network nodes.

10. A method comprising: listening for a plurality of signals with a microprocessor (103) connected to a radio (108), the plurality of signals organized as messages, and the microprocessor and radio forming a network node (101); receiving one or more messages with a rebroadcast activation query tag from the radio (342);selecting, by the microprocessor, a selected message with the rebroadcast activation query tag from the one or more messages with the rebroadcast activation query tag (304) and identifying an identified node as the identified node that sent the selected message with the rebroadcast activation query tag, wherein forwarding is enabled at the network node subsequent to receiving the one or more messages (306); broadcasting, by the microprocessor through the radio, a message with a rebroadcast activation list (313), where the message with the rebroadcast activation list includes the identified node in the rebroadcast activation list; broadcasting, using the radio, the selected message with the rebroadcast activation query tag (313); listening, using the radio, for a node-specific message with the rebroadcast activation list that specifies the network node as one of the rebroadcast nodes (322); and if the network node is specified as one of the rebroadcast nodes, listening to the radio for broadcast messages and rebroadcasting the broadcast messages received through the radio (312).

11. The method of claim 10 further comprises listening for an adjacent node message with the rebroadcast activation list before sending the message with the rebroadcast activation list to the identified node (331).

12. The method of claim 11 further comprises setting the identified node to a specified node found in the adjacent node message with the rebroadcast activation list (332).

13. The method of claim 12 where the selected message with the rebroadcast activation query tag is selected based upon a strength of the plurality of signals (401).

14. The method of claim 10 further comprises receiving a lighting message to energize an LED filament (106) electrically connected to the microprocessor.

15. A network comprising a plurality of network nodes (101) of claim 1.