It may suffice to only store client information on a single node. In case this node disappears, routes to clients can be rediscovered when needed. This may cause slight hiccups.
If we do this, we'd need the ability to query the network for a specific client given its MAC address.
Basically we need two new packet types:
request information about a MAC (should be flooded for now)
response containing list of IPs for that MAC
Information about a MAC should be requested whenever a new client appears, even if local information is available
The request actually claims the client. If another node thinks it owns the client, it'll compare the timestamp. If the other node has a younger timestamp, it won't respond but instead claim the client itself (by sending a request).Otherwise, it'll respond and let got of the client.
It may suffice to only store client information on a single node. In case this node disappears, routes to clients can be rediscovered when needed. This may cause slight hiccups.
If we do this, we'd need the ability to query the network for a specific client given its MAC address.
Basically we need two new packet types:
Information about a MAC should be requested whenever a new client appears, even if local information is available
The request actually claims the client. If another node thinks it owns the client, it'll compare the timestamp. If the other node has a younger timestamp, it won't respond but instead claim the client itself (by sending a request).Otherwise, it'll respond and let got of the client.