Only the arp daemon can write to this table. If not found, they ipc into the arp daemon to add the entry, and block until the status of the entry changes. The arp daemon will retransmit the arp request until it gets a reply or times out. The arp daemon also responds to arp requests from other machines in the network. The route procedures are used to find out which is the proper interface for the ipaddress.
All process have a route table that is in shared memory.
Each process can read and write into this table. The first process sets the routes by default. It is important to set the routes early on, as most libos code uses this to locate which interface to use. More information as well as interface definitions can be found in the source. You just have to make sure that all the networking code is ready by the time you need to resolve your first address.