net: Use Jubmo packets zone for m_defrag() allocations

This patch fixes part of TCP instability/low throughput problems on Xen.

On transmit networking stack passes to Xen netfront driver a list of mbufs
of up to PAGE_SIZE (4096) bytes each.
In case the list consists of more than MAX_TX_REQ_FRAGS (18) fragments
driver tries to defragment it with m_defrag().

m_defrag() in turn tries to build list of buffers of up to MCLBYTES
(2048) bytes each. This leads to even longer chain and packet being dropped.
As a result around 1% of TCP segments are lost and intensive TCP
retransmissions and slowdowns occur.

This patch makes m_defrag() use Jumbo packets zone for allocation, i.e.
PAGE_SIZE per mbuf.

This patch is pretty similar to what Glauber done on RX path before.

Signed-off-by: Dmitry Fleytman <dmitry@daynix.com>
net: maximum IP datagram size decreased by ETH header length

FreeBSD networking code limits IP datagram size by IP_MAXPACKET
which is exactly 64K. This calculation doesn't take into account
Ethernet header length and may generate Ethernet packet longer than 64K.

Such a packet cannot be processed properly by some devices (Xen netback)
and being dropped.

This patch fixes this corner case for all supported IP protocols.

Signed-off-by: Dmitry Fleytman <dmitry@daynix.com>