net: simplify inpcb allocation

Remove inpcbinfo::ipi_zone, replacing it by a normal new/delete.  This reduces
indirections and makes it easier to modify the stack.

The call to uma_zone_set_max() is lost, but since it was a no-op, there
is no change in functionality.  If desired, it can be restored using
something like

  -new inpcb(...);
  +new (resticted_allocator) inpcb(...);

where restricted_allocator fails if we overflow the socket limit.

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
net: remove unused fields from struct inpcb

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
net: inpcb: replace bzero() with C++ initialization

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
net: remove tcp offload support

Unused and unusable in virt context.

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
net: convert inpcbinfo::ipi_lock to a mutex

ipi_lock is now a rwlock, which is expensive and complicated to reason about.
However, everywhere interesting it is taken for write (except for accept()),
so we can convert it into an ordinary mutex without loss of parallelism.

Because rw_assert() is defined as a no-op, some of the asserts are converted
in the same way, to avoid triggering latent bugs.

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
net: tcp: remove dead code

Remove ipv6, tcp signature, and ipsec support.  While it will be a pain to
add them back later, it's impossible to maintain them while modifying the
code.

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
net: tcp: fix up indentations

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>