2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-27 22:53:55 +08:00
linux-next/include/uapi
Daniel Borkmann 7d672345ed bpf: add generic bpf_csum_diff helper
For L4 checksums, we currently have bpf_l4_csum_replace() helper. It's
currently limited to handle 2 and 4 byte changes in a header and feeds the
from/to into inet_proto_csum_replace{2,4}() helpers of the kernel. When
working with IPv6, for example, this makes it rather cumbersome to deal
with, similarly when editing larger parts of a header.

Instead, extend the API in a more generic way: For bpf_l4_csum_replace(),
add a case for header field mask of 0 to change the checksum at a given
offset through inet_proto_csum_replace_by_diff(), and provide a helper
bpf_csum_diff() that can generically calculate a from/to diff for arbitrary
amounts of data.

This can be used in multiple ways: for the bpf_l4_csum_replace() only
part, this even provides us with the option to insert precalculated diffs
from user space f.e. from a map, or from bpf_csum_diff() during runtime.

bpf_csum_diff() has a optional from/to stack buffer input, so we can
calculate a diff by using a scratchbuffer for scenarios where we're
inserting (from is NULL), removing (to is NULL) or diffing (from/to buffers
don't need to be of equal size) data. Also, bpf_csum_diff() allows to
feed a previous csum into csum_partial(), so the function can also be
cascaded.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-21 22:07:09 -05:00
..
asm-generic arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures 2016-01-15 17:56:32 -08:00
drm drm/etnaviv: add further minor features and varyings count 2016-01-26 18:53:58 +01:00
linux bpf: add generic bpf_csum_diff helper 2016-02-21 22:07:09 -05:00
misc cxl: Add alternate MMIO error handling 2015-08-18 19:34:43 +10:00
mtd mtd: mtd-user: remove stdint.h include 2015-10-19 18:19:06 -07:00
rdma staging/rdma/hfi1: Adjust EPROM partitions, add EPROM commands 2015-12-21 13:45:38 -08:00
scsi cxlflash: Fix to avoid virtual LUN failover failure 2016-01-06 20:50:08 -05:00
sound Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/topology', 'asoc/topic/wm8903' and 'asoc/topic/wm8904' into asoc-next 2015-12-23 00:23:52 +00:00
video
xen xen/gntdev: add ioctl for grant copy 2016-01-07 13:21:53 +00:00
Kbuild