Mesh Potato Configuration Defaults
In order to be able to open up a fresh batch of Mesh Potatoes and have them work out of the box, we realised that each Mesh Potato needed to have a unique IP address. Furthermore we wanted each Mesh Potato to have a default phone number. We decided the following:
1) In order to generate unique IP address, we would select an A class address that we were unlikely to conflict with in the real world. In doing this, we are following a similar strategy to that employed by Meraki. We chose 11 as the A class address, thus all Mesh Potatoes will have a default IP address of 11.XXX.XXX.XXX. This gives over 16 million potential IP addresses within the network.
2) Generating IP address from MAC address There is some debate as to the best way to generate IP address for the MPs.
One approach, used by both Meraki and OpenMesh is to use the last 3 octets of the MAC address as the last 3 octets of the IP address. This will guarantee that IPs are unique for all devices made by the same vendor (first 3 octets are vendor ID), but could collide if MPs are made by different vendors.
Though, as OpenMesh and Meraki have shown in the real world, collisions are unlikely—even if 2 devices get the same IP, they must be on the same logical network for collision to be a problem.
An alternative approach is to create a 24-bit hash a set of universally unique information such as (full MAC address and CPU id) and use that for the last 3 octets of the IP address.
4) We create a 9 digit phone number from the last octets of the IP address, padding out any 1 or 2 digit octets with zeros.
So a MP with an IP of 22.214.171.124 would have the default phone number: 010 100 013
5) We also chose an unused country code for the the telephone numbers which may, at some optimistic point in the future, provide real world DIDs for Mesh Potato phone numbers. Thus +288 is the country code for "PotatoLand".