Patent ID: 8385230

Claim:
A method of operating a computing device configured as a node of a mesh network to select a network address for the computing device that is unique on the mesh network, the method comprising an act of: operating at least one processor on the computing device to select a network address by executing computer-executable instructions performing acts of: (A) conditionally selecting a network address based on whether a network address for the computing device is stored in a portion of non-volatile memory on the computing device, the conditionally selecting comprising: when a network address for the computing device is stored in the portion of non-volatile memory on the computing device, selecting the stored network address as the network address for the computing device; when a network address for the computing device is not stored in the portion of non-volatile memory on the computing device: (1) generating a first portion of a network address based on an identifier associated with the computing device, where the first portion comprises a suffix for a network address, where the identifier comprises a MAC address associated with the computing device, and where the generating comprises computing a hash value based on the MAC address; and (2) selecting as the network address for the computing device a network address based on the generated first portion and on a second portion associated with the network; (B) detecting if the selected network address conflicts with another network address assigned to a computing device in the mesh network; (C) when the selected network address does not conflict: storing the selected network address in the portion of non-volatile memory; and (D) when the selected network address does conflict: generating a different first portion of a network address; selecting as the selected network address for the computing device a network address based on the different first portion and the second portion associated with the network; and performing acts (B) and either (C) or (D) on the selected network address.