Patent ID: 7233991

Claim:
A method for automatically detecting and self-recovering from a network isolation condition in a network comprising a plurality of network nodes and a group of one or more root nodes, the method comprising: configuring the group of root nodes to periodically generate beacon packets; configuring each of the plurality of network nodes to have finite states consisting of an idle state, a discovery state, a reconfiguration state, a search state, a wait state, and a registration state; receiving, during said idle state, at said each of the plurality of network nodes a first beacon packet originating from the group of root nodes through an adjacent node of said each of the plurality of network nodes, wherein said adjacent node of said each of the plurality of network nodes is designated as a parent node of said each of the plurality of network nodes; storing at said each of the plurality of network nodes an aging indicator for the first beacon packet after a first aging interval; resetting said aging indicator at said each of the plurality of network nodes when a second beacon packet is received through said adjacent node of said each of the plurality of network nodes and source address of said second beacon packet matches source address of said first beacon packet; if said aging indicator is not reset by said second beacon packet received through said adjacent node of said each of the plurality of network nodes after a second aging interval greater than the first aging interval, then: indicating said network isolation condition during said idle state; listening, by said each of the plurality of network nodes during said search state, for a new beacon packet originating from the group of root nodes, and said new beacon packet is received through a different adjacent node of said each of the plurality of network nodes; entering, by said each of the plurality of network nodes, said wait state in response to receiving said new beacon packet; verifying, during said discovery state, said different adjacent node of said each of the plurality of network nodes is not a descendant node of said each of the plurality of network nodes; in response to said verifying, transmitting, during said registration state, a registration request to said different adjacent node to establish said different adjacent node as a new parent node of said each of the plurality of network nodes when said different adjacent node of said each of the plurality of network nodes is not the descendant node of said each of the plurality of network nodes; receiving an approval, in reconfiguration state, from said different adjacent node of said each of the plurality of network nodes in response to said registration request; deleting a parent status of said adjacent node of said each of the plurality of network nodes; and storing an indication of said different adjacent node as said new parent node at said each of the plurality of network nodes.