samples/bpf: add buffer recycling for unaligned chunks to xdpsock
authorKevin Laatz <kevin.laatz@intel.com>
Tue, 27 Aug 2019 02:25:29 +0000 (02:25 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 30 Aug 2019 23:08:26 +0000 (01:08 +0200)
commit03895e63ff97447e5eab1b71ed46e3662a45bfe8
treeea3eab086fa927c9dabc7a4771e0db5736a021c0
parentc543f54698229b50078b72760b9e8a4731cffa03
samples/bpf: add buffer recycling for unaligned chunks to xdpsock

This patch adds buffer recycling support for unaligned buffers. Since we
don't mask the addr to 2k at umem_reg in unaligned mode, we need to make
sure we give back the correct (original) addr to the fill queue. We achieve
this using the new descriptor format and associated masks. The new format
uses the upper 16-bits for the offset and the lower 48-bits for the addr.
Since we have a field for the offset, we no longer need to modify the
actual address. As such, all we have to do to get back the original address
is mask for the lower 48 bits (i.e. strip the offset and we get the address
on it's own).

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
samples/bpf/xdpsock_user.c