Currently `rinit1()` and its IPv6 counterpart `nd6_prefix_onlink_rtrequest()` uses dummy `null_sdl` gateway address during route insertion and fill it afterwards. One of the original reasons might reside in the concern that `sizeof(struct sockadd_dl)` is rather big to be on-stack (54 bytes on amd64).
Inserting fake gateway and silently fixing it afterwards brings complications to the routing stack.
This change fixes both `rinit1()` and `nd6_prefix_onlink_rtrequest()` by filling in proper gateway prior to the inserion. It does not change any of the userland notifications as in both cases, they happen after the insertion and fixup process (`rt_newaddrmsg_fib()` and `nd6_rtmsg()`)