In article <[email protected]>, Roy Marples <[email protected]> wrote: >On 10/02/2015 04:25, Alan Barrett wrote: >> On Sun, 08 Feb 2015, Roy Marples wrote: >>>> since this problem goes away if we make all of dhcpcd in-memory first, >>>> possibly what happens here is that with i386 or amd64, the layout is >>>> such that we don't ever try to fault in code during the small period >>>> of time that the route is missing. >>> >>> I don't fully understand what you are saying. >> >> Some part of the code that you are trying to run may not be in memory, >> so you may encounter a page fault when you try to run it. Responding to >> the page fault involves reading information from the the file system. >> On a diskless client, reading from the file system actually involves >> transferring data over the network from the remote file server. If you >> try to read from the file server at a time when the routing table does >> not contain a usable route to the file server, then you lose. >> >>> But do you have an idea of how this can be fixed then without dhcpcd >>> having to learn the routing table at load time? >> >> Do you currently use RTM_DELETE and RTM_ADD? Can you use RTM_CHANGE >> instead? > >The last time I tried using RTM_CHANGE, it did not clear the learned >cloned routes which RTM_DELETE handily does for me. This is important if >we need to move a subnet route from one interface to another.
You can have a flag that selects the behavior. Also you can see if the routes need changing before you go and delete them only to re-add them... christos
