linux-uconsole/include/uapi/linux
John Fastabend 6fff607e2f bpf: sk_msg program helper bpf_msg_push_data
This allows user to push data into a msg using sk_msg program types.
The format is as follows,

	bpf_msg_push_data(msg, offset, len, flags)

this will insert 'len' bytes at offset 'offset'. For example to
prepend 10 bytes at the front of the message the user can,

	bpf_msg_push_data(msg, 0, 10, 0);

This will invalidate data bounds so BPF user will have to then recheck
data bounds after calling this. After this the msg size will have been
updated and the user is free to write into the added bytes. We allow
any offset/len as long as it is within the (data, data_end) range.
However, a copy will be required if the ring is full and its possible
for the helper to fail with ENOMEM or EINVAL errors which need to be
handled by the BPF program.

This can be used similar to XDP metadata to pass data between sk_msg
layer and lower layers.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-10-20 21:37:11 +02:00
..
android
byteorder
caif
can
cifs
dvb media: dvb/audio.h: get rid of unused APIs 2018-07-30 16:21:49 -04:00
genwqe
hdlc
hsi
iio iio: Add modifier for DUV light 2018-07-23 19:18:10 +01:00
isdn
mmc
netfilter netfilter: xt_quota: fix the behavior of xt_quota module 2018-10-03 11:32:54 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
tc_act net/sched: tunnel_key: Allow to set tos and ttl for tc based ip tunnels 2018-07-19 23:26:01 -07:00
tc_ematch
usb USB/PHY patches for 4.19-rc1 2018-08-18 10:21:49 -07:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h aio: implement IOCB_CMD_POLL 2018-08-06 10:24:33 +02:00
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2018-08-15 22:54:12 -07:00
auto_dev-ioctl.h
auto_fs.h autofs: add AUTOFS_EXP_FORCED flag 2018-08-22 10:52:49 -07:00
auto_fs4.h autofs4: merge auto_fs.h and auto_fs4.h 2018-06-07 17:34:39 -07:00
auxvec.h
ax25.h
b1lli.h
batadv_packet.h
batman_adv.h
baycom.h
bcache.h bcache: style fix to add a blank line after declarations 2018-08-11 15:46:41 -06:00
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h include/uapi/linux/blkzoned.h: Remove a superfluous __packed directive 2018-07-09 09:07:52 -06:00
bpf.h bpf: sk_msg program helper bpf_msg_push_data 2018-10-20 21:37:11 +02:00
bpf_common.h
bpf_perf_event.h
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: btf: Clean up BTF_INT_BITS() in uapi btf.h 2018-07-20 10:25:48 +02:00
btrfs.h
btrfs_tree.h
can.h can: uapi: can.h: Fix can error class mask dir path 2018-07-27 10:40:16 +02:00
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h
cec.h media: uapi/linux/cec.h: add 5V events 2018-07-25 06:59:23 -04:00
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda.h
coda_psdev.h
coff.h
connector.h
const.h
coresight-stm.h
cramfs_fs.h
cryptouser.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h net: dcb: add DSCP to comment about priority selector types 2018-07-29 12:53:54 -07:00
dccp.h
devlink.h devlink: Add support for region snapshot read command 2018-07-12 17:37:13 -07:00
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h
dm-log-userspace.h
dma-buf.h
dn.h
dns_resolver.h dns: Allow the dns resolver to retrieve a server set 2018-10-04 09:40:52 -07:00
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h MIPS: Add FP_MODE regset support 2018-07-19 13:58:44 -07:00
elfcore.h
errno.h
errqueue.h net/sched: Make etf report drops on error_queue 2018-07-04 22:30:28 +09:00
erspan.h
ethtool.h ethtool: drop get_settings and set_settings callbacks 2018-08-29 19:46:10 -07:00
eventpoll.h eventpoll.h: wrap casts in () properly 2018-07-15 14:03:06 +02:00
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
flat.h
fou.h
fpga-dfl.h fpga: dfl: afu: add DFL_FPGA_PORT_DMA_MAP/UNMAP ioctls support 2018-07-15 13:55:47 +02:00
fs.h Add bunch of cleanups, and add support for the Speck128/256 2018-06-05 15:15:32 -07:00
fsi.h fsi: scom: Major overhaul 2018-06-18 15:11:53 +10:00
fsl_hypervisor.h
fsmap.h
fuse.h
futex.h
gameport.h
gen_stats.h net/core: Add new basic hardware counter 2018-09-24 12:18:42 -07:00
genetlink.h
gfs2_ondisk.h
gigaset_dev.h
gpio.h
gsmmux.h
gtp.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
if.h
if_addr.h if_addr: add IFA_TARGET_NETNSID 2018-09-05 22:27:11 -07:00
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h net: if_arp: use define instead of hard-coded value 2018-09-21 19:22:32 -07:00
if_bonding.h
if_bridge.h
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h FDDI: defza: Add support for DEC FDDIcontroller 700 TURBOchannel adapter 2018-10-15 21:46:06 -07:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h net: bridge: add support for per-port vlan stats 2018-10-12 10:18:58 -07:00
if_ltalk.h
if_macsec.h
if_packet.h packet: add sockopt to ignore outgoing packets 2018-09-05 22:09:37 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
if_x25.h
if_xdp.h xsk: Fix umem fill/completion queue mmap on 32-bit 2018-06-08 00:18:02 +02:00
ife.h
igmp.h
ila.h ila: Flush netlink command to clear xlat table 2018-06-29 11:32:55 +09:00
in.h
in6.h ipv6: Add sockopt IPV6_MULTICAST_ALL analogue to IP_MULTICAST_ALL 2018-09-13 08:17:27 -07:00
in_route.h
inet_diag.h
inotify.h inotify: Add flag IN_MASK_CREATE for inotify_add_watch() 2018-06-27 19:21:25 +02:00
input-event-codes.h
input.h input: add MT_TOOL_DIAL 2018-07-17 15:33:47 +02:00
ioctl.h
ip.h route: add support for directed broadcast forwarding 2018-07-29 12:37:06 -07:00
ip6_tunnel.h
ip_vs.h
ipc.h
ipmi.h
ipmi_bmc.h
ipmi_msgdefs.h
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irqnr.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h Input: stop telling users to snail-mail Vojtech 2018-07-26 17:04:37 -07:00
Kbuild
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h mm: mark pages in use for page tables 2018-06-07 17:34:37 -07:00
kernel.h
kernelcapi.h
kexec.h
keyboard.h kbd: complete dead keys definitions 2018-07-07 17:41:38 +02:00
keyctl.h Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name" 2018-09-25 13:28:58 +02:00
kfd_ioctl.h drm/amd: Add CU-masking ioctl definition to kfd_ioctl.h 2018-07-14 19:05:58 -04:00
kvm.h KVM: x86: Control guest reads of MSR_PLATFORM_INFO 2018-09-20 00:51:46 +02:00
kvm_para.h KVM: X86: Implement PV IPIs in linux guest 2018-08-06 17:59:22 +02:00
l2tp.h l2tp: ignore L2TP_ATTR_MTU 2018-08-03 10:03:57 -07:00
libc-compat.h
lightnvm.h
limits.h
lirc.h
llc.h
loop.h
lp.h
lwtunnel.h
magic.h
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h
media-bus-format.h media: v4l: Add new 2X8 10-bit grayscale media bus code 2018-08-02 06:04:57 -04:00
media.h media: media.h: remove linux/version.h include 2018-07-27 07:52:39 -04:00
mei.h
membarrier.h
memfd.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h net: phy: add GBit master / slave error detection 2018-07-24 14:41:08 -07:00
minix_fs.h
mman.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
mmtimer.h
module.h
mpls.h
mpls_iptunnel.h
mqueue.h
mroute.h net: ipmr: add support for passing full packet on wrong vif 2018-07-13 14:21:16 -07:00
mroute6.h
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h nbd: Add the nbd NBD_DISCONNECT_ON_CLOSE config flag. 2018-06-20 19:10:06 -06:00
ncsi.h net/ncsi: Extend NC-SI Netlink interface to allow user space to send NC-SI command 2018-10-15 22:00:59 -07:00
ndctl.h
neighbour.h net: bridge: add support for sticky fdb entries 2018-09-12 20:30:03 -07:00
net.h
net_dropmon.h
net_namespace.h
net_tstamp.h net: Use __u32 in uapi net_stamp.h 2018-07-09 16:31:28 -07:00
netconf.h route: add support for directed broadcast forwarding 2018-07-29 12:37:06 -07:00
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h netfilter: bridge: Expose nf_tables bridge hook priorities through uapi 2018-08-03 21:15:09 +02:00
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink: Add new socket option to enable strict checking on dumps 2018-10-08 10:39:04 -07:00
netlink_diag.h
netrom.h
nfc.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nl80211.h nl80211: Add per peer statistics to compute FCS error rate 2018-10-12 12:56:34 +02:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: kernel datapath clone action 2018-07-08 11:13:25 +09:00
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h Merge branch 'pci/virtualization' 2018-08-15 14:59:06 -05:00
pcitest.h pci_endpoint_test: Add 2 ioctl commands 2018-07-19 11:46:57 +01:00
perf_event.h perf/UAPI: Clearly mark __PERF_SAMPLE_CALLCHAIN_EARLY as internal use 2018-09-10 10:03:02 +02:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net: sched: cls_flower: dump offload count value 2018-09-10 10:35:15 -07:00
pkt_sched.h tc: Add support for configuring the taprio scheduler 2018-10-04 13:52:23 -07:00
pktcdvd.h
pmu.h macintosh/via-pmu: Replace via-pmu68k driver with via-pmu driver 2018-07-31 19:56:42 +10:00
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h l2tp: remove pppol2tp_session_ioctl() 2018-08-11 12:13:49 -07:00
ppp_defs.h
pps.h
pr.h
prctl.h docs: Fix some broken references 2018-06-15 18:10:01 -03:00
psample.h
psci.h
psp-sev.h
ptp_clock.h
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
raw.h
rds.h uapi: Fix linux/rds.h userspace compilation errors. 2018-09-02 16:14:44 -07:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
romfs_fs.h
rose.h
route.h
rpmsg.h rpmsg: char: Switch to SPDX license identifier 2018-06-03 17:37:16 -07:00
rseq.h rseq: uapi: Declare rseq_cs field as union, update includes 2018-07-10 22:18:52 +02:00
rtc.h
rtnetlink.h net: sched: introduce chain object to uapi 2018-07-23 20:44:12 -07:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: add spp_ipv6_flowlabel and spp_dscp for sctp_paddrparams 2018-07-04 11:36:54 +09:00
sdla.h
seccomp.h
securebits.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selinux_netlink.h
sem.h
serial.h
serial_core.h
serial_reg.h
serio.h
shm.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
signal.h
signalfd.h
smc.h
smc_diag.h net/smc: retain old name for diag_mode field 2018-10-07 21:06:28 -07:00
smiapp.h
snmp.h ip: discard IPv4 datagrams with overlapping segments. 2018-08-05 17:16:46 -07:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h ipv6: Add icmp_echo_ignore_all support for ICMPv6 2018-08-13 08:42:25 -07:00
sysinfo.h
target_core_user.h scsi: target: tcmu: add read length support 2018-06-18 21:02:52 -04:00
taskstats.h
tcp.h tcp: add stat of data packet reordering events 2018-08-01 09:56:10 -07:00
tcp_metrics.h
tee.h
termios.h
thermal.h
time.h time: Introduce struct __kernel_itimerspec 2018-06-24 14:39:46 +02:00
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
tipc_netlink.h tipc: extend sock diag for group communication 2018-06-30 21:05:42 +09:00
tipc_sockets_diag.h
tls.h
toshiba.h
tty.h
tty_flags.h
types.h
udf_fs_i.h
udp.h rxrpc: Use the UDP encap_rcv hook 2018-10-08 15:45:18 +01:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h media: uvcvideo: Send a control event when a Control Change interrupt arrives 2018-07-27 06:39:57 -04:00
v4l2-common.h
v4l2-controls.h media: v4l2-ctrl: Add control for VP9 profile 2018-07-04 09:32:22 -04:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h media: v4l: Add support for STD ioctls on subdev nodes 2018-07-24 17:39:28 -04:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
veth.h
vfio.h
vfio_ccw.h
vhost.h vhost: fix VHOST_GET_BACKEND_FEATURES ioctl request definition 2018-09-03 21:23:24 -07:00
videodev2.h media: v4l: Add new 10-bit packed grayscale format 2018-08-02 06:07:05 -04:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h virtio: update the comments for transport features 2018-06-12 04:59:29 +03:00
virtio_console.h
virtio_crypto.h
virtio_gpu.h
virtio_ids.h
virtio_input.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_ring.h
virtio_rng.h
virtio_scsi.h
virtio_types.h
virtio_vsock.h
vm_sockets.h
vm_sockets_diag.h
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
wanrouter.h
watchdog.h
wimax.h
wireless.h
wmi.h
x25.h
xattr.h
xfrm.h xfrm: Add a new lookup key to match xfrm interfaces. 2018-06-23 16:07:15 +02:00
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h