SYSTEM AND METHOD FOR OPERATING MESH DEVICES IN MULTI-TREE OVERLAPPING MESH NETWORKS
Methods, systems, and devices described herein can allow a mesh device to participate in multiple mesh networks. A plurality of mesh devices can each associate with a mesh network, each mesh network managed by an access point. Mesh devices exchange neighbor information with neighboring mesh devices, including information of mesh devices associated with a different mesh network. Communication paths can include mesh devices of multiple mesh networks. This provides path diversity among mesh devices and improves bandwidth and reliability. In addition, this provides access diversity in case of mesh network or mesh gate failures.
1 . A method comprising:
associating with a first mesh gate over a first mesh network;
exchanging neighbor information with an accessible same-network mesh device over the first mesh network;
detecting an accessible one-hop mesh device on a second mesh network;
exchanging neighbor information with the one-hop mesh device; and
forwarding a message from the one-hop mesh device to the first mesh network.
2 . The method of claim 1 , further comprising:
transmitting a status to a server via the first mesh network and the first mesh gate.
3 . The method of claim 2 , wherein the status includes neighbor information.
4 . The method of claim 1 , further comprising:
forwarding the message from the one-hop mesh device to a server via the first mesh network and the first mesh gate.
5 . The method of claim 1 , wherein each neighbor information includes a best parent field, a best five parents field, a mesh gate load field, a number of hops to the mesh gate field, and a mesh gate path signal quality field.
6 . The method of claim 1 , further comprising:
forwarding a response from a first mesh network mesh device to the one-hop mesh device.
7 . The method of claim 1 , further comprising:
exchanging neighbor information with a third mesh network one-hop device; and
forwarding a message from the third mesh network one-hop device to the first mesh network.
8 . The method of claim 1 , wherein the first mesh network and the second mesh network communicate on different radio channel frequencies.
9 . A method comprising:
associating with a second mesh network;
exchanging neighbor information with a two-hop mesh device over the second mesh network;
detecting an accessible zero-hop mesh device on a first mesh network;
exchanging neighbor information with the zero-hop mesh device; and
transmitting a message to the zero-hop mesh device for forwarding to the first mesh network.
10 . The method of claim 9 , further comprising:
transmitting a status to a server via the zero-hop mesh device and the first mesh network.
11 . The method of claim 10 , wherein the status includes neighbor information.
12 . The method of claim 9 , further comprising:
forwarding a transmission from the two-hop mesh device to the zero-hop mesh device.
13 . The method of claim 9 , wherein each neighbor information includes a best parent field, a best five parents field, a mesh gate load field, a number of hops to the mesh gate field, and a mesh gate path signal quality field.
14 . The method of claim 9 , further comprising:
receiving a response from the first mesh network via the zero-hop mesh device.
15 . The method of claim 9 , further comprising:
exchanging neighbor information with a third mesh network zero-hop device; and
transmitting a message to third mesh network zero-hop device.
16 . The method of claim 9 , wherein the first mesh network and the second mesh network communicate on different radio channel frequencies.
17 . A device comprising:
a neighborhood table, the neighborhood table storing mesh network device information; and
a radio configured to communicate with a first mesh network and a second mesh network, wherein the device is configured to, in operation:
associate with a first mesh gate over the first mesh network,
exchange neighbor information stored in the neighborhood table with an accessible same-network mesh device over the first mesh network,
detect an accessible one-hop mesh device on the second mesh network,
exchange neighbor information stored in the neighborhood table with the one-hop mesh device, and
forward a message from the one-hop mesh device to the first mesh network.
18 . The device of claim 17 , the device further configured to transmit a status to a server via the first mesh network and the first mesh gate.
19 . The device of claim 18 , wherein the status includes neighbor information.
20 . The device of claim 17 , the device further configured to forward the message from the one-hop mesh device to a server via the first mesh network and the first mesh gate.
21 . A computer program stored in a computer readable form for execution in a processor and processor coupled memory to execute a method, the method comprising:
associating with a first mesh gate over a first mesh network;
exchanging neighbor information with an accessible same-network mesh device over the first mesh network;
detecting an accessible one-hop mesh device on a second mesh network;
exchanging neighbor information with the one-hop mesh device; and
forwarding a message from the one-hop mesh device to the first mesh network.
22 . A computer program stored in a computer readable form for execution in a processor and processor coupled memory to execute a method, the method comprising:
associating with a second mesh network;
exchanging neighbor information with a two-hop mesh device over the second mesh network;
detecting an accessible zero-hop mesh device on a first mesh network;
exchanging neighbor information with the zero-hop mesh device; and
transmitting a message to the zero-hop mesh device for forwarding to the first mesh network.
23 . A method comprising:
associating with a first mesh gate over a first mesh network;
exchanging neighbor information with an accessible same-network mesh device over the first mesh network;
detecting an accessible one-hop mesh device on a second mesh network;
exchanging neighbor information with the one-hop mesh device;
forwarding a message from the one-hop mesh device to the first mesh network;
associating with the second mesh network;
exchanging neighbor information with a two-hop mesh device over the second mesh network;
detecting an accessible zero-hop mesh device on the first mesh network;
exchanging neighbor information with the zero-hop mesh device; and
transmitting a message to the zero-hop mesh device for forwarding to the first mesh network.
24 . A computer program stored in a computer readable form for execution in a processor and processor coupled memory to execute a method, the method comprising:
associating with a first mesh gate over a first mesh network;
exchanging neighbor information with an accessible same-network mesh device over the first mesh network;
detecting an accessible one-hop mesh device on a second mesh network;
exchanging neighbor information with the one-hop mesh device;
forwarding a message from the one-hop mesh device to the first mesh network;
associating with the second mesh network;
exchanging neighbor information with a two-hop mesh device over the second mesh network;
detecting an accessible zero-hop mesh device on the first mesh network;
exchanging neighbor information with the zero-hop mesh device; and
transmitting a message to the zero-hop mesh device for forwarding to the first mesh network.
25 . A method for a first mesh device to communicate in an overlapping mesh network environment, the method comprising:
associating with a first access point over a first mesh network, wherein the first access point manages the first mesh network;
responsive to receiving a neighbor information broadcast from a neighboring mesh device, updating a neighborhood table stored in an accessible memory, wherein the neighbor information includes a neighboring mesh device information and a neighboring mesh device network identifier;
responsive to a request to transmit a message to a destination, determining a next device, wherein the next device is on a calculated path towards the destination, the path including mesh devices from a plurality of mesh networks; and
transmitting the message to the next device.
26 . The method of claim 25 , wherein the calculated path is calculated by at least one of: the first mesh device and the first access point.
27 . The method of claim 25 , wherein the next device is one hop closer to the destination.
28 . The method of claim 25 , wherein the first access point manages the first mesh network by handling association requests from mesh devices of the first mesh network and maintaining a mesh device information table of mesh devices within the first mesh network.
29 . The method of claim 25 , wherein the destination is at least one of: a server, an access point, and another mesh device.
30 . The method of claim 25 , further comprising:
responsive to detecting a problem mesh network, deleting entries in the neighborhood table associated with the problem mesh network.
31 . The method of claim 25 , wherein the calculated path includes mesh devices associated with any number of mesh networks.
32 . The method of claim 31 , wherein the first mesh device is associated with the first access point when it is included in a neighborhood table of the first access point and utilizes services provided by the first access point.
33 . The method of claim 25 , wherein the request to transmit is received from at least one of: the first mesh device, and a message received from the neighboring mesh device for forwarding.
34 . The method of claim 33 , wherein the destination is any access point reachable from the first mesh device.
35 . The method of claim 25 , wherein an access point is reachable from the first mesh device when there exists a bidirectional path between the access point and the first mesh device over the mesh network.
36 . The method of claim 33 , wherein the message is received from any access point reachable from the first mesh device.
37 . The method of claim 25 , wherein the calculated path is received from the first access point and stored in the accessible memory.
38 . The method of claim 25 , further comprising:
responsive to a neighbor request or predetermined trigger, broadcasting neighbor information to neighboring mesh devices.
39 . A system for communicating in an overlapping mesh network environment, comprising:
a plurality of access points, each access point managing a mesh network; and
a plurality of mesh devices, each mesh device associated with a mesh network, wherein each mesh device is configured to:
(i) responsive to receiving a neighbor information broadcast from a neighboring mesh device, update a neighborhood table stored in an accessible memory, wherein the neighbor information includes a neighboring mesh device information and a neighboring mesh device network identifier;
(ii) responsive to a request to transmit a message to a destination, determine a next device, wherein the next device is on a calculated path towards the destination, the path including mesh devices from a plurality of mesh networks; and
(iii) transmit the message to the next device.
40 . The system of claim 39 , wherein the destination is at least one of: a server, an access point, and another mesh device.
41 . The system of claim 39 , wherein each mesh device is further configured to:
responsive to detecting a problem mesh network, delete entries in the neighborhood table associated with the problem mesh network.
42 . The system of claim 39 , wherein the calculated path includes mesh devices associated with at least two mesh networks.
43 . The system of claim 39 , wherein the request to transmit is received from at least one of: the mesh device, and a message received from the neighboring mesh device for forwarding.
44 . The system of claim 43 , wherein the destination is any access point reachable from the mesh device.
45 . The system of claim 43 , wherein the message is received from any access point reachable from the mesh device.
46 . The system of claim 45 , wherein an access point is reachable from the first mesh device when there exists a bidirectional path between the access point and the first mesh device over the mesh network.
47 . The system of claim 39 , wherein the calculated path is received from an access point and stored in the accessible memory.
48 . The system of claim 39 , where each mesh device is further configured to:
responsive to a neighbor request or predetermined trigger, broadcast the neighbor information to neighboring mesh devices.
49 . The system of claim 39 , wherein different mesh networks communicate on different predetermined radio frequencies.
50 . A mesh device for communicating in an overlapping mesh network environment, comprising:
a radio for communicating on a predetermined mesh network channel;
a memory for storing a neighborhood table;
a processor configured to:
associate with a first access point over a first mesh network via the radio, wherein the first access point manages the first mesh network;
responsive to receiving a neighbor information broadcasted from a neighboring mesh device, update the neighborhood table stored in the memory, wherein the neighbor information includes a neighboring mesh device information and a neighboring mesh device network identifier;
responsive to a request to transmit a message to a destination, determine a next device, wherein the next device is on a calculated path towards the destination, the path including mesh devices from a plurality of mesh networks; and
transmit the message to the next device via the radio.
51 . A computer-readable medium including instructions adapted to execute a method for a first mesh device to communicate in an overlapping mesh network environment, the method comprising:
associating with a first access point over a first mesh network, wherein the first access point manages the first mesh network;
responsive to receiving a neighbor information broadcasted from a neighboring mesh device, updating a neighborhood table stored in an accessible memory, wherein the neighbor information includes a neighboring mesh device information and a neighboring mesh device network identifier;
responsive to a request to transmit a message to a destination, determining a next device, wherein the next device is on a calculated path towards the destination, the path including mesh devices from a plurality of mesh networks; and
transmitting the message to the next device.
52 . A data structure defined in a computer readable medium, the data structure comprising:
a plurality of entries, each of the plurality of entries representing at least one device and storing at least one characteristic of the device; and
each of the plurality of entries including a plurality of fields for storing characteristics of at least one neighboring device.
53 . The data structure in claim 52 , wherein the device comprises a mesh network device.
54 . The data structure in claim 52 , wherein the plurality of entries are selected to include at least one of and any combination of two or more of the following:
a tree PAN identifier identifying a network tree associated with the mesh device;
a neighbor address identifying an address of the mesh device;
a neighbor PAN identifier identifying a membership of the mesh device;
an average quality specifying an average quality of the mesh device's path to an access point;
a number of hops specifying a number of hops between the mesh device and an access point;
a minimum quality specifying a minimum quality of the mesh device's path to an access point; and
a freshness specifying how recently the mesh device information was received.
55 . The data structure in claim 52 , wherein the plurality of entries comprise:
a tree PAN identifier identifying a network tree associated with the mesh device;
a neighbor address identifying an address of the mesh device;
a neighbor PAN identifier identifying a membership of the mesh device;
an average quality specifying an average quality of the mesh device's path to an access point;
a number of hops specifying a number of hops between the mesh device and an access point;
a minimum quality specifying a minimum quality of the mesh device's path to an access point; and
a freshness indicator specifying how recently the mesh device information was received.
56 . The data structure in claim 52 , wherein the data structure is stored in an accessible memory on a mesh device or on an access point.
57 . The data structure in claim 52 , wherein the data structure stores a neighborhood table.