linux-uconsole/include/uapi/linux
Lawrence Brakmo 40304b2a15 bpf: BPF support for sock_ops
Created a new BPF program type, BPF_PROG_TYPE_SOCK_OPS, and a corresponding
struct that allows BPF programs of this type to access some of the
socket's fields (such as IP addresses, ports, etc.). It uses the
existing bpf cgroups infrastructure so the programs can be attached per
cgroup with full inheritance support. The program will be called at
appropriate times to set relevant connections parameters such as buffer
sizes, SYN and SYN-ACK RTOs, etc., based on connection information such
as IP addresses, port numbers, etc.

Alghough there are already 3 mechanisms to set parameters (sysctls,
route metrics and setsockopts), this new mechanism provides some
distinct advantages. Unlike sysctls, it can set parameters per
connection. In contrast to route metrics, it can also use port numbers
and information provided by a user level program. In addition, it could
set parameters probabilistically for evaluation purposes (i.e. do
something different on 10% of the flows and compare results with the
other 90% of the flows). Also, in cases where IPv6 addresses contain
geographic information, the rules to make changes based on the distance
(or RTT) between the hosts are much easier than route metric rules and
can be global. Finally, unlike setsockopt, it oes not require
application changes and it can be updated easily at any time.

Although the bpf cgroup framework already contains a sock related
program type (BPF_PROG_TYPE_CGROUP_SOCK), I created the new type
(BPF_PROG_TYPE_SOCK_OPS) beccause the existing type expects to be called
only once during the connections's lifetime. In contrast, the new
program type will be called multiple times from different places in the
network stack code.  For example, before sending SYN and SYN-ACKs to set
an appropriate timeout, when the connection is established to set
congestion control, etc. As a result it has "op" field to specify the
type of operation requested.

The purpose of this new program type is to simplify setting connection
parameters, such as buffer sizes, TCP's SYN RTO, etc. For example, it is
easy to use facebook's internal IPv6 addresses to determine if both hosts
of a connection are in the same datacenter. Therefore, it is easy to
write a BPF program to choose a small SYN RTO value when both hosts are
in the same datacenter.

This patch only contains the framework to support the new BPF program
type, following patches add the functionality to set various connection
parameters.

This patch defines a new BPF program type: BPF_PROG_TYPE_SOCKET_OPS
and a new bpf syscall command to load a new program of this type:
BPF_PROG_LOAD_SOCKET_OPS.

Two new corresponding structs (one for the kernel one for the user/BPF
program):

/* kernel version */
struct bpf_sock_ops_kern {
        struct sock *sk;
        __u32  op;
        union {
                __u32 reply;
                __u32 replylong[4];
        };
};

/* user version
 * Some fields are in network byte order reflecting the sock struct
 * Use the bpf_ntohl helper macro in samples/bpf/bpf_endian.h to
 * convert them to host byte order.
 */
struct bpf_sock_ops {
        __u32 op;
        union {
                __u32 reply;
                __u32 replylong[4];
        };
        __u32 family;
        __u32 remote_ip4;     /* In network byte order */
        __u32 local_ip4;      /* In network byte order */
        __u32 remote_ip6[4];  /* In network byte order */
        __u32 local_ip6[4];   /* In network byte order */
        __u32 remote_port;    /* In network byte order */
        __u32 local_port;     /* In host byte horder */
};

Currently there are two types of ops. The first type expects the BPF
program to return a value which is then used by the caller (or a
negative value to indicate the operation is not supported). The second
type expects state changes to be done by the BPF program, for example
through a setsockopt BPF helper function, and they ignore the return
value.

The reply fields of the bpf_sockt_ops struct are there in case a bpf
program needs to return a value larger than an integer.

Signed-off-by: Lawrence Brakmo <brakmo@fb.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-07-01 16:15:13 -07:00
..
android uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
byteorder uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
caif uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
can uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
cifs
dvb uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
genwqe
hdlc uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
hsi uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
iio uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
isdn uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
mmc uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
netfilter uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
netfilter_arp uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
netfilter_bridge uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
netfilter_ipv4 uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
netfilter_ipv6 uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
nfsd Kbuild UAPI header export updates for v4.12 2017-05-10 20:45:36 -07:00
raid uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
sched sched/headers: Move various ABI definitions to <uapi/linux/sched/types.h> 2017-03-02 08:42:42 +01:00
spi uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
sunrpc uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
tc_act bpf: expose prog id for cls_bpf and act_bpf 2017-06-21 15:14:23 -04:00
tc_ematch uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
usb USB: hub: fix SS max number of ports 2017-05-17 11:53:02 +02:00
wimax uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
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 aspeed-lpc-ctrl: include linux/types.h for uapi header 2017-04-08 17:37:20 +02:00
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h Revert "include/uapi/linux/atm_zatm.h: include linux/time.h" 2016-11-13 12:35:13 -05:00
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 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit 2017-02-21 13:25:50 -08:00
auto_dev-ioctl.h autofs: remove duplicated AUTOFS_DEV_IOCTL_SIZE definition 2017-02-27 18:43:45 -08:00
auto_fs.h autofs: add command enum/macros for root-dir ioctls 2017-02-27 18:43:45 -08:00
auto_fs4.h autofs: add command enum/macros for root-dir ioctls 2017-02-27 18:43:45 -08:00
auxvec.h
ax25.h
b1lli.h
batman_adv.h batman-adv: update copyright years for 2017 2017-01-26 08:34:19 +01:00
baycom.h
bcache.h uapi: includes linux/types.h before exporting files 2017-05-11 00:18:38 +09:00
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h blk-zoned: implement ioctls 2016-10-18 10:05:42 -06:00
bpf.h bpf: BPF support for sock_ops 2017-07-01 16:15:13 -07:00
bpf_common.h
bpf_perf_event.h bpf: introduce BPF_PROG_TYPE_PERF_EVENT program type 2016-09-02 10:46:44 -07:00
bpqether.h net: bpqether.h: remove if_ether.h guard 2016-11-13 00:57:53 -05:00
bsg.h
bt-bmc.h ipmi: add an Aspeed BT IPMI BMC driver 2016-09-29 19:05:06 -05:00
btrfs.h Btrfs: consistent usage of types in balance_args 2017-04-18 14:07:25 +02:00
btrfs_tree.h btrfs_tree.h: fix include from userland 2017-05-11 00:18:38 +09:00
can.h can: raw: raw_setsockopt: limit number of can_filter that can be set 2016-12-07 10:45:57 +01:00
capability.h usb: fix some references for /proc/bus/usb 2017-04-18 16:54:19 +02:00
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h [media] cec: fix report_current_latency 2016-12-21 06:59:13 -02:00
cec.h [media] cec.h: small typo fix 2017-03-03 07:24:00 -03: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 coresight: stm: adding driver for CoreSight STM component 2016-05-03 14:59:30 -07:00
cramfs_fs.h
cryptouser.h uapi: includes linux/types.h before exporting files 2017-05-11 00:18:38 +09:00
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h net/devlink: Add E-Switch encapsulation control 2017-04-22 20:26:37 +03:00
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm: add infrastructure for DAX support 2016-07-20 23:49:49 -04:00
dm-log-userspace.h uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 from linux/types.h 2016-11-21 09:52:02 -05:00
dma-buf.h dma-buf: Add ioctls to allow userspace to flush 2016-02-12 16:01:32 +01:00
dn.h
dqblk_xfs.h quota: add new quotactl Q_XGETNEXTQUOTA 2016-02-08 11:21:50 +11:00
edd.h
efs_fs_sb.h
elf-em.h avr32: remove support for AVR32 architecture 2017-05-01 09:27:15 +02:00
elf-fdpic.h
elf.h ARC updates for 4.12 2017-05-09 10:10:15 -07:00
elfcore.h
errno.h
errqueue.h
ethtool.h ethtool.h: remind to update 802.3ad when adding new speeds 2017-06-08 16:05:41 -04:00
eventpoll.h eventpoll.h: add missing epoll event masks 2017-03-14 09:47:33 +08:00
fadvise.h
falloc.h vfs: add a FALLOC_FL_UNSHARE mode to fallocate to unshare a range of blocks 2016-10-03 09:11:14 -07:00
fanotify.h
fb.h
fcntl.h statx: Add a system call to make enhanced file info available 2017-03-02 20:51:15 -05:00
fd.h
fdreg.h
fib_rules.h net: core: add UID to flows, rules, and routes 2016-11-04 14:45:23 -04:00
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
flat.h
fou.h
fs.h fscrypt: Remove __packed from fscrypt_policy 2017-04-30 01:26:34 -04:00
fsl_hypervisor.h
fsmap.h vfs: add common GETFSMAP ioctl definitions 2017-04-03 15:18:16 -07:00
fuse.h fuse: Add posix ACL support 2016-10-01 07:32:32 +02:00
futex.h
gameport.h
gen_stats.h sched: align nlattr properly when needed 2016-04-26 12:00:49 -04:00
genetlink.h genetlink: use idr to track families 2016-10-27 16:16:09 -04:00
gfs2_ondisk.h
gigaset_dev.h
gpio.h gpio: userspace ABI for reading GPIO line events 2016-06-15 09:29:17 +02:00
gsmmux.h
gtp.h gtp: rename SGSN netlink attribute 2017-03-25 20:11:19 -07:00
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h hw_breakpoint: Allow watchpoint of length 3,5,6 and 7 2016-11-18 17:23:17 +00:00
hyperv.h
hysdn_if.h
i2c-dev.h
i2c.h i2c: smbus: add SMBus Host Notify support 2016-06-17 13:24:05 +02:00
i2o-dev.h
i8k.h
icmp.h ipv6: RFC 4884 partial support for SIT/GRE tunnels 2016-06-18 22:11:39 -07:00
icmpv6.h
if.h uapi: fix linux/if.h userspace compilation errors 2017-02-22 16:09:04 -05:00
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h VSOCK: Add vsockmon tap functions 2017-04-24 12:35:56 -04:00
if_bonding.h
if_bridge.h bridge: uapi: add per vlan tunnel info 2017-02-03 15:21:21 -05:00
if_cablemodem.h
if_eql.h
if_ether.h RDMA: Adding ethertype ETH_P_IBOE 2017-01-10 14:05:11 -05:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h xdp: add reporting of offload mode 2017-06-23 13:42:20 -04:00
if_ltalk.h
if_macsec.h macsec: limit ICV length to 16 octets 2016-07-25 10:55:39 -07:00
if_packet.h packet: add PACKET_FANOUT_FLAG_UNIQUEID to assign new fanout group id. 2017-04-24 12:46:00 -04:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h net: l2tp: deprecate PPPOL2TP_MSG_* in favour of L2TP_MSG_* 2016-12-10 23:29:11 -05:00
if_pppox.h include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h 2016-08-22 16:25:15 -07:00
if_slip.h
if_team.h
if_tun.h
if_tunnel.h ip6_tunnel: Allow policy-based routing through tunnels 2017-04-21 13:21:30 -04:00
if_vlan.h
if_x25.h
ife.h net: Introduce ife encapsulation module 2017-02-03 15:16:45 -05:00
igmp.h bridge: sparse fixes in br_ip6_multicast_alloc_query() 2017-01-17 15:22:05 -05:00
ila.h ila: add checksum neutral ILA translations 2016-04-26 01:27:07 -04:00
in.h ipv4: add IP_RECVFRAGSIZE cmsg 2016-11-03 15:41:11 -04:00
in6.h ipv6: add IPV6_RECVFRAGSIZE cmsg 2016-11-03 15:41:11 -04:00
in_route.h
inet_diag.h net: ip, diag -- Add diag interface for raw sockets 2016-10-23 19:35:24 -04:00
inotify.h
input-event-codes.h HID: wacom: generic: add 3 tablet touch keys 2017-03-06 14:06:51 +01:00
input.h HID: sony: Report DS4 motion sensors through a separate device 2017-03-21 15:11:32 +01:00
ioctl.h
ip.h ipv4: add option to drop gratuitous ARP packets 2016-02-11 04:27:35 -05:00
ip6_tunnel.h uapi: fix linux/ip6_tunnel.h userspace compilation errors 2017-02-23 10:46:07 -05:00
ip_vs.h netfilter/ipvs: use nla_put_u64_64bit() 2016-04-25 15:09:11 -04:00
ipc.h
ipmi.h scripts/spelling.txt: add regsiter -> register spelling mistake 2017-05-08 17:15:13 -07:00
ipmi_msgdefs.h
ipsec.h
ipv6.h net: ipv6: Add sysctl for minimum prefix len acceptable in RIOs. 2017-03-22 14:20:54 -07:00
ipv6_route.h net: ipv6: RTF_PCPU should not be settable from userspace 2017-04-21 13:55:33 -04:00
ipx.h include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h 2016-08-22 16:25:15 -07:00
irda.h
irqnr.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild uapi: export all headers under uapi directories 2017-05-11 00:21:54 +09:00
kcm.h kcm: Kernel Connection Multiplexor module 2016-03-09 16:36:14 -05:00
kcmp.h
kcov.h kernel: add kcov code coverage 2016-03-22 15:36:02 -07:00
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h uapi: define DIV_ROUND_UP for userland 2016-03-04 16:10:36 -05:00
kernelcapi.h
kexec.h arm64/kexec: Add core kexec support 2016-06-27 16:31:25 +01:00
keyboard.h
keyctl.h KEYS: DH: add __user annotations to keyctl_kdf_params 2017-06-09 13:29:49 +10:00
kfd_ioctl.h
kvm.h KVM/ARM Changes for v4.12. 2017-04-27 17:33:14 +02:00
kvm_para.h KVM: x86: add KVM_HC_CLOCK_PAIRING hypercall 2017-02-07 18:16:45 +01:00
l2tp.h uapi: fix linux/if_pppol2tp.h userspace compilation errors 2017-02-14 22:18:05 -05:00
libc-compat.h include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h 2016-08-22 16:25:15 -07:00
lightnvm.h lightnvm: allow to init targets on factory mode 2017-04-16 10:06:25 -06:00
limits.h
lirc.h [media] lirc.h: remove several unused ioctls 2016-07-11 10:49:52 -03:00
llc.h uapi: fix linux/llc.h userspace compilation error 2017-02-23 10:46:08 -05:00
loop.h
lp.h
lwtunnel.h bpf: BPF for lightweight tunnel infrastructure 2016-12-02 10:51:49 -05:00
magic.h x86/intel_rdt: Add basic resctrl filesystem support 2016-10-30 19:10:14 -06:00
major.h docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
map_to_7segment.h
matroxfb.h
mdio.h
media-bus-format.h media: uapi: Add RGB and YUV bus formats for Synopsys HDMI TX Controller 2017-04-03 11:45:08 -04:00
media.h [media] v4l2-core: Add support for touch devices 2016-08-23 16:28:04 -03:00
mei.h
membarrier.h
memfd.h
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h net: Add mask for Control register 10Mbps speed 2016-08-12 16:57:20 -07:00
minix_fs.h
mman.h
mmtimer.h
module.h
mpls.h mpls: Packet stats 2017-01-17 14:38:43 -05:00
mpls_iptunnel.h mpls: allow TTL propagation from IP packets to be configured 2017-03-13 15:29:22 -07:00
mqueue.h uapi: mqueue.h: add missing linux/types.h include 2017-02-24 17:46:56 -08:00
mroute.h ipmr: add netlink notifications on igmpmsg cache reports 2017-06-21 11:22:52 -04:00
mroute6.h ip6mr: add netlink notifications on mrt6msg cache reports 2017-06-21 11:22:53 -04:00
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd-netlink.h nbd: add a status netlink command 2017-04-17 09:58:42 -06:00
nbd.h nbd: add a flag to destroy an nbd device on disconnect 2017-04-17 09:58:42 -06:00
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ndctl.h libnvdimm: handle locked label storage areas 2017-05-04 15:41:39 -07:00
neighbour.h net: bridge: Receive notification about successful FDB offload 2017-06-08 14:16:25 -04:00
net.h
net_dropmon.h
net_namespace.h
net_tstamp.h net: allow simultaneous SW and HW transmit timestamping 2017-05-21 13:37:32 -04:00
netconf.h net: mpls: Add support for netconf 2017-02-20 11:13:37 -05:00
netdevice.h
netfilter.h uapi: stop including linux/sysctl.h in uapi/linux/netfilter.h 2017-02-23 21:51:39 +01:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink: allow sending extended ACK with cookie on success 2017-04-13 13:58:21 -04:00
netlink_diag.h netlink/diag: report flags for netlink sockets 2017-04-05 07:13:56 -07:00
netrom.h
nfc.h
nfs.h
nfs2.h
nfs3.h
nfs4.h nfs: add a new NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK constant 2016-09-26 15:20:37 -04:00
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nilfs2_api.h nilfs2: move ioctl interface and disk layout to uapi separately 2016-08-02 19:35:21 -04:00
nilfs2_ondisk.h nilfs2: move ioctl interface and disk layout to uapi separately 2016-08-02 19:35:21 -04:00
nl80211.h nl80211: remove desciption about request from NL80211_CMD_ROAM 2017-06-13 11:05:04 +02:00
nsfs.h nsfs: Add an ioctl() to return owner UID of a userns 2017-02-03 14:35:43 +13:00
nubus.h nubus: Add MVC and VSC video card definitions 2017-04-20 09:54:24 +02:00
nvme_ioctl.h NVMe: Allow user initiated rescan 2016-05-17 17:14:21 -06:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: warn about missing first netlink attribute 2017-06-08 15:57:09 -04:00
packet_diag.h uapi: fix linux/packet_diag.h userspace compilation error 2017-03-09 13:22:28 -08:00
param.h
parport.h
patchkey.h
pci.h
pci_regs.h pci-v4.12-changes 2017-05-08 19:03:25 -07:00
pcitest.h misc: Add host side PCI driver for PCI test function device 2017-04-28 10:23:19 -05:00
perf_event.h powerpc updates for 4.12 part 1. 2017-05-05 11:36:44 -07:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h bpf: expose prog id for cls_bpf and act_bpf 2017-06-21 15:14:23 -04:00
pkt_sched.h mqprio: Change handling of hw u8 to allow for multiple hardware offload modes 2017-03-15 15:20:27 -07:00
pktcdvd.h
pmu.h
poll.h
posix_acl.h posix_acl: uapi header split 2016-09-27 21:52:00 -04:00
posix_acl_xattr.h posix_acl: uapi header split 2016-09-27 21:52:00 -04:00
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h
ppp_defs.h
pps.h pps: fix padding issue with PPS_FETCH for ioctl_compat 2017-03-17 15:10:49 +09:00
pr.h uapi: includes linux/types.h before exporting files 2017-05-11 00:18:38 +09:00
prctl.h
psample.h net: Introduce psample, a new genetlink channel for packet sampling 2017-01-24 13:44:28 -05:00
psci.h
ptp_clock.h ptp: Add PTP_SYS_OFFSET_PRECISE for driver crosstimestamping 2016-03-03 14:23:43 -08:00
ptrace.h
qnx4_fs.h
qnxtypes.h
qrtr.h uapi: includes linux/types.h before exporting files 2017-05-11 00:18:38 +09:00
quota.h fs/quota: use nla_put_u64_64bit() 2016-04-26 12:00:48 -04:00
radeonfb.h
random.h
raw.h
rds.h uapi: fix linux/rds.h userspace compilation errors 2017-02-23 10:55:08 -05:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h rfkill: Update userspace API documentation 2016-02-24 09:04:25 +01:00
rio_cm_cdev.h rapidio: add RapidIO channelized messaging driver 2016-08-02 19:35:31 -04:00
rio_mport_cdev.h rapidio/mport_cdev: fix uapi type definitions 2016-05-05 17:38:53 -07:00
romfs_fs.h
rose.h
route.h
rpmsg.h rpmsg: Driver for user space endpoint interface 2017-01-18 10:43:15 -08:00
rtc.h
rtnetlink.h rtnetlink: add restricted rtnl groups for ipv4 and ipv6 mroute 2017-06-21 11:22:52 -04:00
scc.h
sched.h sched: new clone flag CLONE_NEWCGROUP for cgroup namespace 2016-02-16 13:04:58 -05:00
scif_ioctl.h
screen_info.h
sctp.h sctp: Add peeloff-flags socket option 2017-07-01 15:26:11 -07:00
sdla.h
seccomp.h
securebits.h
sed-opal.h uapi: sed-opal fix IOW for activate lsp to use correct struct 2017-02-14 19:47:16 -07:00
seg6.h uapi: fix linux/seg6.h and linux/seg6_iptunnel.h userspace compilation errors 2017-02-23 10:55:08 -05:00
seg6_genl.h ipv6: sr: add code base for control plane support of SR-IPv6 2016-11-09 20:40:06 -05:00
seg6_hmac.h ipv6: sr: add missing Kbuild export for header files 2017-01-16 14:47:21 -05:00
seg6_iptunnel.h uapi: fix linux/seg6.h and linux/seg6_iptunnel.h userspace compilation errors 2017-02-23 10:55:08 -05:00
selinux_netlink.h
sem.h
serial.h
serial_core.h serial: 8250: Add new port type for TI DA8xx/66AK2x 2017-01-12 11:51:25 +01:00
serial_reg.h serial: exar: Move register defines from uapi header to consumer site 2017-02-10 15:13:26 +01:00
serio.h [media] serio.h: add SERIO_RAINSHADOW_CEC ID 2017-04-10 12:34:01 -03:00
shm.h
signal.h signals/sigaltstack: Change SS_AUTODISARM to (1U << 31) 2016-05-04 08:34:14 +02:00
signalfd.h
smc.h smc: establish pnet table management 2017-01-09 16:07:38 -05:00
smc_diag.h smc_diag.h: fix include from userland 2017-05-11 00:18:39 +09:00
smiapp.h
snmp.h tcp: add TCPMemoryPressuresChrono counter 2017-06-08 11:26:19 -04:00
sock_diag.h sock_diag: add SK_MEMINFO_DROPS 2016-04-04 22:11:20 -04:00
socket.h
sockios.h driver: tun: Use new macro SOCK_IOC_TYPE instead of literal number 0x89 2016-10-31 10:56:47 -04:00
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h uapi: change the type of struct statx_timestamp.tv_nsec to unsigned 2017-04-26 21:19:05 -04:00
stddef.h uapi/linux/stddef.h: Provide __always_inline to userspace headers 2016-03-30 12:50:17 +02:00
stm.h
string.h
suspend_ioctls.h
swab.h byteswap: try to avoid __builtin_constant_p gcc bug 2016-05-05 17:38:53 -07:00
switchtec_ioctl.h switchtec: Add IOCTLs to the Switchtec driver 2017-04-12 12:23:37 -05:00
sync_file.h dma-buf/sync_file: fix documentation error 2016-09-20 18:12:38 +05:30
synclink.h
sysctl.h net: Remove NET_CORE_BUDGET_USECS from sysctl binary interface. 2017-04-21 15:59:52 -04:00
sysinfo.h
target_core_user.h uapi: fix linux/target_core_user.h userspace compilation errors 2017-02-18 21:44:59 -08:00
taskstats.h
tcp.h tcp: md5: add TCP_MD5SIG_EXT socket option to set a key address prefix 2017-06-19 13:51:34 -04:00
tcp_metrics.h libnl: nla_put_msecs(): align on a 64-bit area 2016-04-23 20:13:24 -04:00
tee.h tee: generic TEE subsystem 2017-03-09 15:42:33 +01:00
telephony.h
termios.h
thermal.h
time.h
timerfd.h timerfd: export defines to userspace 2017-01-10 18:31:55 -08:00
times.h
timex.h
tiocl.h
tipc.h tipc: make replicast a user selectable option 2017-01-20 12:10:17 -05:00
tipc_config.h
tipc_netlink.h tipc: add the ability to get UDP options via netlink 2016-08-26 21:38:41 -07:00
tls.h tls: kernel TLS support 2017-06-15 12:12:40 -04:00
toshiba.h
tty.h
tty_flags.h tty: core: Undefine ASYNC_* flags superceded by TTY_PORT* flags 2016-04-30 09:26:55 -07:00
types.h linux/types.h: enable endian checks for all sparse builds 2016-12-16 00:13:39 +02:00
udf_fs_i.h
udp.h gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U) 2016-05-10 12:25:04 -04:00
uhid.h
uinput.h
uio.h
uleds.h leds: Introduce userspace LED class driver 2016-11-22 12:07:02 +01:00
ultrasound.h
un.h unix: add ioctl to open a unix socket file with O_PATH 2017-02-02 21:58:02 -05:00
unistd.h
unix_diag.h
usbdevice_fs.h usb: devio: Add ioctl to disallow detaching kernel USB drivers. 2016-03-05 12:05:01 -08:00
usbip.h
userfaultfd.h userfaultfd: non-cooperative: rollback userfaultfd_exit 2017-03-09 17:01:09 -08:00
userio.h
utime.h
utsname.h
uuid.h lib/uuid.c: remove FSF address 2016-05-20 17:58:30 -07:00
uvcvideo.h
v4l2-common.h
v4l2-controls.h [media] v4l: ctrls: Add deinterlacing mode control 2016-11-16 16:16:08 -02:00
v4l2-dv-timings.h [media] v4l2-dv-timings: add VICs and picture aspect ratio 2016-11-16 15:13:18 -02:00
v4l2-mediabus.h
v4l2-subdev.h
veth.h
vfio.h vfio: ccw: realize VFIO_DEVICE_G(S)ET_IRQ_INFO ioctls 2017-03-31 12:55:09 +02:00
vfio_ccw.h vfio: ccw: introduce ccw_io_region 2017-03-31 12:55:06 +02:00
vhost.h vhost: remove unused feature bit 2016-12-16 00:13:38 +02:00
videodev2.h [media] videodev.h: add V4L2_CTRL_FLAG_MODIFY_LAYOUT 2017-04-14 22:54:01 -03:00
virtio_9p.h
virtio_balloon.h virtio_balloon: export 'available' memory to balloon statistics 2016-03-17 15:09:34 -07:00
virtio_blk.h virtio_blk: VIRTIO_BLK_F_WCE->VIRTIO_BLK_F_FLUSH 2016-03-02 17:01:59 +02:00
virtio_config.h virtio: new feature to detect IOMMU device quirk 2016-08-01 21:44:52 +03:00
virtio_console.h
virtio_crypto.h crypto: add virtio-crypto driver 2016-12-16 00:13:32 +02:00
virtio_gpu.h
virtio_ids.h crypto: add virtio-crypto driver 2016-12-16 00:13:32 +02:00
virtio_input.h
virtio_mmio.h virtio_mmio: expose header to userspace 2017-02-27 16:31:23 +02:00
virtio_net.h virtio_net: add _UAPI prefix to virtio_net header guards 2016-06-10 23:03:55 -07:00
virtio_pci.h Revert "virtio_pci: don't duplicate the msix_enable flag in struct pci_dev" 2017-04-11 00:28:41 +03:00
virtio_ring.h
virtio_rng.h
virtio_scsi.h
virtio_types.h linux: drop __bitwise__ everywhere 2016-12-16 00:13:41 +02:00
virtio_vsock.h virtio-vsock: fix include guard typo 2016-08-09 13:42:38 +03:00
vm_sockets.h
vsockmon.h VSOCK: Add vsockmon device 2017-04-24 12:35:56 -04:00
vt.h tty: vt, remove reduntant check 2016-04-30 09:26:55 -07:00
vtpm_proxy.h tpm, tpm_vtpm_proxy: add kdoc comments for VTPM_PROXY_IOC_NEW_DEV 2016-11-28 01:31:31 +02:00
wait.h
wanrouter.h
watchdog.h
wimax.h
wireless.h wext: reformat struct/union declarations 2016-06-09 10:14:39 +02:00
x25.h
xattr.h
xfrm.h xfrm: Add an IPsec hardware offloading API 2017-04-14 10:06:10 +02:00
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h