On 2/13/2020 8:49 AM, Ciara Loftus wrote: > This series introduces some fixes for the zero copy path of the AF_XDP. > In zero copy, the mempool objects are mapped directly into the AF_XDP UMEM. > Below depicts the layout of an object in a mempool. > > +-----+--------+------+------+-----+-------------+ > | mp | struct | mbuf | mbuf | XDP | | > | hdr | rte_ | priv | hr | hr | payload | > | obj | mbuf | | | | | > +-----+--------+------+------+-----+-------------+ > 64 128 * 128 256 * > > <---------------- frame size --------------------> > <---- frame hr -------------> > > 1: net/af_xdp: fix umem frame size & headroom calculations > * The previous frame size calculation incorrectly used > mb_pool->private_data_size and didn't include mb_pool->header_size. Instead > of performing a manual calculation, use the rte_mempool_calc_obj_size API > to determine the frame size. > * The previous frame headroom calculation also incorrectly used > mb_pool->private_data_size and didn't include mb_pool->header_size or the > mbuf priv size. > > 2. net/af_xdp: use correct fill queue addresses > The fill queue addresses should start at the beginning of the mempool > object instead of the beginning of the mbuf. This is because the umem frame > headroom includes the mp hdrobj size. Starting at this point ensures AF_XDP > doesn't write past the available room in the frame, in the case of larger > packets which are close to the size of the mbuf. > > 3. net/af_xdp: fix maximum MTU value > The maximum MTU for af_xdp zero copy is equal to the page size less the > frame overhead introduced by AF_XDP (XDP HR = 256) and DPDK (frame hr = > 320). The patch updates this value to reflect this, and removes some > unneeded constants for both zero-copy and copy mode. > > v4: > * Deduct XDP_PACKET_HEADROOM from max mtu for copy mode. > > v3: > * Fix send-email issue - use in-reply-to > > v2: > * Include mbuf priv size in rx mbuf data_off calculation > > Ciara Loftus (3): > net/af_xdp: fix umem frame size & headroom calculations > net/af_xdp: use correct fill queue addresses > net/af_xdp: fix maximum MTU value >
Series applied to dpdk-next-net/master, thanks.