Daniel Borkmann
e2e9b6541d
cls_bpf: add initial eBPF support for programmable classifiers
...
This work extends the "classic" BPF programmable tc classifier by
extending its scope also to native eBPF code!
This allows for user space to implement own custom, 'safe' C like
classifiers (or whatever other frontend language LLVM et al may
provide in future), that can then be compiled with the LLVM eBPF
backend to an eBPF elf file. The result of this can be loaded into
the kernel via iproute2's tc. In the kernel, they can be JITed on
major archs and thus run in native performance.
Simple, minimal toy example to demonstrate the workflow:
#include <linux/ip.h>
#include <linux/if_ether.h>
#include <linux/bpf.h>
#include "tc_bpf_api.h"
__section("classify")
int cls_main(struct sk_buff *skb)
{
return (0x800 << 16) | load_byte(skb, ETH_HLEN + __builtin_offsetof(struct iphdr, tos));
}
char __license[] __section("license") = "GPL";
The classifier can then be compiled into eBPF opcodes and loaded
via tc, for example:
clang -O2 -emit-llvm -c cls.c -o - | llc -march=bpf -filetype=obj -o cls.o
tc filter add dev em1 parent 1: bpf cls.o [...]
As it has been demonstrated, the scope can even reach up to a fully
fledged flow dissector (similarly as in samples/bpf/sockex2_kern.c).
For tc, maps are allowed to be used, but from kernel context only,
in other words, eBPF code can keep state across filter invocations.
In future, we perhaps may reattach from a different application to
those maps e.g., to read out collected statistics/state.
Similarly as in socket filters, we may extend functionality for eBPF
classifiers over time depending on the use cases. For that purpose,
cls_bpf programs are using BPF_PROG_TYPE_SCHED_CLS program type, so
we can allow additional functions/accessors (e.g. an ABI compatible
offset translation to skb fields/metadata). For an initial cls_bpf
support, we allow the same set of helper functions as eBPF socket
filters, but we could diverge at some point in time w/o problem.
I was wondering whether cls_bpf and act_bpf could share C programs,
I can imagine that at some point, we introduce i) further common
handlers for both (or even beyond their scope), and/or if truly needed
ii) some restricted function space for each of them. Both can be
abstracted easily through struct bpf_verifier_ops in future.
The context of cls_bpf versus act_bpf is slightly different though:
a cls_bpf program will return a specific classid whereas act_bpf a
drop/non-drop return code, latter may also in future mangle skbs.
That said, we can surely have a "classify" and "action" section in
a single object file, or considered mentioned constraint add a
possibility of a shared section.
The workflow for getting native eBPF running from tc [1] is as
follows: for f_bpf, I've added a slightly modified ELF parser code
from Alexei's kernel sample, which reads out the LLVM compiled
object, sets up maps (and dynamically fixes up map fds) if any, and
loads the eBPF instructions all centrally through the bpf syscall.
The resulting fd from the loaded program itself is being passed down
to cls_bpf, which looks up struct bpf_prog from the fd store, and
holds reference, so that it stays available also after tc program
lifetime. On tc filter destruction, it will then drop its reference.
Moreover, I've also added the optional possibility to annotate an
eBPF filter with a name (e.g. path to object file, or something
else if preferred) so that when tc dumps currently installed filters,
some more context can be given to an admin for a given instance (as
opposed to just the file descriptor number).
Last but not least, bpf_prog_get() and bpf_prog_put() needed to be
exported, so that eBPF can be used from cls_bpf built as a module.
Thanks to 60a3b2253c ("net: bpf: make eBPF interpreter images
read-only") I think this is of no concern since anything wanting to
alter eBPF opcode after verification stage would crash the kernel.
[1] http://git.breakpoint.cc/cgit/dborkman/iproute2.git/log/?h=ebpf
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Jiri Pirko <jiri@resnulli.us>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-03-01 14:05:19 -05:00
..
android
android: uapi: binder.h
2014-10-20 10:30:15 +08:00
byteorder
caif
caif: Remove my bouncing email address.
2013-04-23 13:25:51 -04:00
can
can: m_can: tag current CAN FD controllers as non-ISO
2015-01-15 16:57:59 +01:00
cifs
cifs: Move and expand MAX_SERVER_SIZE definition
2013-09-08 14:34:22 -05:00
dvb
[media] demux.h: Remove duplicated enum
2013-04-08 06:53:15 -03:00
genwqe
GenWQE: Update author information
2014-09-23 23:15:46 -07:00
hdlc
hsi
isdn
mmc
netfilter
netfilter: ipset: Alignment problem between 64bit kernel 32bit userspace
2014-12-03 12:43:35 +01:00
netfilter_arp
uapi: netfilter_arp: use __u8 instead of u_int8_t
2014-08-20 15:13:08 +02:00
netfilter_bridge
netfilter: kill ulog targets
2014-06-25 19:28:43 +02:00
netfilter_ipv4
netfilter: kill ulog targets
2014-06-25 19:28:43 +02:00
netfilter_ipv6
netfilter: fix struct ip6t_frag field description
2013-04-02 12:25:57 +02:00
nfsd
nfsd: implement pNFS operations
2015-02-02 18:09:42 +01:00
raid
md: discard PRINT_RAID_DEBUG ioctl
2014-10-14 13:08:29 +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: Introduce connmark action
2015-01-19 16:02:06 -05:00
tc_ematch
usb
usb: gadget: ffs: add eventfd notification about ffs events
2015-01-27 09:34:59 -06:00
wimax
uapi: Convert some uses of 6 to ETH_ALEN
2013-08-02 12:33:54 -07:00
a.out.h
acct.h
UAPI: fix endianness conditionals in linux/acct.h
2013-03-13 15:21:48 -07:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
UAPI: fix endianness conditionals in linux/aio_abi.h
2013-03-13 15:21:48 -07:00
am437x-vpfe.h
[media] media: platform: add VPFE capture driver support for AM437X
2014-12-23 12:09:58 -02: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.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
powerpc updates for 3.19 batch 2
2014-12-19 12:57:45 -08:00
auto_fs.h
auto_fs4.h
auxvec.h
powerpc: Add HWCAP2 aux entry
2013-04-26 16:08:16 +10:00
ax25.h
b1lli.h
baycom.h
bcache.h
bcache: Add bch_btree_keys_u64s_remaining()
2014-01-08 13:05:13 -08:00
bcm933xx_hcs.h
MIPS: BCM63XX: recognize Cable Modem firmware format
2013-07-01 15:10:53 +02:00
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
bpf.h
ebpf: add sched_cls_type and map it to sk_filter's verifier ops
2015-03-01 14:05:19 -05:00
bpf_common.h
net: filter: move common defines into bpf_common.h
2014-10-14 16:06:45 -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.h
Btrfs: return failure if btrfs_dev_replace_finishing() failed
2014-11-20 17:14:28 -08:00
can.h
can: unify identifiers to ensure unique include processing
2014-05-19 09:38:24 +02:00
capability.h
audit: add netlink audit protocol bind to check capabilities on multicast join
2014-04-22 21:42:27 -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
connector: Added coredumping event to the process connector
2013-03-20 13:23:21 -04:00
coda.h
coda_psdev.h
coff.h
connector.h
Drivers: hv: Add a new driver to support host initiated backup
2013-03-15 12:12:36 -07:00
const.h
linux/const.h: Add _BITUL() and _BITULL()
2013-06-25 15:50:04 -07:00
cramfs_fs.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h
dcbnl : Fix misleading dcb_app->priority explanation
2014-07-30 17:21:05 -07:00
dccp.h
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dlm: adopt orphan locks
2014-11-19 14:48:02 -06:00
dm-ioctl.h
dm: allocate requests in target when stacking on blk-mq devices
2015-02-09 13:06:47 -05:00
dm-log-userspace.h
dm log userspace: allow mark requests to piggyback on flush requests
2014-01-21 23:46:27 -05: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 a new quotactl command Q_XGETQSTATV
2013-08-20 16:53:58 -05:00
edd.h
efs_fs_sb.h
elf-em.h
Add ELF machine define for Nios2
2014-12-08 12:55:57 +08:00
elf-fdpic.h
elf.h
arm64: ptrace: add NT_ARM_SYSTEM_CALL regset
2014-11-28 10:19:49 +00:00
elfcore.h
errno.h
errqueue.h
net-timestamp: ACK timestamp for bytestreams
2014-08-05 16:35:54 -07:00
ethtool.h
ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version
2015-02-09 14:07:54 -08:00
eventpoll.h
epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled
2013-12-03 15:35:52 +01:00
fadvise.h
falloc.h
fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
2014-03-13 19:07:42 +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
fib_rules: fix suppressor names and default values
2013-08-03 10:40:23 -07:00
fiemap.h
ext4: add support for extent pre-caching
2013-08-16 22:05:14 -04:00
filter.h
net: filter: move common defines into bpf_common.h
2014-10-14 16:06:45 -04:00
firewire-cdev.h
firewire: fix libdc1394/FlyCap2 iso event regression
2013-07-27 20:24:36 +02:00
firewire-constants.h
flat.h
fou.h
gue: Use checksum partial with remote checksum offload
2015-02-11 15:12:13 -08:00
fs.h
vfs: add support for a lazytime mount option
2015-02-05 02:45:00 -05:00
fsl_hypervisor.h
fuse.h
fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT
2014-07-22 16:37:43 +02:00
futex.h
gameport.h
gen_stats.h
net_sched: add 64bit rate estimators
2013-06-11 02:51:03 -07:00
genetlink.h
genetlink/pmcraid: use proper genetlink multicast API
2013-11-28 18:26:30 -05:00
gfs2_ondisk.h
GFS2: remove transaction glock
2014-05-14 10:04:34 +01:00
gigaset_dev.h
hash_info.h
crypto: provide single place for hash algo information
2013-10-25 17:14:03 -04: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
Drivers: hv: util: make struct hv_do_fcopy match Hyper-V host messages
2014-11-07 10:21:44 -08:00
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
i8k: uapi: Introduce define for new highest fan speed
2014-07-09 16:41:36 -07:00
icmp.h
icmpv6.h
ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO
2013-09-03 22:11:44 -04:00
if.h
net: move net_device priv_flags out from UAPI
2014-02-27 15:59:09 -05:00
if_addr.h
multicast: Extend ip address command to enable multicast group join/leave on
2015-02-27 16:25:25 -05: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
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
bridge: support for multiple vlans and vlan ranges in setlink and dellink requests
2015-01-12 16:47:04 -05:00
if_cablemodem.h
if_cablemodem.h: Add parenthesis around ioctl macros
2013-05-08 13:13:30 -07:00
if_eql.h
if_ether.h
net: dsa: reduce number of protocol hooks
2014-08-27 22:59:39 -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
vxlan: Use checksum partial with remote checksum offload
2015-02-11 15:12:13 -08:00
if_ltalk.h
if_packet.h
packet: remove deprecated syststamp timestamp
2014-07-29 11:39:50 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
pptp: fix byte order warnings
2013-08-13 15:10:22 -07:00
if_slip.h
if_team.h
if_tun.h
if_tun: drop broken IFF_VNET_LE
2014-12-16 11:19:42 -05:00
if_tunnel.h
gue: TX support for using remote checksum offload option
2014-11-05 16:30:03 -05:00
if_vlan.h
if_x25.h
igmp.h
in.h
ip: Add offset parameter to ip_cmsg_recv
2015-01-05 22:44:46 -05:00
in6.h
in6: fix conflict with glibc
2014-12-22 16:12:36 -05:00
in_route.h
inet_diag.h
net: tcp: add DCTCP congestion control algorithm
2014-09-29 00:13:10 -04:00
inotify.h
input.h
HID: wacom: add support for Cintiq 27QHD and 27QHD touch
2015-01-29 14:05:05 +01:00
ioctl.h
ip.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2013-08-26 16:37:08 -04:00
ip6_tunnel.h
ip_vs.h
ipvs: Add destination address family to netlink interface
2014-09-16 09:03:33 +09:00
ipc.h
ipmi.h
ipmi: remove superfluous kernel/userspace explanation
2013-02-27 19:10:21 -08:00
ipmi_msgdefs.h
ipsec.h
ipv6.h
net: ipv6: Add sysctl entry to disable MTU updates from RA
2015-01-25 14:54:41 -08:00
ipv6_route.h
ipx.h
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
fs/binfmt_som: Drop kernel support for HP-UX SOM binaries
2015-02-17 16:29:36 +01:00
kcmp.h
kcmp: Move kcmp.h into uapi
2014-12-02 13:52:53 -07:00
kd.h
kdev_t.h
kernel-page-flags.h
mm:add KPF_ZERO_PAGE flag for /proc/kpageflags
2015-02-11 17:06:00 -08:00
kernel.h
kernelcapi.h
kexec.h
kexec: Fix make headers_check
2015-02-17 14:34:51 -08:00
keyboard.h
keyctl.h
KEYS: Add per-user_namespace registers for persistent per-UID kerberos caches
2013-09-24 10:35:19 +01:00
kfd_ioctl.h
drm/amdkfd: reformat IOCTL definitions to drm-style
2015-01-06 19:44:36 +02:00
kvm.h
KVM: s390: fixes and features for kvm/next (3.20)
2015-01-23 14:33:36 +01:00
kvm_para.h
MIPS: Add functions for hypervisor call
2014-05-30 21:01:11 +02:00
l2tp.h
l2tp : multicast notification to the registered listeners
2014-12-31 14:17:20 -05:00
libc-compat.h
ipv6: fix redefinition of in6_pktinfo and ip6_mtuinfo
2015-01-08 19:29:11 -08:00
limits.h
llc.h
loop.h
lp.h
magic.h
take the targets of /proc/*/ns/* symlinks to separate fs
2014-12-10 21:30:20 -05: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
[media] Move mediabus format definition to a more standard place
2014-11-14 17:47:47 -02:00
media.h
[media] media: Add pad flag MEDIA_PAD_FL_MUST_CONNECT
2013-12-04 14:59:20 -02:00
mei.h
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: Fix endianness issues.
2013-11-27 11:03:38 -08: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
minix_fs.h
mman.h
mmtimer.h
module.h
mpls.h
UAPI: add MPLS label stack definition
2014-03-04 13:51:06 -05:00
mqueue.h
uapi: Use __kernel_long_t in struct mq_attr
2014-01-20 14:45:33 -08:00
mroute.h
mroute6.h
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: support FLUSH requests
2013-02-27 19:10:22 -08:00
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
neighbour.h
vxlan: advertise link netns in fdb messages
2015-01-27 17:11:07 -08:00
net.h
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
net-timestamp: no-payload option
2015-02-02 18:46:51 -08:00
netconf.h
netconf: rename PROXY_ARP to NEIGH_PROXY
2013-12-22 18:02:43 -05:00
netdevice.h
net: add name_assign_type netdev attribute
2014-07-15 16:12:01 -07:00
netfilter.h
netfilter: nf_tables: add "inet" table for IPv4/IPv6
2014-01-07 23:57:25 +01:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netlink: mmaped netlink: ring setup
2013-04-19 14:57:57 -04:00
netlink_diag.h
diag: warn about missing first netlink attribute
2013-11-28 18:16:43 -05:00
netrom.h
nfc.h
NFC: Forward NFC_EVT_TRANSACTION to user space
2015-02-02 21:50:40 +01:00
nfs.h
nfs2.h
nfs3.h
nfs4.h
uapi: convert u64 to __u64 in exported headers
2014-01-23 16:36:55 -08:00
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
NFS: stop using NFS_MOUNT_SECFLAVOUR server flag
2013-10-28 15:37:56 -04:00
nfsacl.h
nl80211.h
nl80211: don't document per-wiphy interface dump
2015-01-29 16:54:44 +01:00
nubus.h
nvme.h
NVMe: Updates for 1.1 spec
2014-11-04 13:17:10 -07:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h
net: openvswitch: Support masked set actions.
2015-02-07 22:40:17 -08: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.h
pci_regs.h
PCI: Add defines for PCIe Max_Read_Request_Size
2015-01-27 08:14:26 -06:00
perf_event.h
perf: Add ability to sample machine state on interrupt
2014-11-16 11:41:57 +01: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
cls_bpf: add initial eBPF support for programmable classifiers
2015-03-01 14:05:19 -05:00
pkt_sched.h
pkt_sched: fq: better control of DDOS traffic
2015-02-04 22:15:45 -08:00
pktcdvd.h
pmu.h
poll.h
posix_types.h
ppdev.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
ppp_defs.h
pps.h
prctl.h
x86, mpx: On-demand kernel allocation of bounds tables
2014-11-18 00:58:53 +01:00
psci.h
ARM/ARM64: KVM: Add common header for PSCI related defines
2014-04-30 04:18:57 -07:00
ptp_clock.h
ptp: introduce programmable pins.
2014-03-21 14:21:13 -04:00
ptrace.h
ptrace: add ability to get/set signal-blocked mask
2013-07-03 16:08:01 -07:00
qnx4_fs.h
qnxtypes.h
quota.h
quota: Cleanup flags definitions
2015-01-21 19:21:30 +01:00
radeonfb.h
random.h
random: introduce getrandom(2) system call
2014-08-05 16:41:22 -04:00
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
xattr: Constify ->name member of "struct xattr".
2013-07-25 19:30:03 +10:00
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: Add NFC to the list of supported radios
2013-04-12 16:54:38 +02:00
romfs_fs.h
rose.h
route.h
rtc.h
rtnetlink.h
netns: add rtnl cmd to add and get peer netns ids
2015-01-19 14:21:18 -05:00
scc.h
sched.h
sched: Update comments about CLONE_NEWUTS and CLONE_NEWIPC
2014-11-16 10:58:53 +01:00
screen_info.h
sctp.h
net: sctp: implement rfc6458, 8.1.31. SCTP_DEFAULT_SNDINFO support
2014-07-16 14:40:04 -07:00
sdla.h
seccomp.h
seccomp: implement SECCOMP_FILTER_FLAG_TSYNC
2014-07-18 12:13:40 -07:00
securebits.h
selinux_netlink.h
sem.h
ipc/sem.c: increase SEMMSL, SEMMNI, SEMOPM
2014-12-13 12:42:52 -08:00
serial.h
serial_core.h
serial: driver for ETRAX FS UART
2015-02-07 18:43:16 +08:00
serial_reg.h
tty: 8250: Add 64byte UART support for FSL platforms
2015-01-09 14:33:04 -08:00
serio.h
Input: add support for Wacom protocol 4 serial tablets
2014-07-20 14:33:23 -07:00
shm.h
ipc,shm: document new limits in the uapi header
2014-06-06 16:08:14 -07:00
signal.h
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: helpers to mitigate ACK loops by rate-limiting out-of-window dupacks
2015-02-08 01:03:12 -08:00
sock_diag.h
socket.h
sockios.h
net_tstamp: Add SIOCGHWTSTAMP ioctl to match SIOCSHWTSTAMP
2013-11-19 19:07:21 +00:00
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
string.h
suspend_ioctls.h
swab.h
synclink.h
sysctl.h
kernel: add panic_on_warn
2014-12-10 17:41:10 -08:00
sysinfo.h
target_core_user.h
uapi/linux/target_core_user.h: fix headers_install.sh badness
2014-12-18 11:07:27 -08:00
taskstats.h
tcp.h
tcp: add pacing_rate information into tcp_info
2014-02-14 16:09:43 -05:00
tcp_metrics.h
tcp: switch rtt estimations to usec resolution
2014-02-26 17:08:40 -05:00
telephony.h
termios.h
thermal.h
thermal: provide an UAPI header file
2014-12-09 14:10:41 +08:00
time.h
timekeeping: Add CLOCK_TAI clockid
2013-03-22 16:19:59 -07:00
times.h
timex.h
uapi: Use __kernel_long_t in struct timex
2014-01-20 14:44:05 -08:00
tiocl.h
tipc.h
tipc: add ioctl to fetch link names
2014-04-26 12:13:24 -04:00
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 name table dump to new netlink api
2014-11-21 15:01:32 -05:00
toshiba.h
tty.h
tty_flags.h
tty: warn on deprecated serial flags
2014-11-06 15:01:03 -08:00
types.h
udf_fs_i.h
udp.h
net: Make enabling of zero UDP6 csums more restrictive
2014-05-23 16:28:53 -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 - fix ioctl nr overflow for UI_GET_SYSNAME/VERSION
2015-01-11 16:27:25 -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: usbfs: allow URBs to be reaped after disconnection
2015-01-31 09:05:06 -08:00
usbip.h
usbip: move usbip kernel code out of staging
2014-08-25 10:40:06 -07:00
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
[media] v4l: Add V4L2_SEL_TGT_NATIVE_SIZE selection target
2014-12-04 12:37:01 -02:00
v4l2-controls.h
[media] adv7180: Add fast switch support
2015-02-02 11:51:38 -02:00
v4l2-dv-timings.h
Revert "[media] v4l2-dv-timings: fix a sparse warning"
2014-10-24 08:58:09 -02:00
v4l2-mediabus.h
[media] v4l2-mediabus.h: use two __u16 instead of two __u32
2014-12-16 23:21:36 -02:00
v4l2-subdev.h
[media] Make use of the new media_bus_format definitions
2014-11-14 17:51:18 -02:00
veth.h
vfio.h
vfio/iommu_type1: add new VFIO_TYPE1_NESTING_IOMMU IOMMU type
2014-09-29 10:06:19 -06:00
vhost.h
tcm_vhost: header split up
2013-05-02 13:40:15 +03:00
videodev2.h
[media] v4l: Add packed Bayer raw10 pixel formats
2014-12-23 10:57:09 -02:00
virtio_9p.h
virtio_balloon.h
virtio_balloon: free some memory from balloon on OOM
2014-11-11 17:09:58 +10:30
virtio_blk.h
virtio_blk: v1.0 support
2014-12-09 12:05:26 +02:00
virtio_config.h
virtio: make VIRTIO_F_VERSION_1 a transport bit
2014-12-09 12:06:32 +02:00
virtio_console.h
virtio_console: virtio 1.0 support
2014-12-09 12:06:32 +02:00
virtio_ids.h
caif_virtio: Introduce caif over virtio
2013-03-20 14:06:06 +10:30
virtio_net.h
virtio_net: v1.0 endianness
2014-12-09 12:05:26 +02:00
virtio_pci.h
virtio_pci: add VIRTIO_PCI_NO_LEGACY
2014-12-14 15:10:31 +02:00
virtio_ring.h
virtio_ring: document alignment requirements
2014-12-29 10:54:54 +02:00
virtio_rng.h
virtio_scsi.h
virtio_scsi: export to userspace
2014-12-09 12:06:31 +02:00
virtio_types.h
virtio: memory access APIs
2014-12-09 12:05:24 +02:00
vm_sockets.h
VSOCK: Split vm_sockets.h into kernel/uapi
2013-03-08 12:24:48 -05:00
vsp1.h
[media] v4l: vsp1: Add LUT support
2013-12-11 09:25:20 -02:00
vt.h
vt: Remove vt_get_kmsg_redirect() from uapi header
2014-11-05 20:18:30 -08: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
x25.h
xattr.h
xattr: fix check for simultaneous glibc header inclusion
2014-08-29 16:28:16 -07:00
xfrm.h
xfrm: configure policy hash table thresholds by netlink
2014-09-02 13:37:56 +02:00
zorro.h
zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h>
2013-11-26 11:09:09 +01:00
zorro_ids.h
zorro/UAPI: Disintegrate include/linux/zorro*.h
2013-11-26 11:09:08 +01:00