Patent ID: 8184632

Claim:
A method of adding a node to a list of a plurality of identifiers of nodes through which messages may be routed from a first node, the method comprising: receiving, with a beacon receiver, a message from a second node, the message comprising components including an identifier of the second node, a cost of routing from the second node to a destination, and identifiers of a plurality of third nodes through which messages are routed to the destination from the second node, the message comprising a candidate for replacement of a last entry of a list of a plurality of identifiers of nodes through which messages may be routed from the first node; receiving, at a next hop determiner, at least part of the message from the beacon receiver; identifying, with the next hop determiner, whether an identifier of the first node is in the plurality of identifiers of third nodes; responsive to the identifier of the first node not being in the plurality of identifiers of third nodes: receiving, at an on list processor, at least part of the message from the next hop determiner; determining, with the on list processor, whether the identifier of the second node matches any of the plurality of identifiers on the list; responsive to the identifier of the second node not matching any of the plurality of identifiers on the list: receiving, at a list complete identifier, at least part of the message from the on list processor; identifying, with the list complete identifier, whether the list is full; responsive to the list not being full, adding, with the complete list identifier, at least part of the message to the list; and responsive to the list being full: receiving, at a cost compare manager, at least part of the message from the list complete identifier; comparing, with the cost compare manager, the cost of routing from the second node to the destination with a cost of routing from a fourth node to the destination, the fourth node corresponding to the last entry of the list of nodes; determining whether the cost of routing from the second node to the destination is significantly less than the cost of routing from the fourth node to the destination; and upon determining that the cost of routing from the second node to the destination being significantly less than the cost of routing from the fourth node to the destination, adding information from the message to the list in place of information on the list corresponding to the fourth node.