linux-xiaomi-chiron/include/uapi/linux
Jakub Kicinski a38845729e bpf: offload: add map offload infrastructure
BPF map offload follow similar path to program offload.  At creation
time users may specify ifindex of the device on which they want to
create the map.  Map will be validated by the kernel's
.map_alloc_check callback and device driver will be called for the
actual allocation.  Map will have an empty set of operations
associated with it (save for alloc and free callbacks).  The real
device callbacks are kept in map->offload->dev_ops because they
have slightly different signatures.  Map operations are called in
process context so the driver may communicate with HW freely,
msleep(), wait() etc.

Map alloc and free callbacks are muxed via existing .ndo_bpf, and
are always called with rtnl lock held.  Maps and programs are
guaranteed to be destroyed before .ndo_uninit (i.e. before
unregister_netdev() returns).  Map callbacks are invoked with
bpf_devs_lock *read* locked, drivers must take care of exclusive
locking if necessary.

All offload-specific branches are marked with unlikely() (through
bpf_map_is_dev_bound()), given that branch penalty will be
negligible compared to IO anyway, and we don't want to penalize
SW path unnecessarily.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-01-14 23:36:30 +01:00
..
android
byteorder
caif
can
cifs
dvb media updates for v4.15-rc1 2017-11-15 20:30:12 -08:00
genwqe
hdlc
hsi
iio
isdn
mmc
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
tc_act Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
tc_ematch
usb USB: core: Add type-specific length check of BOS descriptors 2017-11-28 15:17:49 +01:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
apm_bios.h
arcfb.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 audit/stable-4.15 PR 20171113 2017-11-15 13:28:48 -08:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
b1lli.h
batadv_packet.h batman-adv: Convert packet.h to uapi header 2017-12-21 15:35:53 -05:00
batman_adv.h batman-adv: Change batman_adv.h license to MIT 2017-12-15 17:24:09 +01:00
baycom.h
bcache.h bcache: Fix building error on MIPS 2017-11-24 16:22:58 -07:00
bcm933xx_hcs.h
bfs_fs.h Rename superblock flags (MS_xyz -> SB_xyz) 2017-11-27 13:05:09 -08:00
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h
bpf.h bpf: offload: add map offload infrastructure 2018-01-14 23:36:30 +01:00
bpf_common.h
bpf_perf_event.h bpf: correct broken uapi for BPF_PROG_TYPE_PERF_EVENT program type 2017-12-05 15:02:40 +01:00
bpqether.h
bsg.h
bt-bmc.h
btrfs.h Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux 2017-11-14 13:35:29 -08:00
btrfs_tree.h Merge branch 'for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux 2017-11-14 13:35:29 -08:00
can.h
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h
cec.h media updates for v4.15-rc1 2017-11-15 20:30:12 -08: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 Merge branch 'work.cramfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-11-17 13:20:41 -08:00
cryptouser.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h net/dcb: Add dscp to priority selector type 2017-11-04 21:23:32 -07:00
dccp.h
devlink.h
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
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
elfcore.h
errno.h
errqueue.h
ethtool.h net: ethtool: add support for reset of AP inside NIC interface. 2017-12-01 15:29:40 -05:00
eventpoll.h
fadvise.h
falloc.h
fanotify.h Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs 2017-11-14 14:13:11 -08:00
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
fs.h
fsl_hypervisor.h
fsmap.h
fuse.h
futex.h
gameport.h
gen_stats.h
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_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_eql.h
if_ether.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h net/core: Add drop counters to VF statistics 2018-01-09 07:40:48 +02:00
if_ltalk.h
if_macsec.h macsec: Add support for GCM-AES-256 cipher suite 2018-01-09 11:34:18 -05:00
if_packet.h
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h tun: add eBPF based queue selection method 2017-12-05 12:01:49 -05:00
if_tunnel.h net: erspan: introduce erspan v2 for ip_gre 2017-12-15 12:34:00 -05:00
if_vlan.h
if_x25.h
ife.h
igmp.h
ila.h ila: Add a hook type for LWT routes 2017-11-08 11:20:49 +09:00
in.h
in6.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
in_route.h
inet_diag.h inet_diag: Add equal-operator for ports 2018-01-02 13:54:04 -05:00
inotify.h
input-event-codes.h Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2017-11-15 09:43:57 -08:00
input.h
ioctl.h
ip.h
ip6_tunnel.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
ip_vs.h
ipc.h
ipmi.h
ipmi_msgdefs.h
ipsec.h
ipv6.h net: ipv6: sysctl to specify IPv6 ND traffic class 2017-11-11 15:13:02 +09:00
ipv6_route.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
ipx.h
irda.h
irqnr.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
iso_fs.h Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs 2017-11-14 14:13:11 -08:00
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild
kcm.h
kcmp.h
kcov.h kcov: support comparison operands collection 2017-11-17 16:10:04 -08:00
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h
kfd_ioctl.h uapi: fix linux/kfd_ioctl.h userspace compilation errors 2017-11-26 11:31:32 +02:00
kvm.h KVM: s390: mark irq_state.flags as non-usable 2017-12-06 09:18:43 +01:00
kvm_para.h
l2tp.h l2tp: adjust comments about L2TPv3 offsets 2018-01-08 14:22:42 -05:00
libc-compat.h uapi/if_ether.h: prevent redefinition of struct ethhdr 2018-01-04 14:30:52 -05:00
lightnvm.h
limits.h
lirc.h
llc.h
loop.h
lp.h
lwtunnel.h
magic.h afs: Lay the groundwork for supporting network namespaces 2017-11-13 15:38:16 +00:00
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h
media-bus-format.h
media.h
mei.h
membarrier.h
memfd.h
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mpls.h
mpls_iptunnel.h
mqueue.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ndctl.h
neighbour.h
net.h
net_dropmon.h
net_namespace.h
net_tstamp.h
netconf.h
netdevice.h
netfilter.h
netfilter_arp.h netfilter: add defines for arp/decnet max hooks 2018-01-08 18:01:08 +01:00
netfilter_bridge.h
netfilter_decnet.h netfilter: add defines for arp/decnet max hooks 2018-01-08 18:01:08 +01:00
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netlink_diag.h
netrom.h
nfc.h NFC: Add NFC_CMD_DEACTIVATE_TARGET support 2017-11-10 00:03:39 +01:00
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 cfg80211: Scan results to also report the per chain signal strength 2017-12-19 10:37:31 +01:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: Add meter action support 2017-11-13 10:37:07 +09:00
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h pci-v4.15-changes 2017-11-15 15:01:28 -08:00
pcitest.h
perf_event.h bpf/tracing: allow user space to query prog array on the same tp 2017-12-12 08:46:40 -08:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h
pkt_sched.h pkt_sched: Remove TC_RED_OFFLOADED from uapi 2017-12-15 13:35:37 -05:00
pktcdvd.h
pmu.h
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h
ppp_defs.h
pps.h
pr.h
prctl.h arm64 updates for 4.15 2017-11-15 10:56:56 -08:00
psample.h
psci.h
ptp_clock.h
ptrace.h
qnx4_fs.h
qnxtypes.h
qrtr.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
quota.h
radeonfb.h
random.h
raw.h
rds.h
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
rtc.h
rtnetlink.h net: sched: Add TCA_HW_OFFLOAD 2017-12-15 13:35:36 -05:00
rxrpc.h rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: implement abort_pd for sctp_stream_interleave 2017-12-11 11:23:05 -05:00
sdla.h
seccomp.h
securebits.h
sed-opal.h
seg6.h ipv6: sr: update the struct ipv6_sr_hdr 2017-11-16 10:49:00 +09:00
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 TTY/Serial patches for 4.15-rc1 2017-11-13 21:05:31 -08:00
serio.h
shm.h
signal.h
signalfd.h
smc.h
smc_diag.h
smiapp.h
snmp.h tcp: retire FACK loss detection 2017-11-11 18:53:16 +09:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h
sysinfo.h
target_core_user.h
taskstats.h
tcp.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
tcp_metrics.h
tee.h
telephony.h
termios.h
thermal.h
time.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h tipc: improve groupcast scope handling 2018-01-09 12:35:58 -05:00
tipc_config.h
tipc_netlink.h
tls.h uapi: fix linux/tls.h userspace compilation error 2017-11-15 13:54:18 +09:00
toshiba.h
tty.h
tty_flags.h
types.h
udf_fs_i.h
udp.h
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
v4l2-common.h
v4l2-controls.h
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h
veth.h
vfio.h
vfio_ccw.h
vhost.h
videodev2.h
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_gpu.h
virtio_ids.h
virtio_input.h
virtio_mmio.h
virtio_net.h virtio_net: propagate linkspeed/duplex settings from the hypervisor 2018-01-09 11:37:56 -05:00
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 uapi: add SPDX identifier to vm_sockets_diag.h 2017-11-26 04:24:48 +09:00
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
wanrouter.h
watchdog.h
wimax.h
wireless.h
wmi.h platform/x86: dell-smbios-wmi: introduce userspace interface 2017-11-03 16:34:00 -07:00
x25.h
xattr.h Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2017-11-13 10:41:25 -08:00
xfrm.h
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h