linux/include/uapi/linux
Neal Cardwell 0f8782ea14 tcp_bbr: add BBR congestion control
This commit implements a new TCP congestion control algorithm: BBR
(Bottleneck Bandwidth and RTT). A detailed description of BBR will be
published in ACM Queue, Vol. 14 No. 5, September-October 2016, as
"BBR: Congestion-Based Congestion Control".

BBR has significantly increased throughput and reduced latency for
connections on Google's internal backbone networks and google.com and
YouTube Web servers.

BBR requires only changes on the sender side, not in the network or
the receiver side. Thus it can be incrementally deployed on today's
Internet, or in datacenters.

The Internet has predominantly used loss-based congestion control
(largely Reno or CUBIC) since the 1980s, relying on packet loss as the
signal to slow down. While this worked well for many years, loss-based
congestion control is unfortunately out-dated in today's networks. On
today's Internet, loss-based congestion control causes the infamous
bufferbloat problem, often causing seconds of needless queuing delay,
since it fills the bloated buffers in many last-mile links. On today's
high-speed long-haul links using commodity switches with shallow
buffers, loss-based congestion control has abysmal throughput because
it over-reacts to losses caused by transient traffic bursts.

In 1981 Kleinrock and Gale showed that the optimal operating point for
a network maximizes delivered bandwidth while minimizing delay and
loss, not only for single connections but for the network as a
whole. Finding that optimal operating point has been elusive, since
any single network measurement is ambiguous: network measurements are
the result of both bandwidth and propagation delay, and those two
cannot be measured simultaneously.

While it is impossible to disambiguate any single bandwidth or RTT
measurement, a connection's behavior over time tells a clearer
story. BBR uses a measurement strategy designed to resolve this
ambiguity. It combines these measurements with a robust servo loop
using recent control systems advances to implement a distributed
congestion control algorithm that reacts to actual congestion, not
packet loss or transient queue delay, and is designed to converge with
high probability to a point near the optimal operating point.

In a nutshell, BBR creates an explicit model of the network pipe by
sequentially probing the bottleneck bandwidth and RTT. On the arrival
of each ACK, BBR derives the current delivery rate of the last round
trip, and feeds it through a windowed max-filter to estimate the
bottleneck bandwidth. Conversely it uses a windowed min-filter to
estimate the round trip propagation delay. The max-filtered bandwidth
and min-filtered RTT estimates form BBR's model of the network pipe.

Using its model, BBR sets control parameters to govern sending
behavior. The primary control is the pacing rate: BBR applies a gain
multiplier to transmit faster or slower than the observed bottleneck
bandwidth. The conventional congestion window (cwnd) is now the
secondary control; the cwnd is set to a small multiple of the
estimated BDP (bandwidth-delay product) in order to allow full
utilization and bandwidth probing while bounding the potential amount
of queue at the bottleneck.

When a BBR connection starts, it enters STARTUP mode and applies a
high gain to perform an exponential search to quickly probe the
bottleneck bandwidth (doubling its sending rate each round trip, like
slow start). However, instead of continuing until it fills up the
buffer (i.e. a loss), or until delay or ACK spacing reaches some
threshold (like Hystart), it uses its model of the pipe to estimate
when that pipe is full: it estimates the pipe is full when it notices
the estimated bandwidth has stopped growing. At that point it exits
STARTUP and enters DRAIN mode, where it reduces its pacing rate to
drain the queue it estimates it has created.

Then BBR enters steady state. In steady state, PROBE_BW mode cycles
between first pacing faster to probe for more bandwidth, then pacing
slower to drain any queue that created if no more bandwidth was
available, and then cruising at the estimated bandwidth to utilize the
pipe without creating excess queue. Occasionally, on an as-needed
basis, it sends significantly slower to probe for RTT (PROBE_RTT
mode).

BBR has been fully deployed on Google's wide-area backbone networks
and we're experimenting with BBR on Google.com and YouTube on a global
scale.  Replacing CUBIC with BBR has resulted in significant
improvements in network latency and application (RPC, browser, and
video) metrics. For more details please refer to our upcoming ACM
Queue publication.

Example performance results, to illustrate the difference between BBR
and CUBIC:

Resilience to random loss (e.g. from shallow buffers):
  Consider a netperf TCP_STREAM test lasting 30 secs on an emulated
  path with a 10Gbps bottleneck, 100ms RTT, and 1% packet loss
  rate. CUBIC gets 3.27 Mbps, and BBR gets 9150 Mbps (2798x higher).

Low latency with the bloated buffers common in today's last-mile links:
  Consider a netperf TCP_STREAM test lasting 120 secs on an emulated
  path with a 10Mbps bottleneck, 40ms RTT, and 1000-packet bottleneck
  buffer. Both fully utilize the bottleneck bandwidth, but BBR
  achieves this with a median RTT 25x lower (43 ms instead of 1.09
  secs).

Our long-term goal is to improve the congestion control algorithms
used on the Internet. We are hopeful that BBR can help advance the
efforts toward this goal, and motivate the community to do further
research.

Test results, performance evaluations, feedback, and BBR-related
discussions are very welcome in the public e-mail list for BBR:

  https://groups.google.com/forum/#!forum/bbr-dev

NOTE: BBR *must* be used with the fq qdisc ("man tc-fq") with pacing
enabled, since pacing is integral to the BBR design and
implementation. BBR without pacing would not function properly, and
may incur unnecessary high packet loss rates.

Signed-off-by: Van Jacobson <vanj@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Nandita Dukkipati <nanditad@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-09-21 00:23:01 -04:00
..
android android: uapi: binder.h 2014-10-20 10:30:15 +08:00
byteorder include/uapi/linux/byteorder, swab: force inlining of some byteswap operations 2016-03-17 15:09:34 -07:00
caif
can can: bcm: add support for CAN FD frames 2016-06-17 15:39:46 +02:00
cifs cifs: Move and expand MAX_SERVER_SIZE definition 2013-09-08 14:34:22 -05:00
dvb [media] include/uapi/linux/dvb/video.h: remove stdint.h include 2015-11-19 08:18:38 -02:00
genwqe GenWQE: Update author information 2014-09-23 23:15:46 -07:00
hdlc
hsi HSI: cmt_speech: fix timestamp interface 2015-06-23 02:40:03 +02:00
iio iio: electricalconductivity: add IIO_ELECTRICALCONDUCTIVITY type 2016-05-29 20:03:21 +01:00
isdn
mmc mmc: block: Add new ioctl to send multi commands 2015-10-26 16:00:00 +01:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2016-09-06 12:45:26 -07:00
netfilter_arp netfilter: fix include files for compilation 2015-11-23 17:54:38 +01:00
netfilter_bridge netfilter: fix include files for compilation 2015-11-23 17:54:38 +01:00
netfilter_ipv4 netfilter: fix include files for compilation 2015-11-23 17:54:38 +01:00
netfilter_ipv6 netfilter: fix include files for compilation 2015-11-23 17:54:38 +01:00
nfsd nfsd: eliminate NFSD_DEBUG 2015-04-21 16:16:02 -04:00
raid drivers: md: use ktime_get_real_seconds() 2016-01-06 11:39:53 +11:00
spi spi: spidev: Add support for Dual/Quad SPI Transfers 2014-02-27 13:51:29 +09:00
sunrpc
tc_act net sched ife action: Introduce skb tcindex metadata encap decap 2016-09-19 21:55:28 -04:00
tc_ematch
usb USB: PD: additional feature selectors 2016-04-19 04:33:15 +09:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h include/uapi/linux/agpgart.h: include stdlib.h in userspace 2015-12-10 12:33:23 +01:00
aio_abi.h
am437x-vpfe.h [media] am437x: include linux/videodev2.h for expanding BASE_VIDIOC_PRIVATE 2015-04-02 18:10:35 -03:00
apm_bios.h apm-emulation: add hibernation APM events to support suspend2disk 2014-01-07 13:50:28 +01:00
arcfb.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h include/uapi/linux/atm_zatm.h: include linux/time.h 2016-08-22 16:25:15 -07:00
atm.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 netlabel: Initial support for the CALIPSO netlink protocol. 2016-06-27 15:02:46 -04:00
auto_fs.h autofs4: fix some white space errors 2016-03-15 16:55:16 -07:00
auto_fs4.h autofs4: fix some white space errors 2016-03-15 16:55:16 -07:00
auxvec.h
ax25.h
b1lli.h
batman_adv.h batman-adv: add backbone table netlink support 2016-08-09 07:54:43 +02:00
baycom.h
bcache.h bcache: Add bch_btree_keys_u64s_remaining() 2014-01-08 13:05:13 -08:00
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h mtd: provide proper 32/64-bit compat_ioctl() support for BLKPG 2015-09-29 13:37:04 -07:00
blktrace_api.h
bpf_common.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
bpf_perf_event.h bpf: introduce BPF_PROG_TYPE_PERF_EVENT program type 2016-09-02 10:46:44 -07:00
bpf.h bpf: direct packet write and access for helpers for clsact progs 2016-09-20 23:32:11 -04:00
bpqether.h
bsg.h block SG_IO: add SG_FLAG_Q_AT_HEAD flag 2014-07-01 10:48:05 -06:00
btrfs_tree.h btrfs: uapi/linux/btrfs_tree.h, use __u8 and __u64 2016-04-28 11:06:41 +02:00
btrfs.h Btrfs: use the correct struct for BTRFS_IOC_LOGICAL_INO 2016-07-26 13:52:25 +02:00
can.h can.h: make padding given by gcc explicit 2015-05-06 08:03:19 +02:00
capability.h uapi: move forward declarations of internal structures 2016-08-02 17:31:41 -04:00
capi.h isdn: capi: fix "CAPI_VERSION" comment 2014-03-20 14:55:18 +01:00
cciss_defs.h
cciss_ioctl.h
cdrom.h
cgroupstats.h
chio.h
cm4000_cs.h Omnikey Cardman 4000: pull in ioctl.h in user header 2013-08-28 19:26:38 -07:00
cn_proc.h
coda_psdev.h
coda.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 crypto: kpp - Key-agreement Protocol Primitives API (KPP) 2016-06-23 18:29:56 +08:00
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h dcb : Fix incorrect documentation for struct dcb_app 2015-06-23 07:00:41 -07:00
dccp.h
devlink.h net/devlink: Add E-Switch mode control 2016-07-02 14:40:40 -04:00
dlm_device.h dlm: fix lvb copy for user locks 2015-08-25 14:41:50 -05:00
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h dlm: adopt orphan locks 2014-11-19 14:48:02 -06:00
dm-ioctl.h dm: add infrastructure for DAX support 2016-07-20 23:49:49 -04:00
dm-log-userspace.h dm log userspace: allow mark requests to piggyback on flush requests 2014-01-21 23:46:27 -05:00
dma-buf.h dma-buf: Add ioctls to allow userspace to flush 2016-02-12 16:01:32 +01:00
dn.h include/uapi/linux/dn.h: pull in ioctl.h header 2014-01-23 16:36:55 -08:00
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 bpf, elf: add official ELF machine define for eBPF 2016-07-20 12:37:39 -07:00
elf-fdpic.h
elf.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
elfcore.h
errno.h
errqueue.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
ethtool.h net: ethtool: add support for 1000BaseX and missing 10G link modes 2016-08-29 00:27:34 -04:00
eventpoll.h epoll: add EPOLLEXCLUSIVE flag 2016-01-20 17:09:18 -08:00
fadvise.h
falloc.h fs: Add support FALLOC_FL_INSERT_RANGE for fallocate 2015-03-25 15:07:05 +11:00
fanotify.h
fb.h
fcntl.h shm: add sealing API 2014-08-08 15:57:31 -07:00
fd.h floppy: bail out in open() if drive is not responding to block0 read 2014-01-17 11:12:06 +01:00
fdreg.h
fib_rules.h net: Add l3mdev rule 2016-06-08 11:36:02 -07:00
fiemap.h ext4: add support for extent pre-caching 2013-08-16 22:05:14 -04:00
filter.h bpf: fix bpf helpers to use skb->mac_header relative offsets 2015-04-16 14:08:49 -04:00
firewire-cdev.h
firewire-constants.h
flat.h
fou.h fou: implement FOU_CMD_GET 2015-04-12 21:25:13 -04:00
fs.h libnvdimm for 4.7 2016-05-23 11:18:01 -07:00
fsl_hypervisor.h
fuse.h fuse: serialize dirops by default 2016-06-30 13:10:49 +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 openvswitch: allow management from inside user namespaces 2016-02-11 09:53:19 -05:00
gfs2_ondisk.h gfs2: change gfs2 readdir cookie 2015-12-14 12:19:37 -06:00
gigaset_dev.h
gpio.h gpio: userspace ABI for reading GPIO line events 2016-06-15 09:29:17 +02:00
gsmmux.h tty: linux/gsmmux.h needs linux/types.h 2015-07-23 17:48:43 -07:00
gtp.h gtp: #define _UAPI_LINUX_GTP_H_ and not _UAPI_LINUX_GTP_H__ 2016-06-07 16:25:49 -07:00
hash_info.h keys, trusted: select hash algorithm for TPM2 chips 2015-12-20 15:27:12 +02:00
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0) 2013-11-03 23:20:14 -05:00
hw_breakpoint.h
hyperv.h tools: hv: report ENOSPC errors in hv_fcopy_daemon 2015-12-14 19:12:21 -08:00
hysdn_if.h
i2c-dev.h i2c-dev: Fix typo in ioctl name reference 2015-10-23 23:26:43 +02:00
i2c.h i2c: smbus: add SMBus Host Notify support 2016-06-17 13:24:05 +02:00
i2o-dev.h
i8k.h i8k: uapi: Introduce define for new highest fan speed 2014-07-09 16:41:36 -07:00
icmp.h ipv6: RFC 4884 partial support for SIT/GRE tunnels 2016-06-18 22:11:39 -07:00
icmpv6.h ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO 2013-09-03 22:11:44 -04:00
if_addr.h ipv6: introduce IFA_F_STABLE_PRIVACY flag 2015-03-23 22:12:09 -04:00
if_addrlabel.h
if_alg.h crypto: af_alg - add user space interface for AEAD 2014-12-05 23:56:55 +08:00
if_arcnet.h arcnet: fix indentation of if_arcnet.h 2015-09-23 08:44:22 +02:00
if_arp.h net: if_arp: add ARPHRD_6LOWPAN type 2013-12-11 12:57:55 -08:00
if_bonding.h bonding: modify the old and add new xmit hash policies 2013-10-03 15:36:38 -04:00
if_bridge.h net: bridge: export vlan flags with the stats 2016-08-18 23:18:42 -07:00
if_cablemodem.h
if_eql.h
if_ether.h net/ncsi: NCSI command packet handler 2016-07-19 20:49:16 -07:00
if_fc.h
if_fddi.h FDDI: Reformat <linux/if_fddi.h> for 8-character tabs 2014-04-27 19:08:06 -04:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h ipvlan: Introduce l3s mode 2016-09-19 01:25:22 -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 extended BPF fanout mode 2015-08-17 14:22:48 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h include/uapi/linux/if_pppol2tp.h: include linux/in.h and linux/in6.h 2016-08-22 16:25:14 -07: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 macvtap/tun: cross-endian support for little-endian hosts 2015-06-01 15:48:56 +02:00
if_tunnel.h ip_tunnel: add collect_md mode to IPIP tunnel 2016-09-17 10:13:07 -04:00
if_vlan.h
if_x25.h
if.h uapi glibc compat: fix compile errors when glibc net/if.h included before linux/if.h 2016-05-09 21:29:31 -04:00
igmp.h
ila.h ila: add checksum neutral ILA translations 2016-04-26 01:27:07 -04:00
in_route.h
in.h api: fix compatibility of linux/in.h with netinet/in.h 2015-06-29 18:56:21 -07:00
in6.h calipso: Set the calipso socket label to match the secattr. 2016-06-27 15:02:51 -04:00
inet_diag.h tcp_bbr: add BBR congestion control 2016-09-21 00:23:01 -04:00
inotify.h
input-event-codes.h Input: add SW_PEN_INSERTED define 2016-06-29 09:51:03 -07:00
input.h Input: add BUS_CEC type 2016-06-18 10:32:28 -07:00
ioctl.h
ip_vs.h netfilter/ipvs: use nla_put_u64_64bit() 2016-04-25 15:09:11 -04:00
ip.h ipv4: add option to drop gratuitous ARP packets 2016-02-11 04:27:35 -05:00
ip6_tunnel.h
ipc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h ipv6: Create percpu rt6_info 2015-05-25 13:25:35 -04:00
ipv6.h Revert "ipv6: Revert optional address flusing on ifdown." 2016-04-26 11:47:41 -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_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild bpf: introduce BPF_PROG_TYPE_PERF_EVENT program type 2016-09-02 10:46:44 -07:00
kcm.h kcm: Kernel Connection Multiplexor module 2016-03-09 16:36:14 -05:00
kcmp.h kcmp: Move kcmp.h into uapi 2014-12-02 13:52:53 -07:00
kcov.h kernel: add kcov code coverage 2016-03-22 15:36:02 -07:00
kd.h
kdev_t.h
kernel-page-flags.h proc: export idle flag via kpageflags 2015-09-10 13:29:01 -07:00
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: Add KEYCTL_DH_COMPUTE command 2016-04-12 19:54:58 +01:00
kfd_ioctl.h drm/amdkfd: add H/W debugger IOCTL set definitions 2015-06-03 11:32:07 +03:00
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
kvm.h KVM/ARM Changes for v4.8 - Take 2 2016-08-04 13:59:56 +02:00
l2tp.h l2tp: use nla_put_u64_64bit() 2016-04-25 15:09:10 -04: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: introduce factory reset 2016-01-12 08:21:18 -07:00
limits.h
lirc.h [media] lirc.h: remove several unused ioctls 2016-07-11 10:49:52 -03:00
llc.h
loop.h block: loop: introduce ioctl command of LOOP_SET_DIRECT_IO 2015-09-23 11:01:16 -06:00
lp.h
lwtunnel.h libnl: nla_put_be64(): align on a 64-bit area 2016-04-23 20:13:24 -04:00
magic.h zsmalloc: page migration support 2016-07-26 16:19:19 -07:00
major.h mtd: Move major number definitions to major.h 2013-11-06 23:32:59 -08:00
map_to_7segment.h
matroxfb.h
mdio.h
media-bus-format.h Merge branch 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux into v4l_for_linus 2015-04-21 09:44:55 -03:00
media.h [media] media: Add video statistics computation functions 2016-06-28 12:06:20 -03:00
mei.h mei: add async event notification ioctls 2015-08-03 17:30:00 -07:00
membarrier.h sys_membarrier(): system-wide memory barrier (generic, x86) 2015-09-11 15:21:34 -07:00
memfd.h shm: add memfd_create() syscall 2014-08-08 15:57:31 -07:00
mempolicy.h mm: convert p[te|md]_numa users to p[te|md]_protnone_numa 2015-02-12 18:54:08 -08:00
meye.h
mic_common.h misc: mic: Update MIC host daemon with COSM changes 2015-10-04 12:54:54 +01:00
mic_ioctl.h misc: mic: fix possible signed underflow (undefined behavior) in userspace API 2014-02-07 15:30:34 -08:00
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_iptunnel.h mpls: ip tunnel support 2015-07-21 10:39:05 -07:00
mpls.h mpls: Use definition for reserved label checks 2015-08-03 22:35:00 -07:00
mqueue.h uapi: Use __kernel_long_t in struct mq_attr 2014-01-20 14:45:33 -08:00
mroute.h net: ipmr: fix code and comment style 2015-11-23 15:06:38 -05:00
mroute6.h uapi: define DIV_ROUND_UP for userland 2016-03-04 16:10:36 -05:00
msdos_fs.h msdos_fs.h: fix 'fields' in comment 2015-01-20 13:51:06 +01:00
msg.h ipc/msg: increase MSGMNI, remove scaling 2014-12-13 12:42:52 -08:00
mtio.h
n_r3964.h
nbd.h nbd: stop using req->cmd 2015-05-05 13:40:44 -06:00
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
ndctl.h nfit: add Microsoft NVDIMM DSM command set to white list 2016-06-20 11:19:34 -07:00
neighbour.h libnl: nla_put_msecs(): align on a 64-bit area 2016-04-23 20:13:24 -04:00
net_dropmon.h
net_namespace.h netns: add rtnl cmd to add and get peer netns ids 2015-01-19 14:21:18 -05:00
net_tstamp.h sock: accept SO_TIMESTAMPING flags in socket cmsg 2016-04-04 15:50:30 -04:00
net.h
netconf.h netconf: add macro to represent all attributes 2016-03-13 21:54:44 -04:00
netdevice.h net: add name_assign_type netdev attribute 2014-07-15 16:12:01 -07:00
netfilter_arp.h
netfilter_bridge.h netfilter: fix include files for compilation 2015-11-23 17:54:38 +01:00
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h netfilter: don't pull include/linux/netfilter.h from netns headers 2015-06-18 21:14:31 +02:00
netlink_diag.h netlink: Add comment to warn about deprecated netlink rings attribute request 2016-06-16 14:00:50 -07:00
netlink.h netlink: remove mmapped netlink support 2016-02-18 11:42:18 -05:00
netrom.h
nfc.h NFC: netlink: Add missing NFC_ATTR comments 2015-10-27 03:55:10 +01:00
nfs_fs.h
nfs_idmap.h NFS: Move nfs_idmap.h into fs/nfs/ 2015-04-23 15:16:14 -04:00
nfs_mount.h NFS: stop using NFS_MOUNT_SECFLAVOUR server flag 2013-10-28 15:37:56 -04:00
nfs.h nfs: use btrfs ioctl defintions for clone 2015-11-23 21:53:08 -05:00
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h NFS: Update NFS4_BITMAP_SIZE 2015-08-27 19:44:53 -04:00
nfsacl.h nfsd: Add macro NFS_ACL_MASK for ACL 2015-07-20 14:58:46 -04:00
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 cfg80211: Add mesh peer AID setting API 2016-07-06 15:04:52 +02:00
nubus.h
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: 802.1ad uapi changes. 2016-09-08 17:10:27 -07:00
packet_diag.h diag: warn about missing first netlink attribute 2013-11-28 18:16:43 -05:00
param.h
parport.h
patchkey.h
pci_regs.h PCI: Add Downstream Port Containment driver 2016-05-03 10:39:24 -05:00
pci.h
perf_event.h perf core: Per event callchain limit 2016-05-30 12:41:44 -03:00
personality.h
pfkeyv2.h ipsec: add support of limited SA dump 2014-02-17 07:18:19 +01:00
pg.h
phantom.h
phonet.h
pkt_cls.h net/sched: cls_flower: Specify vlan attributes format in the UAPI header 2016-09-15 20:27:23 -04:00
pkt_sched.h net_sched: sch_fq: add low_rate_threshold parameter 2016-09-21 00:23:00 -04:00
pktcdvd.h
pmu.h
poll.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h include/uapi/linux/ppp-ioctl.h: pull in ppp_defs.h 2014-01-23 16:36:55 -08:00
pps.h
pr.h block: add an API for Persistent Reservations 2015-10-21 14:46:56 -06:00
prctl.h capabilities: ambient capabilities 2015-09-04 16:54:41 -07:00
psci.h drivers: firmware: psci: add system suspend support 2015-10-02 14:35:17 +01:00
ptp_clock.h ptp: Add PTP_SYS_OFFSET_PRECISE for driver crosstimestamping 2016-03-03 14:23:43 -08:00
ptrace.h seccomp, ptrace: add support for dumping seccomp filters 2015-10-27 19:55:13 -07:00
qnx4_fs.h
qnxtypes.h
qrtr.h net: Add Qualcomm IPC router 2016-05-08 23:46:14 -04:00
quota.h fs/quota: use nla_put_u64_64bit() 2016-04-26 12:00:48 -04:00
radeonfb.h
random.h random: introduce getrandom(2) system call 2014-08-05 16:41:22 -04:00
raw.h
rds.h net/rds: Declare SO_RDS_TRANSPORT and RDS_TRANS_* constants in uapi/linux/rds.h 2015-05-31 21:47:23 -07:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h uapi: Use __kernel_long_t/__kernel_ulong_t in <linux/resource.h> 2014-01-20 14:44:17 -08:00
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
rtc.h
rtnetlink.h sched: align nlattr properly when needed 2016-04-26 12:00:49 -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 misc: mic: SCIF RMA header file and IOCTL changes 2015-10-04 12:54:54 +01:00
screen_info.h efifb: Add support for 64-bit frame buffer addresses 2015-10-12 14:20:06 +01:00
sctp.h sctp: Export struct sctp_info to userspace 2016-08-08 12:51:58 -07:00
sdla.h
seccomp.h seccomp: implement SECCOMP_FILTER_FLAG_TSYNC 2014-07-18 12:13:40 -07:00
securebits.h capabilities: add a securebit to disable PR_CAP_AMBIENT_RAISE 2015-09-04 16:54:41 -07:00
selinux_netlink.h
sem.h ipc/sem.c: increase SEMMSL, SEMMNI, SEMOPM 2014-12-13 12:42:52 -08:00
serial_core.h TTY and Serial driver update for 4.7-rc1 2016-05-20 20:57:27 -07:00
serial_reg.h ARM: OMAP1: Move UART defines to prepare for sparse IRQ 2015-05-20 09:01:20 -07:00
serial.h serial: support 16-bit register interface for console 2015-12-13 19:59:48 -08:00
serio.h [media] input: serio - add new protocol for the Pulse-Eight USB-CEC Adapter 2016-07-12 13:42:10 -03:00
shm.h ipc,shm: document new limits in the uapi header 2014-06-06 16:08:14 -07:00
signal.h signals/sigaltstack: Change SS_AUTODISARM to (1U << 31) 2016-05-04 08:34:14 +02:00
signalfd.h
smiapp.h [media] smiapp: Add driver-specific test pattern menu item definitions 2014-08-21 15:25:11 -05:00
snmp.h tcp: md5: add LINUX_MIB_TCPMD5FAILURE counter 2016-08-25 16:43:11 -07:00
sock_diag.h sock_diag: add SK_MEMINFO_DROPS 2016-04-04 22:11:20 -04:00
socket.h
sockios.h include/uapi/linux/sockios.h: mark SIOCRTMSG unused 2016-01-05 16:44:06 -05:00
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h uapi/linux/stddef.h: Provide __always_inline to userspace headers 2016-03-30 12:50:17 +02:00
stm.h stm class: Introduce an abstraction for System Trace Module devices 2015-10-04 20:28:58 +01:00
string.h
suspend_ioctls.h
swab.h byteswap: try to avoid __builtin_constant_p gcc bug 2016-05-05 17:38:53 -07:00
sync_file.h dma-buf/sync_file: de-stage sync_file headers 2016-04-29 17:37:10 -07:00
synclink.h
sysctl.h uapi: move forward declarations of internal structures 2016-08-02 17:31:41 -04:00
sysinfo.h
target_core_user.h target/user: Report capability of handling out-of-order completions to userspace 2016-03-10 21:49:09 -08:00
taskstats.h
tcp_metrics.h libnl: nla_put_msecs(): align on a 64-bit area 2016-04-23 20:13:24 -04:00
tcp.h tcp: export data delivery rate 2016-09-21 00:23:00 -04:00
telephony.h
termios.h
thermal.h thermal: provide an UAPI header file 2014-12-09 14:10:41 +08:00
time.h
times.h
timex.h uapi: Use __kernel_long_t in struct timex 2014-01-20 14:44:05 -08:00
tiocl.h
tipc_config.h tipc: convert legacy nl link stat to nl compat 2015-02-09 13:20:47 -08:00
tipc_netlink.h tipc: add the ability to get UDP options via netlink 2016-08-26 21:38:41 -07:00
tipc.h tipc: introduce constants for tipc address validation 2016-07-26 14:26:42 -07:00
toshiba.h toshiba_acpi: Add /dev/toshiba_acpi device 2015-07-24 14:15:10 -07:00
tty_flags.h tty: core: Undefine ASYNC_* flags superceded by TTY_PORT* flags 2016-04-30 09:26:55 -07:00
tty.h NFC: nci: add generic uart support 2015-06-11 23:37:37 +02:00
types.h
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 HID: uhid: report to user-space whether reports are numbered 2014-08-25 03:28:08 -05:00
uinput.h Input: uinput - rework ABS validation 2015-12-18 17:48:51 -08:00
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h diag: warn about missing first netlink attribute 2013-11-28 18:16:43 -05:00
usbdevice_fs.h usb: devio: Add ioctl to disallow detaching kernel USB drivers. 2016-03-05 12:05:01 -08:00
usbip.h usbip: move usbip kernel code out of staging 2014-08-25 10:40:06 -07:00
userfaultfd.h userfaultfd: remove kernel header include from uapi header 2015-10-01 21:42:35 -04:00
userio.h Input: add userio module 2015-10-27 18:55:31 -07:00
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 [media] media: v4l: Dual license v4l2-common.h under GPL v2 and BSD licenses 2016-02-01 08:47:05 -02:00
v4l2-controls.h [media] v4l: add V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME 2016-02-19 08:10:35 -02:00
v4l2-dv-timings.h [media] v4l2-dv-timings.h: fix polarity for 4k formats 2016-04-25 10:19:56 -03:00
v4l2-mediabus.h [media] videodev2.h: add support for transfer functions 2015-06-05 11:45:45 -03:00
v4l2-subdev.h [media] v4l2-subdev.h: add 'which' field for the enum structs 2015-03-23 11:44:35 -07:00
veth.h
vfio.h vfio/pci: Intel IGD host and LCP bridge config space access 2016-02-22 16:10:09 -07:00
vhost.h vhost: new device IOTLB API 2016-08-02 16:53:54 +03:00
videodev2.h [media] videodev2.h: Fix V4L2_PIX_FMT_YUV411P description 2016-06-28 11:54:52 -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_console: virtio 1.0 support 2014-12-09 12:06:32 +02:00
virtio_gpu.h include/uapi/linux/virtio_gpu.h: use __u8 from <linux/types.h> 2015-12-10 12:33:23 +01:00
virtio_ids.h VSOCK: Introduce virtio_vsock_common.ko 2016-08-02 02:57:29 +03:00
virtio_input.h Add virtio-input driver. 2015-03-29 12:13:52 +10:30
virtio_net.h virtio_net: add _UAPI prefix to virtio_net header guards 2016-06-10 23:03:55 -07:00
virtio_pci.h virtio: define virtio_pci_cfg_cap in header. 2015-07-07 14:27:05 +03:00
virtio_ring.h virtio: Fix typecast of pointer in vring_init() 2015-07-07 14:27:04 +03:00
virtio_rng.h
virtio_scsi.h uapi/virtio_scsi: allow overriding CDB/SENSE size 2015-03-13 15:55:43 +10:30
virtio_types.h virtio: memory access APIs 2014-12-09 12:05:24 +02:00
virtio_vsock.h virtio-vsock: fix include guard typo 2016-08-09 13:42:38 +03:00
vm_sockets.h
vt.h tty: vt, remove reduntant check 2016-04-30 09:26:55 -07:00
vtpm_proxy.h tpm: Proxy driver for supporting multiple emulated TPMs 2016-06-25 17:26:35 +03:00
wait.h
wanrouter.h
watchdog.h
wil6210_uapi.h wil6210: atomic I/O for the card memory 2014-10-02 14:23:14 -04:00
wimax.h
wireless.h wext: reformat struct/union declarations 2016-06-09 10:14:39 +02:00
x25.h
xattr.h xattr: fix check for simultaneous glibc header inclusion 2014-08-29 16:28:16 -07:00
xfrm.h xfrm: align nlattr properly when needed 2016-04-23 20:13:25 -04:00
xilinx-v4l2-controls.h [media] v4l: xilinx: Add Test Pattern Generator driver 2015-04-03 01:04:18 -03:00
zorro_ids.h zorro/UAPI: Disintegrate include/linux/zorro*.h 2013-11-26 11:09:08 +01:00
zorro.h zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h> 2013-11-26 11:09:09 +01:00