mbuf: allow to clone an indirect mbuf
mbuf: allow to clone an indirect mbuf

Remove one limitation of rte_pktmbuf_attach(): "mbuf we're attaching to
must be direct".

Now, when we attach to an indirect mbuf:
- copy the all relevant fields (addr, len, offload, ...) as before
- get the pointer to the mbuf that embeds the data buffer (direct mbuf),
  and increase the reference counter of this one.

When detaching the mbuf, we can retrieve this direct mbuf as the pointer
is determined from the buffer address.

Signed-off-by: Olivier Matz <dfcc1510895413197abb4336e39bb0a3906cba71@6wind.com>
Acked-by: Neil Horman <3316dc2d77df57653443c0391a5296176d6ca9c3@tuxdriver.com>
Acked-by: Konstantin Ananyev <cbd5212b59ab42a210d72992d23a3aa17cfd3eaf@intel.com>

venkynv/dpdk-mirror,mixja/dpdk,john-mcnamara-intel/dpdk,john-mcnamara-intel/dpdk,mixja/dpdk,mixja/dpdk,john-mcnamara-intel/dpdk,msune/dpdk,msune/dpdk,john-mcnamara-intel/dpdk,tsphillips/dpdk-fork,msune/dpdk,venkynv/dpdk-mirror,tsphillips/dpdk-fork,venkynv/dpdk-mirror,venkynv/dpdk-mirror,msune/dpdk,mixja/dpdk,tsphillips/dpdk-fork,tsphillips/dpdk-fork