twx-linux/include/uapi/linux
Daniel Borkmann 983695fa67 bpf: fix unconnected udp hooks
Intention of cgroup bind/connect/sendmsg BPF hooks is to act transparently
to applications as also stated in original motivation in 7828f20e3779 ("Merge
branch 'bpf-cgroup-bind-connect'"). When recently integrating the latter
two hooks into Cilium to enable host based load-balancing with Kubernetes,
I ran into the issue that pods couldn't start up as DNS got broken. Kubernetes
typically sets up DNS as a service and is thus subject to load-balancing.

Upon further debugging, it turns out that the cgroupv2 sendmsg BPF hooks API
is currently insufficient and thus not usable as-is for standard applications
shipped with most distros. To break down the issue we ran into with a simple
example:

  # cat /etc/resolv.conf
  nameserver 147.75.207.207
  nameserver 147.75.207.208

For the purpose of a simple test, we set up above IPs as service IPs and
transparently redirect traffic to a different DNS backend server for that
node:

  # cilium service list
  ID   Frontend            Backend
  1    147.75.207.207:53   1 => 8.8.8.8:53
  2    147.75.207.208:53   1 => 8.8.8.8:53

The attached BPF program is basically selecting one of the backends if the
service IP/port matches on the cgroup hook. DNS breaks here, because the
hooks are not transparent enough to applications which have built-in msg_name
address checks:

  # nslookup 1.1.1.1
  ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53
  ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.208#53
  ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53
  [...]
  ;; connection timed out; no servers could be reached

  # dig 1.1.1.1
  ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53
  ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.208#53
  ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53
  [...]

  ; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> 1.1.1.1
  ;; global options: +cmd
  ;; connection timed out; no servers could be reached

For comparison, if none of the service IPs is used, and we tell nslookup
to use 8.8.8.8 directly it works just fine, of course:

  # nslookup 1.1.1.1 8.8.8.8
  1.1.1.1.in-addr.arpa	name = one.one.one.one.

In order to fix this and thus act more transparent to the application,
this needs reverse translation on recvmsg() side. A minimal fix for this
API is to add similar recvmsg() hooks behind the BPF cgroups static key
such that the program can track state and replace the current sockaddr_in{,6}
with the original service IP. From BPF side, this basically tracks the
service tuple plus socket cookie in an LRU map where the reverse NAT can
then be retrieved via map value as one example. Side-note: the BPF cgroups
static key should be converted to a per-hook static key in future.

Same example after this fix:

  # cilium service list
  ID   Frontend            Backend
  1    147.75.207.207:53   1 => 8.8.8.8:53
  2    147.75.207.208:53   1 => 8.8.8.8:53

Lookups work fine now:

  # nslookup 1.1.1.1
  1.1.1.1.in-addr.arpa    name = one.one.one.one.

  Authoritative answers can be found from:

  # dig 1.1.1.1

  ; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> 1.1.1.1
  ;; global options: +cmd
  ;; Got answer:
  ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51550
  ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

  ;; OPT PSEUDOSECTION:
  ; EDNS: version: 0, flags:; udp: 512
  ;; QUESTION SECTION:
  ;1.1.1.1.                       IN      A

  ;; AUTHORITY SECTION:
  .                       23426   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2019052001 1800 900 604800 86400

  ;; Query time: 17 msec
  ;; SERVER: 147.75.207.207#53(147.75.207.207)
  ;; WHEN: Tue May 21 12:59:38 UTC 2019
  ;; MSG SIZE  rcvd: 111

And from an actual packet level it shows that we're using the back end
server when talking via 147.75.207.20{7,8} front end:

  # tcpdump -i any udp
  [...]
  12:59:52.698732 IP foo.42011 > google-public-dns-a.google.com.domain: 18803+ PTR? 1.1.1.1.in-addr.arpa. (38)
  12:59:52.698735 IP foo.42011 > google-public-dns-a.google.com.domain: 18803+ PTR? 1.1.1.1.in-addr.arpa. (38)
  12:59:52.701208 IP google-public-dns-a.google.com.domain > foo.42011: 18803 1/0/0 PTR one.one.one.one. (67)
  12:59:52.701208 IP google-public-dns-a.google.com.domain > foo.42011: 18803 1/0/0 PTR one.one.one.one. (67)
  [...]

In order to be flexible and to have same semantics as in sendmsg BPF
programs, we only allow return codes in [1,1] range. In the sendmsg case
the program is called if msg->msg_name is present which can be the case
in both, connected and unconnected UDP.

The former only relies on the sockaddr_in{,6} passed via connect(2) if
passed msg->msg_name was NULL. Therefore, on recvmsg side, we act in similar
way to call into the BPF program whenever a non-NULL msg->msg_name was
passed independent of sk->sk_state being TCP_ESTABLISHED or not. Note
that for TCP case, the msg->msg_name is ignored in the regular recvmsg
path and therefore not relevant.

For the case of ip{,v6}_recv_error() paths, picked up via MSG_ERRQUEUE,
the hook is not called. This is intentional as it aligns with the same
semantics as in case of TCP cgroup BPF hooks right now. This might be
better addressed in future through a different bpf_attach_type such
that this case can be distinguished from the regular recvmsg paths,
for example.

Fixes: 1cedee13d25a ("bpf: Hooks for sys_sendmsg")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrey Ignatov <rdna@fb.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Martynas Pumputis <m@lambda.lt>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2019-06-06 16:53:12 -07:00
..
android Merge 5.0-rc4 into char-misc-next 2019-01-28 08:13:52 +01:00
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 modifiers for ethanol and H2 gases 2018-12-16 14:05:58 +00:00
isdn
mmc mmc: document 'Reliable Write' bit in uapi header 2018-12-17 08:26:24 +01:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf 2019-05-13 08:55:15 -07:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd nfsd: un-deprecate nfsdcld 2019-04-24 09:46:34 -04:00
raid
sched
spi spi: spidev: Enable control of inter-word delays 2019-03-18 12:18:28 +00:00
sunrpc
tc_act net: Move all TC actions identifiers to one place 2019-02-10 09:28:43 -08:00
tc_ematch
usb USB for v4.20 2018-10-05 08:32:01 -07:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h aio: Comment use of IOCB_FLAG_IOPRIO aio flag 2018-11-19 19:03:43 -07:00
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h drivers/misc: Add Aspeed P2A control driver 2019-04-25 19:33:34 +02:00
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
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 ntp: Audit NTP parameters adjustment 2019-04-15 18:14:01 -04:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h autofs: add ignore mount option 2019-03-07 18:32:01 -08:00
auxvec.h
ax25.h
b1lli.h
batadv_packet.h batman-adv: Drop license boilerplate 2019-03-25 09:31:35 +01:00
batman_adv.h batman-adv: Add multicast-to-unicast support for multiple targets 2019-03-25 10:01:13 +01:00
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 bfs: extra sanity checking and static inode bitmap 2019-01-04 13:13:47 -08:00
binfmts.h exec: increase BINPRM_BUF_SIZE to 256 2019-03-07 18:32:01 -08:00
blkpg.h
blktrace_api.h
blkzoned.h uapi: fix ioctl documentation 2019-01-24 11:11:42 -07:00
bpf_common.h
bpf_perf_event.h
bpf.h bpf: fix unconnected udp hooks 2019-06-06 16:53:12 -07:00
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: btf: fix the brackets of BTF_INT_OFFSET() 2019-05-14 10:05:18 +02:00
btrfs_tree.h btrfs: use common file type conversion 2019-04-29 19:02:29 +02:00
btrfs.h btrfs: introduce new ioctl to unregister a btrfs device 2019-02-25 14:13:30 +01:00
can.h
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h
cec.h media: cec: add new tx/rx status bits to detect aborts/timeouts 2018-10-05 11:22:39 -04:00
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda_psdev.h
coda.h
coff.h
connector.h
const.h
coresight-stm.h
cramfs_fs.h
cryptouser.h crypto: user - rename err_cnt parameter 2018-12-07 14:15:00 +08:00
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: Rename devlink health attributes 2019-02-21 10:38:51 -08:00
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h dm: eliminate 'split_discard_bios' flag from DM target interface 2019-02-20 23:24:55 -05:00
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 Move EM_UNICORE to uapi/linux/elf-em.h 2019-03-20 21:11:22 -04:00
elf-fdpic.h
elf.h arm64: add ptrace regsets for ptrauth key management 2019-02-01 13:56:58 +00:00
elfcore.h
errno.h
errqueue.h errqueue.h: Include time_types.h 2019-02-14 11:51:51 -05:00
erspan.h
ethtool.h ethtool: Add SFF-8436 and SFF-8636 max EEPROM length definitions 2019-05-01 14:39:16 -07:00
eventpoll.h
fadvise.h
falloc.h
fanotify.h fanotify: add support for create/attrib/move/delete events 2019-02-07 16:43:23 +01:00
fb.h fbdev: make FB_BACKLIGHT a tristate 2018-12-20 19:13:07 +01:00
fcntl.h vfs: syscall: Add open_tree(2) to reference or clone a mount 2019-03-20 18:49:06 -04:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h FireWire: clean up firewire-cdev.h kernel-doc 2018-09-06 09:40:59 -06:00
firewire-constants.h
flat.h
fou.h fou: Support binding FoU socket 2019-03-27 13:30:07 -07:00
fpga-dfl.h
fs.h fs/sync.c: sync_file_range(2) may use WB_SYNC_ALL writeback 2019-05-14 09:47:50 -07:00
fsi.h
fsl_hypervisor.h
fsmap.h
fuse.h fuse: Add ioctl flag for x32 compat ioctl 2019-04-24 17:05:07 +02:00
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 gpio: uapi: Grammar s/array/array of/ 2018-09-13 10:46:24 +02:00
gsmmux.h
gtp.h
hash_info.h crypto: streebog - register Streebog in hash info for IMA 2018-11-16 14:09:40 +08:00
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 ipv6: Add rate limit mask for ICMPv6 messages 2019-04-18 16:58:37 -07:00
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 bonding: add support for xstats and export 3ad stats 2019-01-22 12:04:14 -08:00
if_bridge.h net: bridge: add no_linklocal_learn bool option 2018-11-27 15:04:15 -08:00
if_cablemodem.h
if_eql.h
if_ether.h ether: Add dedicated Ethertype for pseudo-802.1Q DSA tagging 2019-05-03 10:49:17 -04:00
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 bonding: add support for xstats and export 3ad stats 2019-01-22 12:04:14 -08: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 tun: Add ioctl() TUNGETDEVNETNS cmd to allow obtaining real net ns of tun device 2019-03-21 13:19:15 -07:00
if_tunnel.h iptunnel: make TUNNEL_FLAGS available in uapi 2018-12-19 15:58:01 -08:00
if_vlan.h vlan: support binding link state to vlan member bridge ports 2019-04-19 13:58:17 -07:00
if_x25.h
if_xdp.h
if.h
ife.h
igmp.h bridge: Snoop Multicast Router Advertisements 2019-01-22 17:18:09 -08:00
ila.h
in6.h net: ipv6: add socket option IPV6_ROUTER_ALERT_ISOLATE 2019-03-03 21:05:10 -08:00
in_route.h
in.h bridge: join all-snoopers multicast address 2019-01-22 17:18:08 -08:00
inet_diag.h inet_diag: fix reporting cgroup classid and fallback to priority 2019-02-12 13:35:57 -05:00
inotify.h
input-event-codes.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-05-13 15:21:48 -07:00
input.h Input: input_event - fix the CONFIG_SPARC64 mixup 2019-01-24 00:38:39 -08:00
io_uring.h io_uring: add support for eventfd notifications 2019-05-02 14:08:54 -06:00
ioctl.h
ip6_tunnel.h
ip_vs.h ipvs: allow tunneling with gue encapsulation 2019-04-08 22:57:59 +02:00
ip.h route: add support for directed broadcast forwarding 2018-07-29 12:37:06 -07:00
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irqnr.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
Kbuild KVM: export <linux/kvm_para.h> and <asm/kvm_para.h> iif KVM is supported 2019-03-28 17:27:42 +01:00
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h mm: convert PG_balloon to PG_offline 2019-03-05 21:07:14 -08:00
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2] 2018-10-26 09:30:46 +01:00
kfd_ioctl.h drm/amdkfd: add RAS ECC event support (v3) 2019-03-19 15:36:51 -05:00
kvm_para.h KVM: X86: Implement PV IPIs in linux guest 2018-08-06 17:59:22 +02:00
kvm.h KVM/arm updates for 5.2 2019-05-15 23:41:43 +02:00
l2tp.h l2tp: ignore L2TP_ATTR_MTU 2018-08-03 10:03:57 -07:00
libc-compat.h
lightnvm.h
limits.h linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h> 2019-03-07 18:31:59 -08:00
lirc.h media: rc: xbox_remote: add protocol and set timeout 2019-04-22 13:02:53 -04:00
llc.h
loop.h
lp.h
lwtunnel.h
magic.h binder: implement binderfs 2018-12-19 09:40:13 +01:00
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h net: phy: Add generic support for 2.5GBaseT and 5GBaseT 2019-02-13 19:17:53 -05:00
media-bus-format.h media: uapi: Add MEDIA_BUS_FMT_BGR888_3X8 media bus format 2019-04-22 11:35:43 -04:00
media.h media: media.h: Enable ALSA MEDIA_INTF_T* interface types 2019-04-22 11:19:56 -04:00
mei.h mei: adjust the copyright notice in the files. 2019-03-28 02:07:54 +09:00
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
minix_fs.h
mman.h arch: move common mmap flags to linux/mman.h 2019-02-18 17:49:30 +01:00
mmtimer.h
module.h
mount.h vfs: syscall: Add fspick() to select a superblock for reconfiguration 2019-03-20 18:49:06 -04:00
mpls_iptunnel.h
mpls.h
mqueue.h
mroute6.h ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
mroute.h ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
msdos_fs.h fat: move MAX_FAT to fat.h and change it to inline function 2019-01-04 13:13:47 -08:00
msg.h
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h
ncsi.h net/ncsi: Configure multi-package, multi-channel modes with failover 2018-11-17 21:09:49 -08:00
ndctl.h nfit: Add Hyper-V NVDIMM DSM command set to white list 2019-01-29 22:09:31 -08:00
neighbour.h neighbor: Add protocol attribute 2018-12-16 12:15:25 -08:00
net_dropmon.h
net_namespace.h netns: enable to dump full nsid translation table 2018-11-27 16:20:20 -08:00
net_tstamp.h net: Use __kernel_clockid_t in uapi net_stamp.h 2018-12-18 15:59:29 -08:00
net.h
netconf.h route: add support for directed broadcast forwarding 2018-07-29 12:37:06 -07:00
netdevice.h
netfilter_arp.h
netfilter_bridge.h netfilter: bridge: define INT_MIN & INT_MAX in userspace 2018-10-25 10:25:22 +02:00
netfilter_decnet.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv4.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv6.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netlink_diag.h
netlink.h net: netlink: rename NETLINK_DUMP_STRICT_CHK -> NETLINK_GET_STRICT_CHK 2018-12-14 11:44:31 -08:00
netrom.h
nfc.h
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h NFS: Move internal constants out of uapi/linux/nfs_mount.h 2019-04-25 14:18:14 -04:00
nfs.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nl80211.h cfg80211: add support to probe unexercised mesh link 2019-04-26 13:02:11 +02:00
nsfs.h
nubus.h
nvme_ioctl.h nvme_ioctl.h: remove duplicate GPL boilerplate 2019-02-20 07:22:05 -07:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: Make metadata_dst tunnel work in IP_TUNNEL_INFO_BRIDGE mode 2019-03-29 13:29:15 -07:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h Merge branch 'pci/trivial' 2019-05-13 18:34:48 -05:00
pci.h
pcitest.h
perf_event.h perf, bpf: Introduce PERF_RECORD_BPF_EVENT 2019-01-21 17:00:57 -03:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net: Change TCA_ACT_* to TCA_ID_* to match that of TCA_ID_POLICE 2019-02-10 09:28:43 -08:00
pkt_sched.h taprio: Add support for cycle-time-extension 2019-05-01 11:58:51 -04:00
pktcdvd.h
pmu.h m68k/mac: Fix PRAM accessors 2019-01-22 10:21:45 +01:00
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h l2tp: remove pppol2tp_session_ioctl() 2018-08-11 12:13:49 -07:00
pps.h
pr.h
prctl.h x86/speculation: Add PR_SPEC_DISABLE_NOEXEC 2019-01-29 22:11:49 +01:00
psample.h
psci.h firmware/psci: add support for SYSTEM_RESET2 2019-04-16 23:05:21 +02:00
psp-sev.h crypto: ccp - introduce SEV_GET_ID2 command 2019-04-08 14:36:16 +08:00
ptp_clock.h ptp: uapi: change _IOW to IOWR in PTP_SYS_OFFSET_EXTENDED definition 2019-01-08 16:22:56 -05:00
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
raw.h
rds.h rds: add type of service(tos) infrastructure 2019-02-04 14:59:12 -08: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
rseq.h
rtc.h
rtnetlink.h
rxrpc.h
scc.h
sched.h clone: add CLONE_PIDFD 2019-05-07 14:31:03 +02:00
scif_ioctl.h
screen_info.h
sctp.h sctp: introduce SCTP_FUTURE/CURRENT/ALL_ASSOC 2019-01-30 00:44:06 -08:00
sdla.h
seccomp.h seccomp: add a return code to trap to userspace 2018-12-11 16:28:41 -08:00
securebits.h
sed-opal.h sed-opal.h: remove redundant licence boilerplate 2019-04-30 16:12:00 -06:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selinux_netlink.h
sem.h
serial_core.h tty: serial: add driver for the SiFive UART 2019-04-29 16:30:59 +02:00
serial_reg.h
serial.h tty/serial_core: add ISO7816 infrastructure 2018-10-02 13:38:55 -07:00
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_diag.h net/smc: retain old name for diag_mode field 2018-10-07 21:06:28 -07:00
smc.h
smiapp.h
snmp.h tcp: implement coalescing on backlog queue 2018-11-30 13:26:54 -08:00
sock_diag.h
socket.h
sockios.h net: socket: implement 64-bit timestamps 2019-04-19 14:07:40 -07:00
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h switchtec: Increase PFF limit from 48 to 255 2019-04-17 17:20:01 -05:00
sync_file.h
synclink.h
sysctl.h kernel/sysctl: add panic_print into sysctl 2019-01-04 13:13:47 -08:00
sysinfo.h
target_core_user.h
taskstats.h delayacct: track delays from thrashing cache pages 2018-10-26 16:26:32 -07:00
tcp_metrics.h
tcp.h tcp: add documentation for tcp_ca_state 2019-03-23 21:50:05 -04:00
tee.h
termios.h
thermal.h
time_types.h Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-03-05 14:08:26 -08:00
time.h time: Add time_types.h 2019-02-14 11:51:51 -05:00
timerfd.h
times.h
timex.h y2038: remove struct definition redirects 2019-02-07 00:13:28 +01:00
tiocl.h
tipc_config.h tipc: Avoid copying bytes beyond the supplied data 2019-05-20 20:16:08 -04:00
tipc_netlink.h tipc: support broadcast/replicast configurable for bc-link 2019-03-19 13:56:17 -07:00
tipc_sockets_diag.h
tipc.h tipc: introduce new socket option TIPC_SOCK_RECVQ_USED 2019-04-19 14:59:05 -07:00
tls.h net/tls: Add support of AES128-CCM based ciphers 2019-03-20 11:02:05 -07:00
toshiba.h
tty_flags.h
tty.h
types.h
udf_fs_i.h
udmabuf.h Add udmabuf misc device 2018-09-03 13:29:38 +02:00
udp.h udp: implement GRO for plain UDP sockets. 2018-11-07 16:23:04 -08: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
v4l2-common.h media: v4l2-common.h: put backwards compat defines under #ifndef __KERNEL__ 2018-11-20 13:22:40 -05:00
v4l2-controls.h media: v4l: add I / P frame min max QP definitions 2019-04-22 10:25:36 -04:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h
vbox_err.h
vbox_vmmdev_types.h virt: vbox: Implement passing requestor info to the host for VirtualBox 6.0.x 2019-03-28 01:55:18 +09:00
vboxguest.h
veth.h
vfio_ccw.h vfio-ccw: add handling for async channel instructions 2019-04-24 14:18:51 +02:00
vfio.h vfio-ccw: add handling for async channel instructions 2019-04-24 14:18:51 +02:00
vhost_types.h vhost: split structs into a separate header file 2018-12-19 18:23:49 -05:00
vhost.h vhost: split structs into a separate header file 2018-12-19 18:23:49 -05:00
videodev2.h media: v4l: Add definitions for missing 16-bit RGB555 formats 2019-04-25 11:05:33 -04:00
virtio_9p.h
virtio_balloon.h virtio-balloon: VIRTIO_BALLOON_F_PAGE_POISON 2018-10-24 20:57:55 -04:00
virtio_blk.h virtio_blk: add discard and write zeroes support 2018-12-19 18:23:49 -05:00
virtio_config.h virtio: support VIRTIO_F_ORDER_PLATFORM 2019-01-24 10:15:42 -05:00
virtio_console.h
virtio_crypto.h
virtio_gpu.h virtio-gpu api: comment feature flags 2019-04-11 17:00:10 +02:00
virtio_ids.h
virtio_input.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_ring.h virtio: drop internal struct from UAPI 2019-02-05 15:29:48 -05:00
virtio_rng.h
virtio_scsi.h
virtio_types.h
virtio_vsock.h
vm_sockets_diag.h
vm_sockets.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
xdp_diag.h xsk: add sock_diag interface for AF_XDP 2019-01-25 01:50:03 +01:00
xfrm.h
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h