The current code ignores the address as passed to the BSD socket function bind(). It seems that that may not have been possible with earlier versions of the net API? I discovered by reading the code and experimentation that this seems to work fine in the current net API, so this implements it for BSD sockets. I removed some previous code that did not make sense to me, so you may want to check that I did not screw up. What I mean is "bind *" in bind() and about "bind 0" in listen(). The handling when ports < 0 are specified is not consistent yet. Either we should normalize the ports to be at least 0, or we should return an error condition for ports < 0. The documentation in the man page ip(3) for the control commands "bind" and "announce" does not mention the local address, should that be fixed, too?