Update IP signature

We revive the `allocate_frame` function as before, but we perform
address resolution in the `write` function.  This is reflected in the
signature of `allocate_frame`, which no longer blocks.