History

Merge branch 'for-4.12/asus' into for-linus

Jiri Kosina committed 9 years ago

Commit 4d6ca222 parents 800f3ee af22a619348 files · +413682 −179681Browse files

Showing the changes to include/uapi/linux (72 of 9348 files). Show all

Unified · Split

72 files
  1. include/uapi/linux/Kbuild +9 −0
  2. include/uapi/linux/android/binder.h +101 −3
  3. include/uapi/linux/auto_dev-ioctl.h +2 −8
  4. include/uapi/linux/auto_fs.h +18 −7
  5. include/uapi/linux/auto_fs4.h +11 −5
  6. include/uapi/linux/batman_adv.h +1 −1
  7. include/uapi/linux/bpf.h +22 −1
  8. include/uapi/linux/can/netlink.h +7 −0
  9. include/uapi/linux/devlink.h +8 −2
  10. include/uapi/linux/fcntl.h +5 −0
  11. include/uapi/linux/fs.h +1 −0
  12. include/uapi/linux/if.h +4 −0
  13. include/uapi/linux/if_bridge.h +11 −0
  14. include/uapi/linux/if_ether.h +1 −0
  15. include/uapi/linux/if_link.h +3 −0
  16. include/uapi/linux/ife.h +18 −0
  17. include/uapi/linux/igmp.h +2 −2
  18. include/uapi/linux/iio/types.h +1 −0
  19. include/uapi/linux/ip6_tunnel.h +2 −0
  20. include/uapi/linux/ipv6.h +1 −0
  21. include/uapi/linux/ipv6_route.h +1 −0
  22. include/uapi/linux/kvm.h +20 −1
  23. include/uapi/linux/kvm_para.h +2 −0
  24. include/uapi/linux/llc.h +1 −0
  25. include/uapi/linux/mpls.h +30 −0
  26. include/uapi/linux/mqueue.h +2 −0
  27. include/uapi/linux/mroute.h +1 −0
  28. include/uapi/linux/mroute6.h +1 −0
  29. include/uapi/linux/neighbour.h +1 −0
  30. include/uapi/linux/netconf.h +1 −0
  31. include/uapi/linux/netfilter.h +0 −1
  32. include/uapi/linux/netfilter/nf_conntrack_common.h +4 −0
  33. include/uapi/linux/netfilter/nf_tables.h +31 −1
  34. include/uapi/linux/netfilter/nfnetlink.h +12 −0
  35. include/uapi/linux/netfilter/nfnetlink_queue.h +1 −1
  36. include/uapi/linux/netfilter/xt_hashlimit.h +1 −0
  37. include/uapi/linux/netlink.h +1 −0
  38. include/uapi/linux/nfsd/export.h +3 −2
  39. include/uapi/linux/nl80211.h +91 −33
  40. include/uapi/linux/nsfs.h +7 −2
  41. include/uapi/linux/openvswitch.h +30 −3
  42. include/uapi/linux/packet_diag.h +1 −1
  43. include/uapi/linux/pci_regs.h +17 −0
  44. include/uapi/linux/pkt_cls.h +17 −56
  45. include/uapi/linux/psample.h +35 −0
  46. include/uapi/linux/rds.h +87 −53
  47. include/uapi/linux/rpmsg.h +35 −0
  48. include/uapi/linux/rtnetlink.h +3 −0
  49. include/uapi/linux/sched/types.h +74 −0
  50. include/uapi/linux/sctp.h +42 −0
  51. include/uapi/linux/seg6.h +3 −0
  52. include/uapi/linux/seg6_hmac.h +1 −0
  53. include/uapi/linux/seg6_iptunnel.h +6 −0
  54. include/uapi/linux/serial_core.h +2 −1
  55. include/uapi/linux/serial_reg.h +8 −18
  56. include/uapi/linux/serio.h +4 −3
  57. include/uapi/linux/smc.h +35 −0
  58. include/uapi/linux/smc_diag.h +85 −0
  59. include/uapi/linux/snmp.h +1 −0
  60. include/uapi/linux/stat.h +131 −0
  61. include/uapi/linux/target_core_user.h +11 −11
  62. include/uapi/linux/tc_act/Kbuild +1 −0
  63. include/uapi/linux/tc_act/tc_csum.h +2 −1
  64. include/uapi/linux/tc_act/tc_ife.h +1 −9
  65. include/uapi/linux/tc_act/tc_pedit.h +31 −0
  66. include/uapi/linux/tc_act/tc_sample.h +26 −0
  67. include/uapi/linux/tcp.h +3 −0
  68. include/uapi/linux/tipc.h +4 −2
  69. include/uapi/linux/un.h +2 −0
  70. include/uapi/linux/userfaultfd.h +61 −9
  71. include/uapi/linux/virtio_mmio.h +141 −0
  72. include/uapi/linux/virtio_pci.h +1 −1
include/uapi/linux/Kbuild+9−0
@@ -64,6 +64,7 @@ header-y += auto_fs.h · 63 unmodified lines
64header-y += auxvec.h64header-y += auxvec.h
65header-y += ax25.h65header-y += ax25.h
66header-y += b1lli.h66header-y += b1lli.h
67header-y += batman_adv.h
67header-y += baycom.h68header-y += baycom.h
68header-y += bcm933xx_hcs.h69header-y += bcm933xx_hcs.h
69header-y += bfs_fs.h70header-y += bfs_fs.h
@@ -109,6 +110,7 @@ header-y += dlm_netlink.h · 39 unmodified lines
109header-y += dlm_plock.h110header-y += dlm_plock.h
110header-y += dm-ioctl.h111header-y += dm-ioctl.h
111header-y += dm-log-userspace.h112header-y += dm-log-userspace.h
113header-y += dma-buf.h
112header-y += dn.h114header-y += dn.h
113header-y += dqblk_xfs.h115header-y += dqblk_xfs.h
114header-y += edd.h116header-y += edd.h
@@ -194,6 +196,7 @@ header-y += if_tun.h · 79 unmodified lines
194header-y += if_tunnel.h196header-y += if_tunnel.h
195header-y += if_vlan.h197header-y += if_vlan.h
196header-y += if_x25.h198header-y += if_x25.h
199header-y += ife.h
197header-y += igmp.h200header-y += igmp.h
198header-y += ila.h201header-y += ila.h
199header-y += in6.h202header-y += in6.h
@@ -305,6 +308,7 @@ header-y += netrom.h · 105 unmodified lines
305header-y += net_namespace.h308header-y += net_namespace.h
306header-y += net_tstamp.h309header-y += net_tstamp.h
307header-y += nfc.h310header-y += nfc.h
311header-y += psample.h
308header-y += nfs2.h312header-y += nfs2.h
309header-y += nfs3.h313header-y += nfs3.h
310header-y += nfs4.h314header-y += nfs4.h
@@ -379,6 +383,10 @@ header-y += sctp.h · 68 unmodified lines
379header-y += sdla.h383header-y += sdla.h
380header-y += seccomp.h384header-y += seccomp.h
381header-y += securebits.h385header-y += securebits.h
386header-y += seg6_genl.h
387header-y += seg6.h
388header-y += seg6_hmac.h
389header-y += seg6_iptunnel.h
382header-y += selinux_netlink.h390header-y += selinux_netlink.h
383header-y += sem.h391header-y += sem.h
384header-y += serial_core.h392header-y += serial_core.h
@@ -458,6 +466,7 @@ header-y += virtio_console.h · 73 unmodified lines
458header-y += virtio_gpu.h466header-y += virtio_gpu.h
459header-y += virtio_ids.h467header-y += virtio_ids.h
460header-y += virtio_input.h468header-y += virtio_input.h
469header-y += virtio_mmio.h
461header-y += virtio_net.h470header-y += virtio_net.h
462header-y += virtio_pci.h471header-y += virtio_pci.h
463header-y += virtio_ring.h472header-y += virtio_ring.h
include/uapi/linux/android/binder.h+101−3
@@ -33,6 +33,8 @@ enum { · 32 unmodified lines
33 BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE),33 BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE),
34 BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE),34 BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE),
35 BINDER_TYPE_FD = B_PACK_CHARS('f', 'd', '*', B_TYPE_LARGE),35 BINDER_TYPE_FD = B_PACK_CHARS('f', 'd', '*', B_TYPE_LARGE),
36 BINDER_TYPE_FDA = B_PACK_CHARS('f', 'd', 'a', B_TYPE_LARGE),
37 BINDER_TYPE_PTR = B_PACK_CHARS('p', 't', '*', B_TYPE_LARGE),
36};38};
37 39
38enum {40enum {
@@ -48,6 +50,14 @@ typedef __u64 binder_size_t; · 9 unmodified lines
48typedef __u64 binder_uintptr_t;50typedef __u64 binder_uintptr_t;
49#endif51#endif
50 52
53/**
54 * struct binder_object_header - header shared by all binder metadata objects.
55 * @type: type of the object
56 */
57struct binder_object_header {
58 __u32 type;
59};
60
51/*61/*
52 * This is the flattened representation of a Binder object for transfer62 * This is the flattened representation of a Binder object for transfer
53 * between processes. The 'offsets' supplied as part of a binder transaction63 * between processes. The 'offsets' supplied as part of a binder transaction
@@ -56,9 +66,8 @@ typedef __u64 binder_uintptr_t; · 2 unmodified lines
56 * between processes.66 * between processes.
57 */67 */
58struct flat_binder_object {68struct flat_binder_object {
59 /* 8 bytes for large_flat_header. */69 struct binder_object_header hdr;
60 __u32 type;70 __u32 flags;
61 __u32 flags;
62 71
63 /* 8 bytes of data. */72 /* 8 bytes of data. */
64 union {73 union {
@@ -70,6 +79,84 @@ struct flat_binder_object { · 5 unmodified lines
70 binder_uintptr_t cookie;79 binder_uintptr_t cookie;
71};80};
72 81
82/**
83 * struct binder_fd_object - describes a filedescriptor to be fixed up.
84 * @hdr: common header structure
85 * @pad_flags: padding to remain compatible with old userspace code
86 * @pad_binder: padding to remain compatible with old userspace code
87 * @fd: file descriptor
88 * @cookie: opaque data, used by user-space
89 */
90struct binder_fd_object {
91 struct binder_object_header hdr;
92 __u32 pad_flags;
93 union {
94 binder_uintptr_t pad_binder;
95 __u32 fd;
96 };
97
98 binder_uintptr_t cookie;
99};
100
101/* struct binder_buffer_object - object describing a userspace buffer
102 * @hdr: common header structure
103 * @flags: one or more BINDER_BUFFER_* flags
104 * @buffer: address of the buffer
105 * @length: length of the buffer
106 * @parent: index in offset array pointing to parent buffer
107 * @parent_offset: offset in @parent pointing to this buffer
108 *
109 * A binder_buffer object represents an object that the
110 * binder kernel driver can copy verbatim to the target
111 * address space. A buffer itself may be pointed to from
112 * within another buffer, meaning that the pointer inside
113 * that other buffer needs to be fixed up as well. This
114 * can be done by setting the BINDER_BUFFER_FLAG_HAS_PARENT
115 * flag in @flags, by setting @parent buffer to the index
116 * in the offset array pointing to the parent binder_buffer_object,
117 * and by setting @parent_offset to the offset in the parent buffer
118 * at which the pointer to this buffer is located.
119 */
120struct binder_buffer_object {
121 struct binder_object_header hdr;
122 __u32 flags;
123 binder_uintptr_t buffer;
124 binder_size_t length;
125 binder_size_t parent;
126 binder_size_t parent_offset;
127};
128
129enum {
130 BINDER_BUFFER_FLAG_HAS_PARENT = 0x01,
131};
132
133/* struct binder_fd_array_object - object describing an array of fds in a buffer
134 * @hdr: common header structure
135 * @num_fds: number of file descriptors in the buffer
136 * @parent: index in offset array to buffer holding the fd array
137 * @parent_offset: start offset of fd array in the buffer
138 *
139 * A binder_fd_array object represents an array of file
140 * descriptors embedded in a binder_buffer_object. It is
141 * different from a regular binder_buffer_object because it
142 * describes a list of file descriptors to fix up, not an opaque
143 * blob of memory, and hence the kernel needs to treat it differently.
144 *
145 * An example of how this would be used is with Android's
146 * native_handle_t object, which is a struct with a list of integers
147 * and a list of file descriptors. The native_handle_t struct itself
148 * will be represented by a struct binder_buffer_objct, whereas the
149 * embedded list of file descriptors is represented by a
150 * struct binder_fd_array_object with that binder_buffer_object as
151 * a parent.
152 */
153struct binder_fd_array_object {
154 struct binder_object_header hdr;
155 binder_size_t num_fds;
156 binder_size_t parent;
157 binder_size_t parent_offset;
158};
159
73/*160/*
74 * On 64-bit platforms where user code may run in 32-bits the driver must161 * On 64-bit platforms where user code may run in 32-bits the driver must
75 * translate the buffer (and local binder) addresses appropriately.162 * translate the buffer (and local binder) addresses appropriately.
@@ -162,6 +249,11 @@ struct binder_transaction_data { · 86 unmodified lines
162 } data;249 } data;
163};250};
164 251
252struct binder_transaction_data_sg {
253 struct binder_transaction_data transaction_data;
254 binder_size_t buffers_size;
255};
256
165struct binder_ptr_cookie {257struct binder_ptr_cookie {
166 binder_uintptr_t ptr;258 binder_uintptr_t ptr;
167 binder_uintptr_t cookie;259 binder_uintptr_t cookie;
@@ -346,6 +438,12 @@ enum binder_driver_command_protocol { · 178 unmodified lines
346 /*438 /*
347 * void *: cookie439 * void *: cookie
348 */440 */
441
442 BC_TRANSACTION_SG = _IOW('c', 17, struct binder_transaction_data_sg),
443 BC_REPLY_SG = _IOW('c', 18, struct binder_transaction_data_sg),
444 /*
445 * binder_transaction_data_sg: the sent command.
446 */
349};447};
350 448
351#endif /* _UAPI_LINUX_BINDER_H */449#endif /* _UAPI_LINUX_BINDER_H */
include/uapi/linux/auto_dev-ioctl.h+2−8
@@ -113,17 +113,13 @@ struct autofs_dev_ioctl { · 112 unmodified lines
113 113
114static inline void init_autofs_dev_ioctl(struct autofs_dev_ioctl *in)114static inline void init_autofs_dev_ioctl(struct autofs_dev_ioctl *in)
115{115{
116 memset(in, 0, sizeof(struct autofs_dev_ioctl));116 memset(in, 0, AUTOFS_DEV_IOCTL_SIZE);
117 in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR;117 in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR;
118 in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR;118 in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR;
119 in->size = sizeof(struct autofs_dev_ioctl);119 in->size = AUTOFS_DEV_IOCTL_SIZE;
120 in->ioctlfd = -1;120 in->ioctlfd = -1;
121}121}
122 122
123/*
124 * If you change this make sure you make the corresponding change
125 * to autofs-dev-ioctl.c:lookup_ioctl()
126 */
127enum {123enum {
128 /* Get various version info */124 /* Get various version info */
129 AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71,125 AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71,
@@ -160,8 +156,6 @@ enum { · 30 unmodified lines
160 AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD,156 AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD,
161};157};
162 158
163#define AUTOFS_IOCTL 0x93
164
165#define AUTOFS_DEV_IOCTL_VERSION \159#define AUTOFS_DEV_IOCTL_VERSION \
166 _IOWR(AUTOFS_IOCTL, \160 _IOWR(AUTOFS_IOCTL, \
167 AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl)161 AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl)
include/uapi/linux/auto_fs.h+18−7
@@ -61,12 +61,23 @@ struct autofs_packet_expire { · 60 unmodified lines
61 char name[NAME_MAX+1];61 char name[NAME_MAX+1];
62};62};
63 63
64#define AUTOFS_IOC_READY _IO(0x93, 0x60)64#define AUTOFS_IOCTL 0x93
65#define AUTOFS_IOC_FAIL _IO(0x93, 0x61)65
66#define AUTOFS_IOC_CATATONIC _IO(0x93, 0x62)66enum {
67#define AUTOFS_IOC_PROTOVER _IOR(0x93, 0x63, int)67 AUTOFS_IOC_READY_CMD = 0x60,
68#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93, 0x64, compat_ulong_t)68 AUTOFS_IOC_FAIL_CMD,
69#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93, 0x64, unsigned long)69 AUTOFS_IOC_CATATONIC_CMD,
70#define AUTOFS_IOC_EXPIRE _IOR(0x93, 0x65, struct autofs_packet_expire)70 AUTOFS_IOC_PROTOVER_CMD,
71 AUTOFS_IOC_SETTIMEOUT_CMD,
72 AUTOFS_IOC_EXPIRE_CMD,
73};
74
75#define AUTOFS_IOC_READY _IO(AUTOFS_IOCTL, AUTOFS_IOC_READY_CMD)
76#define AUTOFS_IOC_FAIL _IO(AUTOFS_IOCTL, AUTOFS_IOC_FAIL_CMD)
77#define AUTOFS_IOC_CATATONIC _IO(AUTOFS_IOCTL, AUTOFS_IOC_CATATONIC_CMD)
78#define AUTOFS_IOC_PROTOVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOVER_CMD, int)
79#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, compat_ulong_t)
80#define AUTOFS_IOC_SETTIMEOUT _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, unsigned long)
81#define AUTOFS_IOC_EXPIRE _IOR(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_CMD, struct autofs_packet_expire)
71 82
72#endif /* _UAPI_LINUX_AUTO_FS_H */83#endif /* _UAPI_LINUX_AUTO_FS_H */
include/uapi/linux/auto_fs4.h+11−5
@@ -148,10 +148,16 @@ union autofs_v5_packet_union { · 147 unmodified lines
148 autofs_packet_expire_direct_t expire_direct;148 autofs_packet_expire_direct_t expire_direct;
149};149};
150 150
151#define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93, 0x66, int)151enum {
152#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI152 AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, /* AUTOFS_IOC_EXPIRE_CMD + 1 */
153#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI153 AUTOFS_IOC_PROTOSUBVER_CMD,
154#define AUTOFS_IOC_PROTOSUBVER _IOR(0x93, 0x67, int)154 AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, /* AUTOFS_DEV_IOCTL_VERSION_CMD - 1 */
155#define AUTOFS_IOC_ASKUMOUNT _IOR(0x93, 0x70, int)155};
156
157#define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int)
158#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
159#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
160#define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int)
161#define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int)
156 162
157#endif /* _LINUX_AUTO_FS4_H */163#endif /* _LINUX_AUTO_FS4_H */
include/uapi/linux/batman_adv.h+1−1
@@ -1,4 +1,4 @@
1/* Copyright (C) 2016 B.A.T.M.A.N. contributors:1/* Copyright (C) 2016-2017 B.A.T.M.A.N. contributors:
2 *2 *
3 * Matthias Schiffer3 * Matthias Schiffer
4 *4 *
include/uapi/linux/bpf.h+22−1
@@ -63,6 +63,12 @@ struct bpf_insn { · 62 unmodified lines
63 __s32 imm; /* signed immediate constant */63 __s32 imm; /* signed immediate constant */
64};64};
65 65
66/* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */
67struct bpf_lpm_trie_key {
68 __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */
69 __u8 data[0]; /* Arbitrary size */
70};
71
66/* BPF syscall commands, see bpf(2) man-page for details. */72/* BPF syscall commands, see bpf(2) man-page for details. */
67enum bpf_cmd {73enum bpf_cmd {
68 BPF_MAP_CREATE,74 BPF_MAP_CREATE,
@@ -89,6 +95,7 @@ enum bpf_map_type { · 20 unmodified lines
89 BPF_MAP_TYPE_CGROUP_ARRAY,95 BPF_MAP_TYPE_CGROUP_ARRAY,
90 BPF_MAP_TYPE_LRU_HASH,96 BPF_MAP_TYPE_LRU_HASH,
91 BPF_MAP_TYPE_LRU_PERCPU_HASH,97 BPF_MAP_TYPE_LRU_PERCPU_HASH,
98 BPF_MAP_TYPE_LPM_TRIE,
92};99};
93 100
94enum bpf_prog_type {101enum bpf_prog_type {
@@ -437,6 +444,18 @@ union bpf_attr { · 342 unmodified lines
437 * @xdp_md: pointer to xdp_md444 * @xdp_md: pointer to xdp_md
438 * @delta: An positive/negative integer to be added to xdp_md.data445 * @delta: An positive/negative integer to be added to xdp_md.data
439 * Return: 0 on success or negative on error446 * Return: 0 on success or negative on error
447 *
448 * int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr)
449 * Copy a NUL terminated string from unsafe address. In case the string
450 * length is smaller than size, the target is not padded with further NUL
451 * bytes. In case the string length is larger than size, just count-1
452 * bytes are copied and the last byte is set to NUL.
453 * @dst: destination address
454 * @size: maximum number of bytes to copy, including the trailing NUL
455 * @unsafe_ptr: unsafe address
456 * Return:
457 * > 0 length of the string including the trailing NUL on success
458 * < 0 error
440 */459 */
441#define __BPF_FUNC_MAPPER(FN) \460#define __BPF_FUNC_MAPPER(FN) \
442 FN(unspec), \461 FN(unspec), \
@@ -483,7 +502,8 @@ union bpf_attr { · 40 unmodified lines
483 FN(set_hash_invalid), \502 FN(set_hash_invalid), \
484 FN(get_numa_node_id), \503 FN(get_numa_node_id), \
485 FN(skb_change_head), \504 FN(skb_change_head), \
486 FN(xdp_adjust_head),505 FN(xdp_adjust_head), \
506 FN(probe_read_str),
487 507
488/* integer value in 'imm' field of BPF_CALL instruction selects which helper508/* integer value in 'imm' field of BPF_CALL instruction selects which helper
489 * function eBPF program intends to call509 * function eBPF program intends to call
@@ -509,6 +529,7 @@ enum bpf_func_id { · 19 unmodified lines
509/* BPF_FUNC_l4_csum_replace flags. */529/* BPF_FUNC_l4_csum_replace flags. */
510#define BPF_F_PSEUDO_HDR (1ULL << 4)530#define BPF_F_PSEUDO_HDR (1ULL << 4)
511#define BPF_F_MARK_MANGLED_0 (1ULL << 5)531#define BPF_F_MARK_MANGLED_0 (1ULL << 5)
532#define BPF_F_MARK_ENFORCE (1ULL << 6)
512 533
513/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */534/* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */
514#define BPF_F_INGRESS (1ULL << 0)535#define BPF_F_INGRESS (1ULL << 0)
include/uapi/linux/can/netlink.h+7−0
@@ -127,9 +127,16 @@ enum { · 126 unmodified lines
127 IFLA_CAN_BERR_COUNTER,127 IFLA_CAN_BERR_COUNTER,
128 IFLA_CAN_DATA_BITTIMING,128 IFLA_CAN_DATA_BITTIMING,
129 IFLA_CAN_DATA_BITTIMING_CONST,129 IFLA_CAN_DATA_BITTIMING_CONST,
130 IFLA_CAN_TERMINATION,
131 IFLA_CAN_TERMINATION_CONST,
132 IFLA_CAN_BITRATE_CONST,
133 IFLA_CAN_DATA_BITRATE_CONST,
130 __IFLA_CAN_MAX134 __IFLA_CAN_MAX
131};135};
132 136
133#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)137#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
134 138
139/* u16 termination range: 1..65535 Ohms */
140#define CAN_TERMINATION_DISABLED 0
141
135#endif /* !_UAPI_CAN_NETLINK_H */142#endif /* !_UAPI_CAN_NETLINK_H */
include/uapi/linux/devlink.h+8−2
@@ -57,8 +57,14 @@ enum devlink_command { · 56 unmodified lines
57 DEVLINK_CMD_SB_OCC_SNAPSHOT,57 DEVLINK_CMD_SB_OCC_SNAPSHOT,
58 DEVLINK_CMD_SB_OCC_MAX_CLEAR,58 DEVLINK_CMD_SB_OCC_MAX_CLEAR,
59 59
60 DEVLINK_CMD_ESWITCH_MODE_GET,60 DEVLINK_CMD_ESWITCH_GET,
61 DEVLINK_CMD_ESWITCH_MODE_SET,61#define DEVLINK_CMD_ESWITCH_MODE_GET /* obsolete, never use this! */ \
62 DEVLINK_CMD_ESWITCH_GET
63
64 DEVLINK_CMD_ESWITCH_SET,
65#define DEVLINK_CMD_ESWITCH_MODE_SET /* obsolete, never use this! */ \
66 DEVLINK_CMD_ESWITCH_SET
67
62 /* add new commands above here */68 /* add new commands above here */
63 69
64 __DEVLINK_CMD_MAX,70 __DEVLINK_CMD_MAX,
include/uapi/linux/fcntl.h+5−0
@@ -63,5 +63,10 @@ · 62 unmodified lines
63#define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */63#define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */
64#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */64#define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */
65 65
66#define AT_STATX_SYNC_TYPE 0x6000 /* Type of synchronisation required from statx() */
67#define AT_STATX_SYNC_AS_STAT 0x0000 /* - Do whatever stat() does */
68#define AT_STATX_FORCE_SYNC 0x2000 /* - Force the attributes to be sync'd with the server */
69#define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */
70
66 71
67#endif /* _UAPI_LINUX_FCNTL_H */72#endif /* _UAPI_LINUX_FCNTL_H */
include/uapi/linux/fs.h+1−0
@@ -132,6 +132,7 @@ struct inodes_stat_t { · 131 unmodified lines
132#define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */132#define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */
133 133
134/* These sb flags are internal to the kernel */134/* These sb flags are internal to the kernel */
135#define MS_SUBMOUNT (1<<26)
135#define MS_NOREMOTELOCK (1<<27)136#define MS_NOREMOTELOCK (1<<27)
136#define MS_NOSEC (1<<28)137#define MS_NOSEC (1<<28)
137#define MS_BORN (1<<29)138#define MS_BORN (1<<29)
include/uapi/linux/if.h+4−0
@@ -24,6 +24,10 @@ · 23 unmodified lines
24#include <linux/socket.h> /* for "struct sockaddr" et al */24#include <linux/socket.h> /* for "struct sockaddr" et al */
25#include <linux/compiler.h> /* for "__user" et al */25#include <linux/compiler.h> /* for "__user" et al */
26 26
27#ifndef __KERNEL__
28#include <sys/socket.h> /* for struct sockaddr. */
29#endif
30
27#if __UAPI_DEF_IF_IFNAMSIZ31#if __UAPI_DEF_IF_IFNAMSIZ
28#define IFNAMSIZ 1632#define IFNAMSIZ 16
29#endif /* __UAPI_DEF_IF_IFNAMSIZ */33#endif /* __UAPI_DEF_IF_IFNAMSIZ */
include/uapi/linux/if_bridge.h+11−0
@@ -118,6 +118,7 @@ enum { · 117 unmodified lines
118 IFLA_BRIDGE_FLAGS,118 IFLA_BRIDGE_FLAGS,
119 IFLA_BRIDGE_MODE,119 IFLA_BRIDGE_MODE,
120 IFLA_BRIDGE_VLAN_INFO,120 IFLA_BRIDGE_VLAN_INFO,
121 IFLA_BRIDGE_VLAN_TUNNEL_INFO,
121 __IFLA_BRIDGE_MAX,122 __IFLA_BRIDGE_MAX,
122};123};
123#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)124#define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
@@ -134,6 +135,16 @@ struct bridge_vlan_info { · 10 unmodified lines
134 __u16 vid;135 __u16 vid;
135};136};
136 137
138enum {
139 IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC,
140 IFLA_BRIDGE_VLAN_TUNNEL_ID,
141 IFLA_BRIDGE_VLAN_TUNNEL_VID,
142 IFLA_BRIDGE_VLAN_TUNNEL_FLAGS,
143 __IFLA_BRIDGE_VLAN_TUNNEL_MAX,
144};
145
146#define IFLA_BRIDGE_VLAN_TUNNEL_MAX (__IFLA_BRIDGE_VLAN_TUNNEL_MAX - 1)
147
137struct bridge_vlan_xstats {148struct bridge_vlan_xstats {
138 __u64 rx_bytes;149 __u64 rx_bytes;
139 __u64 rx_packets;150 __u64 rx_packets;
include/uapi/linux/if_ether.h+1−0
@@ -93,6 +93,7 @@ · 92 unmodified lines
93#define ETH_P_NCSI 0x88F8 /* NCSI protocol */93#define ETH_P_NCSI 0x88F8 /* NCSI protocol */
94#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */94#define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
95#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */95#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
96#define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */
96#define ETH_P_TDLS 0x890D /* TDLS */97#define ETH_P_TDLS 0x890D /* TDLS */
97#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */98#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
98#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */99#define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
include/uapi/linux/if_link.h+3−0
@@ -321,6 +321,8 @@ enum { · 320 unmodified lines
321 IFLA_BRPORT_MULTICAST_ROUTER,321 IFLA_BRPORT_MULTICAST_ROUTER,
322 IFLA_BRPORT_PAD,322 IFLA_BRPORT_PAD,
323 IFLA_BRPORT_MCAST_FLOOD,323 IFLA_BRPORT_MCAST_FLOOD,
324 IFLA_BRPORT_MCAST_TO_UCAST,
325 IFLA_BRPORT_VLAN_TUNNEL,
324 __IFLA_BRPORT_MAX326 __IFLA_BRPORT_MAX
325};327};
326#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)328#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -847,6 +849,7 @@ enum { · 520 unmodified lines
847 IFLA_STATS_LINK_XSTATS,849 IFLA_STATS_LINK_XSTATS,
848 IFLA_STATS_LINK_XSTATS_SLAVE,850 IFLA_STATS_LINK_XSTATS_SLAVE,
849 IFLA_STATS_LINK_OFFLOAD_XSTATS,851 IFLA_STATS_LINK_OFFLOAD_XSTATS,
852 IFLA_STATS_AF_SPEC,
850 __IFLA_STATS_MAX,853 __IFLA_STATS_MAX,
851};854};
852 855
include/uapi/linux/ife.h+18−0
@@ -0,0 +1,18 @@
1#ifndef __UAPI_IFE_H
2#define __UAPI_IFE_H
3
4#define IFE_METAHDRLEN 2
5
6enum {
7 IFE_META_SKBMARK = 1,
8 IFE_META_HASHID,
9 IFE_META_PRIO,
10 IFE_META_QMAP,
11 IFE_META_TCINDEX,
12 __IFE_META_MAX
13};
14
15/*Can be overridden at runtime by module option*/
16#define IFE_META_MAX (__IFE_META_MAX - 1)
17
18#endif
include/uapi/linux/igmp.h+2−2
@@ -53,7 +53,7 @@ struct igmpv3_grec { · 52 unmodified lines
53struct igmpv3_report {53struct igmpv3_report {
54 __u8 type;54 __u8 type;
55 __u8 resv1;55 __u8 resv1;
56 __be16 csum;56 __sum16 csum;
57 __be16 resv2;57 __be16 resv2;
58 __be16 ngrec;58 __be16 ngrec;
59 struct igmpv3_grec grec[0];59 struct igmpv3_grec grec[0];
@@ -62,7 +62,7 @@ struct igmpv3_report { · 2 unmodified lines
62struct igmpv3_query {62struct igmpv3_query {
63 __u8 type;63 __u8 type;
64 __u8 code;64 __u8 code;
65 __be16 csum;65 __sum16 csum;
66 __be32 group;66 __be32 group;
67#if defined(__LITTLE_ENDIAN_BITFIELD)67#if defined(__LITTLE_ENDIAN_BITFIELD)
68 __u8 qrv:3,68 __u8 qrv:3,
include/uapi/linux/iio/types.h+1−0
@@ -42,6 +42,7 @@ enum iio_chan_type { · 41 unmodified lines
42 IIO_ELECTRICALCONDUCTIVITY,42 IIO_ELECTRICALCONDUCTIVITY,
43 IIO_COUNT,43 IIO_COUNT,
44 IIO_INDEX,44 IIO_INDEX,
45 IIO_GRAVITY,
45};46};
46 47
47enum iio_modifier {48enum iio_modifier {
include/uapi/linux/ip6_tunnel.h+2−0
@@ -2,6 +2,8 @@ · 1 unmodified line
2#define _IP6_TUNNEL_H2#define _IP6_TUNNEL_H
3 3
4#include <linux/types.h>4#include <linux/types.h>
5#include <linux/if.h> /* For IFNAMSIZ. */
6#include <linux/in6.h> /* For struct in6_addr. */
5 7
6#define IPV6_TLV_TNL_ENCAP_LIMIT 48#define IPV6_TLV_TNL_ENCAP_LIMIT 4
7#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 49#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4
include/uapi/linux/ipv6.h+1−0
@@ -182,6 +182,7 @@ enum { · 181 unmodified lines
182 DEVCONF_SEG6_ENABLED,182 DEVCONF_SEG6_ENABLED,
183 DEVCONF_SEG6_REQUIRE_HMAC,183 DEVCONF_SEG6_REQUIRE_HMAC,
184 DEVCONF_ENHANCED_DAD,184 DEVCONF_ENHANCED_DAD,
185 DEVCONF_ADDR_GEN_MODE,
185 DEVCONF_MAX186 DEVCONF_MAX
186};187};
187 188
include/uapi/linux/ipv6_route.h+1−0
@@ -14,6 +14,7 @@ · 13 unmodified lines
14#define _UAPI_LINUX_IPV6_ROUTE_H14#define _UAPI_LINUX_IPV6_ROUTE_H
15 15
16#include <linux/types.h>16#include <linux/types.h>
17#include <linux/in6.h> /* For struct in6_addr. */
17 18
18#define RTF_DEFAULT 0x00010000 /* default - learned via ND */19#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
19#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)20#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)
include/uapi/linux/kvm.h+20−1
@@ -218,7 +218,8 @@ struct kvm_hyperv_exit { · 217 unmodified lines
218struct kvm_run {218struct kvm_run {
219 /* in */219 /* in */
220 __u8 request_interrupt_window;220 __u8 request_interrupt_window;
221 __u8 padding1[7];221 __u8 immediate_exit;
222 __u8 padding1[6];
222 223
223 /* out */224 /* out */
224 __u32 exit_reason;225 __u32 exit_reason;
@@ -685,6 +686,13 @@ struct kvm_ppc_smmu_info { · 460 unmodified lines
685 struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];686 struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
686};687};
687 688
689/* for KVM_PPC_RESIZE_HPT_{PREPARE,COMMIT} */
690struct kvm_ppc_resize_hpt {
691 __u64 flags;
692 __u32 shift;
693 __u32 pad;
694};
695
688#define KVMIO 0xAE696#define KVMIO 0xAE
689 697
690/* machine type bits, to be used as argument to KVM_CREATE_VM */698/* machine type bits, to be used as argument to KVM_CREATE_VM */
@@ -871,6 +879,10 @@ struct kvm_ppc_smmu_info { · 180 unmodified lines
871#define KVM_CAP_S390_USER_INSTR0 130879#define KVM_CAP_S390_USER_INSTR0 130
872#define KVM_CAP_MSI_DEVID 131880#define KVM_CAP_MSI_DEVID 131
873#define KVM_CAP_PPC_HTM 132881#define KVM_CAP_PPC_HTM 132
882#define KVM_CAP_SPAPR_RESIZE_HPT 133
883#define KVM_CAP_PPC_MMU_RADIX 134
884#define KVM_CAP_PPC_MMU_HASH_V3 135
885#define KVM_CAP_IMMEDIATE_EXIT 136
874 886
875#ifdef KVM_CAP_IRQ_ROUTING887#ifdef KVM_CAP_IRQ_ROUTING
876 888
@@ -1187,6 +1199,13 @@ struct kvm_s390_ucas_mapping { · 310 unmodified lines
1187#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr)1199#define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr)
1188/* Available with KVM_CAP_PPC_RTAS */1200/* Available with KVM_CAP_PPC_RTAS */
1189#define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args)1201#define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args)
1202/* Available with KVM_CAP_SPAPR_RESIZE_HPT */
1203#define KVM_PPC_RESIZE_HPT_PREPARE _IOR(KVMIO, 0xad, struct kvm_ppc_resize_hpt)
1204#define KVM_PPC_RESIZE_HPT_COMMIT _IOR(KVMIO, 0xae, struct kvm_ppc_resize_hpt)
1205/* Available with KVM_CAP_PPC_RADIX_MMU or KVM_CAP_PPC_HASH_MMU_V3 */
1206#define KVM_PPC_CONFIGURE_V3_MMU _IOW(KVMIO, 0xaf, struct kvm_ppc_mmuv3_cfg)
1207/* Available with KVM_CAP_PPC_RADIX_MMU */
1208#define KVM_PPC_GET_RMMU_INFO _IOW(KVMIO, 0xb0, struct kvm_ppc_rmmu_info)
1190 1209
1191/* ioctl for vm fd */1210/* ioctl for vm fd */
1192#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)1211#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
include/uapi/linux/kvm_para.h+2−0
@@ -14,6 +14,7 @@ · 13 unmodified lines
14#define KVM_EFAULT EFAULT14#define KVM_EFAULT EFAULT
15#define KVM_E2BIG E2BIG15#define KVM_E2BIG E2BIG
16#define KVM_EPERM EPERM16#define KVM_EPERM EPERM
17#define KVM_EOPNOTSUPP 95
17 18
18#define KVM_HC_VAPIC_POLL_IRQ 119#define KVM_HC_VAPIC_POLL_IRQ 1
19#define KVM_HC_MMU_OP 220#define KVM_HC_MMU_OP 2
@@ -23,6 +24,7 @@ · 3 unmodified lines
23#define KVM_HC_MIPS_GET_CLOCK_FREQ 624#define KVM_HC_MIPS_GET_CLOCK_FREQ 6
24#define KVM_HC_MIPS_EXIT_VM 725#define KVM_HC_MIPS_EXIT_VM 7
25#define KVM_HC_MIPS_CONSOLE_OUTPUT 826#define KVM_HC_MIPS_CONSOLE_OUTPUT 8
27#define KVM_HC_CLOCK_PAIRING 9
26 28
27/*29/*
28 * hypercalls use architecture specific30 * hypercalls use architecture specific
include/uapi/linux/llc.h+1−0
@@ -14,6 +14,7 @@ · 13 unmodified lines
14#define _UAPI__LINUX_LLC_H14#define _UAPI__LINUX_LLC_H
15 15
16#include <linux/socket.h>16#include <linux/socket.h>
17#include <linux/if.h> /* For IFHWADDRLEN. */
17 18
18#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */19#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */
19struct sockaddr_llc {20struct sockaddr_llc {
include/uapi/linux/mpls.h+30−0
@@ -43,4 +43,34 @@ struct mpls_label { · 42 unmodified lines
43 43
44#define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */44#define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */
45 45
46/* These are embedded into IFLA_STATS_AF_SPEC:
47 * [IFLA_STATS_AF_SPEC]
48 * -> [AF_MPLS]
49 * -> [MPLS_STATS_xxx]
50 *
51 * Attributes:
52 * [MPLS_STATS_LINK] = {
53 * struct mpls_link_stats
54 * }
55 */
56enum {
57 MPLS_STATS_UNSPEC, /* also used as 64bit pad attribute */
58 MPLS_STATS_LINK,
59 __MPLS_STATS_MAX,
60};
61
62#define MPLS_STATS_MAX (__MPLS_STATS_MAX - 1)
63
64struct mpls_link_stats {
65 __u64 rx_packets; /* total packets received */
66 __u64 tx_packets; /* total packets transmitted */
67 __u64 rx_bytes; /* total bytes received */
68 __u64 tx_bytes; /* total bytes transmitted */
69 __u64 rx_errors; /* bad packets received */
70 __u64 tx_errors; /* packet transmit problems */
71 __u64 rx_dropped; /* packet dropped on receive */
72 __u64 tx_dropped; /* packet dropped on transmit */
73 __u64 rx_noroute; /* no route for packet dest */
74};
75
46#endif /* _UAPI_MPLS_H */76#endif /* _UAPI_MPLS_H */
include/uapi/linux/mqueue.h+2−0
@@ -18,6 +18,8 @@ · 17 unmodified lines
18#ifndef _LINUX_MQUEUE_H18#ifndef _LINUX_MQUEUE_H
19#define _LINUX_MQUEUE_H19#define _LINUX_MQUEUE_H
20 20
21#include <linux/types.h>
22
21#define MQ_PRIO_MAX 3276823#define MQ_PRIO_MAX 32768
22/* per-uid limit of kernel memory used by mqueue, in bytes */24/* per-uid limit of kernel memory used by mqueue, in bytes */
23#define MQ_BYTES_MAX 81920025#define MQ_BYTES_MAX 819200
include/uapi/linux/mroute.h+1−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
3 3
4#include <linux/sockios.h>4#include <linux/sockios.h>
5#include <linux/types.h>5#include <linux/types.h>
6#include <linux/in.h> /* For struct in_addr. */
6 7
7/* Based on the MROUTING 3.5 defines primarily to keep8/* Based on the MROUTING 3.5 defines primarily to keep
8 * source compatibility with BSD.9 * source compatibility with BSD.
include/uapi/linux/mroute6.h+1−0
@@ -4,6 +4,7 @@ · 3 unmodified lines
4#include <linux/kernel.h>4#include <linux/kernel.h>
5#include <linux/types.h>5#include <linux/types.h>
6#include <linux/sockios.h>6#include <linux/sockios.h>
7#include <linux/in6.h> /* For struct sockaddr_in6. */
7 8
8/*9/*
9 * Based on the MROUTING 3.5 defines primarily to keep10 * Based on the MROUTING 3.5 defines primarily to keep
include/uapi/linux/neighbour.h+1−0
@@ -26,6 +26,7 @@ enum { · 25 unmodified lines
26 NDA_IFINDEX,26 NDA_IFINDEX,
27 NDA_MASTER,27 NDA_MASTER,
28 NDA_LINK_NETNSID,28 NDA_LINK_NETNSID,
29 NDA_SRC_VNI,
29 __NDA_MAX30 __NDA_MAX
30};31};
31 32
include/uapi/linux/netconf.h+1−0
@@ -16,6 +16,7 @@ enum { · 15 unmodified lines
16 NETCONFA_MC_FORWARDING,16 NETCONFA_MC_FORWARDING,
17 NETCONFA_PROXY_NEIGH,17 NETCONFA_PROXY_NEIGH,
18 NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,18 NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
19 NETCONFA_INPUT,
19 __NETCONFA_MAX20 __NETCONFA_MAX
20};21};
21#define NETCONFA_MAX (__NETCONFA_MAX - 1)22#define NETCONFA_MAX (__NETCONFA_MAX - 1)
include/uapi/linux/netfilter.h+0−1
@@ -3,7 +3,6 @@ · 2 unmodified lines
3 3
4#include <linux/types.h>4#include <linux/types.h>
5#include <linux/compiler.h>5#include <linux/compiler.h>
6#include <linux/sysctl.h>
7#include <linux/in.h>6#include <linux/in.h>
8#include <linux/in6.h>7#include <linux/in6.h>
9 8
include/uapi/linux/netfilter/nf_conntrack_common.h+4−0
@@ -82,6 +82,10 @@ enum ip_conntrack_status { · 81 unmodified lines
82 IPS_DYING_BIT = 9,82 IPS_DYING_BIT = 9,
83 IPS_DYING = (1 << IPS_DYING_BIT),83 IPS_DYING = (1 << IPS_DYING_BIT),
84 84
85 /* Bits that cannot be altered from userland. */
86 IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK |
87 IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING),
88
85 /* Connection has fixed timeout. */89 /* Connection has fixed timeout. */
86 IPS_FIXED_TIMEOUT_BIT = 10,90 IPS_FIXED_TIMEOUT_BIT = 10,
87 IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),91 IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
include/uapi/linux/netfilter/nf_tables.h+31−1
@@ -207,6 +207,7 @@ enum nft_chain_attributes { · 206 unmodified lines
207 * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes)207 * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes)
208 * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64)208 * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64)
209 * @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN)209 * @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN)
210 * @NFTA_RULE_ID: uniquely identifies a rule in a transaction (NLA_U32)
210 */211 */
211enum nft_rule_attributes {212enum nft_rule_attributes {
212 NFTA_RULE_UNSPEC,213 NFTA_RULE_UNSPEC,
@@ -218,6 +219,7 @@ enum nft_rule_attributes { · 5 unmodified lines
218 NFTA_RULE_POSITION,219 NFTA_RULE_POSITION,
219 NFTA_RULE_USERDATA,220 NFTA_RULE_USERDATA,
220 NFTA_RULE_PAD,221 NFTA_RULE_PAD,
222 NFTA_RULE_ID,
221 __NFTA_RULE_MAX223 __NFTA_RULE_MAX
222};224};
223#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)225#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
@@ -704,13 +706,32 @@ enum nft_payload_attributes { · 480 unmodified lines
704};706};
705#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)707#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
706 708
709enum nft_exthdr_flags {
710 NFT_EXTHDR_F_PRESENT = (1 << 0),
711};
712
713/**
714 * enum nft_exthdr_op - nf_tables match options
715 *
716 * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
717 * @NFT_EXTHDR_OP_TCP: match against tcp options
718 */
719enum nft_exthdr_op {
720 NFT_EXTHDR_OP_IPV6,
721 NFT_EXTHDR_OP_TCPOPT,
722 __NFT_EXTHDR_OP_MAX
723};
724#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
725
707/**726/**
708 * enum nft_exthdr_attributes - nf_tables IPv6 extension header expression netlink attributes727 * enum nft_exthdr_attributes - nf_tables extension header expression netlink attributes
709 *728 *
710 * @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers)729 * @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers)
711 * @NFTA_EXTHDR_TYPE: extension header type (NLA_U8)730 * @NFTA_EXTHDR_TYPE: extension header type (NLA_U8)
712 * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32)731 * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32)
713 * @NFTA_EXTHDR_LEN: extension header length (NLA_U32)732 * @NFTA_EXTHDR_LEN: extension header length (NLA_U32)
733 * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32)
734 * @NFTA_EXTHDR_OP: option match type (NLA_U8)
714 */735 */
715enum nft_exthdr_attributes {736enum nft_exthdr_attributes {
716 NFTA_EXTHDR_UNSPEC,737 NFTA_EXTHDR_UNSPEC,
@@ -718,6 +739,8 @@ enum nft_exthdr_attributes { · 1 unmodified line
718 NFTA_EXTHDR_TYPE,739 NFTA_EXTHDR_TYPE,
719 NFTA_EXTHDR_OFFSET,740 NFTA_EXTHDR_OFFSET,
720 NFTA_EXTHDR_LEN,741 NFTA_EXTHDR_LEN,
742 NFTA_EXTHDR_FLAGS,
743 NFTA_EXTHDR_OP,
721 __NFTA_EXTHDR_MAX744 __NFTA_EXTHDR_MAX
722};745};
723#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)746#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
@@ -860,6 +883,11 @@ enum nft_rt_attributes { · 136 unmodified lines
860 * @NFT_CT_PROTOCOL: conntrack layer 4 protocol883 * @NFT_CT_PROTOCOL: conntrack layer 4 protocol
861 * @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source884 * @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source
862 * @NFT_CT_PROTO_DST: conntrack layer 4 protocol destination885 * @NFT_CT_PROTO_DST: conntrack layer 4 protocol destination
886 * @NFT_CT_LABELS: conntrack labels
887 * @NFT_CT_PKTS: conntrack packets
888 * @NFT_CT_BYTES: conntrack bytes
889 * @NFT_CT_AVGPKT: conntrack average bytes per packet
890 * @NFT_CT_ZONE: conntrack zone
863 */891 */
864enum nft_ct_keys {892enum nft_ct_keys {
865 NFT_CT_STATE,893 NFT_CT_STATE,
@@ -878,6 +906,8 @@ enum nft_ct_keys { · 12 unmodified lines
878 NFT_CT_LABELS,906 NFT_CT_LABELS,
879 NFT_CT_PKTS,907 NFT_CT_PKTS,
880 NFT_CT_BYTES,908 NFT_CT_BYTES,
909 NFT_CT_AVGPKT,
910 NFT_CT_ZONE,
881};911};
882 912
883/**913/**
include/uapi/linux/netfilter/nfnetlink.h+12−0
@@ -65,4 +65,16 @@ struct nfgenmsg { · 64 unmodified lines
65#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE65#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
66#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+166#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1
67 67
68/**
69 * enum nfnl_batch_attributes - nfnetlink batch netlink attributes
70 *
71 * @NFNL_BATCH_GENID: generation ID for this changeset (NLA_U32)
72 */
73enum nfnl_batch_attributes {
74 NFNL_BATCH_UNSPEC,
75 NFNL_BATCH_GENID,
76 __NFNL_BATCH_MAX
77};
78#define NFNL_BATCH_MAX (__NFNL_BATCH_MAX - 1)
79
68#endif /* _UAPI_NFNETLINK_H */80#endif /* _UAPI_NFNETLINK_H */
include/uapi/linux/netfilter/nfnetlink_queue.h+1−1
@@ -36,7 +36,7 @@ enum nfqnl_vlan_attr { · 35 unmodified lines
36 NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */36 NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */
37 __NFQA_VLAN_MAX,37 __NFQA_VLAN_MAX,
38};38};
39#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX + 1)39#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX - 1)
40 40
41enum nfqnl_attr_type {41enum nfqnl_attr_type {
42 NFQA_UNSPEC,42 NFQA_UNSPEC,
include/uapi/linux/netfilter/xt_hashlimit.h+1−0
@@ -2,6 +2,7 @@ · 1 unmodified line
2#define _UAPI_XT_HASHLIMIT_H2#define _UAPI_XT_HASHLIMIT_H
3 3
4#include <linux/types.h>4#include <linux/types.h>
5#include <linux/limits.h>
5#include <linux/if.h>6#include <linux/if.h>
6 7
7/* timings are in milliseconds. */8/* timings are in milliseconds. */
include/uapi/linux/netlink.h+1−0
@@ -27,6 +27,7 @@ · 26 unmodified lines
27#define NETLINK_ECRYPTFS 1927#define NETLINK_ECRYPTFS 19
28#define NETLINK_RDMA 2028#define NETLINK_RDMA 20
29#define NETLINK_CRYPTO 21 /* Crypto layer */29#define NETLINK_CRYPTO 21 /* Crypto layer */
30#define NETLINK_SMC 22 /* SMC monitoring */
30 31
31#define NETLINK_INET_DIAG NETLINK_SOCK_DIAG32#define NETLINK_INET_DIAG NETLINK_SOCK_DIAG
32 33
include/uapi/linux/nfsd/export.h+3−2
@@ -32,7 +32,8 @@ · 31 unmodified lines
32#define NFSEXP_ASYNC 0x001032#define NFSEXP_ASYNC 0x0010
33#define NFSEXP_GATHERED_WRITES 0x002033#define NFSEXP_GATHERED_WRITES 0x0020
34#define NFSEXP_NOREADDIRPLUS 0x004034#define NFSEXP_NOREADDIRPLUS 0x0040
35/* 80 100 currently unused */35#define NFSEXP_SECURITY_LABEL 0x0080
36/* 0x100 currently unused */
36#define NFSEXP_NOHIDE 0x020037#define NFSEXP_NOHIDE 0x0200
37#define NFSEXP_NOSUBTREECHECK 0x040038#define NFSEXP_NOSUBTREECHECK 0x0400
38#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */39#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */
@@ -53,7 +54,7 @@ · 14 unmodified lines
53#define NFSEXP_PNFS 0x2000054#define NFSEXP_PNFS 0x20000
54 55
55/* All flags that we claim to support. (Note we don't support NOACL.) */56/* All flags that we claim to support. (Note we don't support NOACL.) */
56#define NFSEXP_ALLFLAGS 0x3FE7F57#define NFSEXP_ALLFLAGS 0x3FEFF
57 58
58/* The flags that may vary depending on security flavor: */59/* The flags that may vary depending on security flavor: */
59#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \60#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
include/uapi/linux/nl80211.h+91−33
@@ -10,7 +10,7 @@ · 9 unmodified lines
10 * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>10 * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com>
11 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>11 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
12 * Copyright 2008 Colin McCabe <colin@cozybit.com>12 * Copyright 2008 Colin McCabe <colin@cozybit.com>
13 * Copyright 2015 Intel Deutschland GmbH13 * Copyright 2015-2017 Intel Deutschland GmbH
14 *14 *
15 * Permission to use, copy, modify, and/or distribute this software for any15 * Permission to use, copy, modify, and/or distribute this software for any
16 * purpose with or without fee is hereby granted, provided that the above16 * purpose with or without fee is hereby granted, provided that the above
@@ -854,12 +854,15 @@ · 837 unmodified lines
854 * cfg80211_scan_done().854 * cfg80211_scan_done().
855 *855 *
856 * @NL80211_CMD_START_NAN: Start NAN operation, identified by its856 * @NL80211_CMD_START_NAN: Start NAN operation, identified by its
857 * %NL80211_ATTR_WDEV interface. This interface must have been previously857 * %NL80211_ATTR_WDEV interface. This interface must have been
858 * created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the858 * previously created with %NL80211_CMD_NEW_INTERFACE. After it
859 * NAN interface will create or join a cluster. This command must have a859 * has been started, the NAN interface will create or join a
860 * valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional860 * cluster. This command must have a valid
861 * %NL80211_ATTR_NAN_DUAL attributes.861 * %NL80211_ATTR_NAN_MASTER_PREF attribute and optional
862 * After this command NAN functions can be added.862 * %NL80211_ATTR_BANDS attributes. If %NL80211_ATTR_BANDS is
863 * omitted or set to 0, it means don't-care and the device will
864 * decide what to use. After this command NAN functions can be
865 * added.
863 * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by866 * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by
864 * its %NL80211_ATTR_WDEV interface.867 * its %NL80211_ATTR_WDEV interface.
865 * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined868 * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined
@@ -880,10 +883,14 @@ · 14 unmodified lines
880 * This command is also used as a notification sent when a NAN function is883 * This command is also used as a notification sent when a NAN function is
881 * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID884 * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID
882 * and %NL80211_ATTR_COOKIE attributes.885 * and %NL80211_ATTR_COOKIE attributes.
883 * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN configuration. NAN886 * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN
884 * must be operational (%NL80211_CMD_START_NAN was executed).887 * configuration. NAN must be operational (%NL80211_CMD_START_NAN
885 * It must contain at least one of the following attributes:888 * was executed). It must contain at least one of the following
886 * %NL80211_ATTR_NAN_MASTER_PREF, %NL80211_ATTR_NAN_DUAL.889 * attributes: %NL80211_ATTR_NAN_MASTER_PREF,
890 * %NL80211_ATTR_BANDS. If %NL80211_ATTR_BANDS is omitted, the
891 * current configuration is not changed. If it is present but
892 * set to zero, the configuration is changed to don't-care
893 * (i.e. the device can decide what to do).
887 * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported.894 * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported.
888 * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and895 * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and
889 * %NL80211_ATTR_COOKIE.896 * %NL80211_ATTR_COOKIE.
@@ -1822,6 +1829,8 @@ enum nl80211_commands { · 932 unmodified lines
1822 * and remove functions. NAN notifications will be sent in unicast to that1829 * and remove functions. NAN notifications will be sent in unicast to that
1823 * socket. Without this attribute, any socket can add functions and the1830 * socket. Without this attribute, any socket can add functions and the
1824 * notifications will be sent to the %NL80211_MCGRP_NAN multicast group.1831 * notifications will be sent to the %NL80211_MCGRP_NAN multicast group.
1832 * If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the
1833 * station will deauthenticate when the socket is closed.
1825 *1834 *
1826 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is1835 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
1827 * the TDLS link initiator.1836 * the TDLS link initiator.
@@ -1961,10 +1970,13 @@ enum nl80211_commands { · 133 unmodified lines
1961 * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0.1970 * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0.
1962 * Also, values 1 and 255 are reserved for certification purposes and1971 * Also, values 1 and 255 are reserved for certification purposes and
1963 * should not be used during a normal device operation.1972 * should not be used during a normal device operation.
1964 * @NL80211_ATTR_NAN_DUAL: NAN dual band operation config (see1973 * @NL80211_ATTR_BANDS: operating bands configuration. This is a u32
1965 * &enum nl80211_nan_dual_band_conf). This attribute is used with1974 * bitmask of BIT(NL80211_BAND_*) as described in %enum
1966 * %NL80211_CMD_START_NAN and optionally with1975 * nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0
1967 * %NL80211_CMD_CHANGE_NAN_CONFIG.1976 * would be set. This attribute is used with
1977 * %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG, and
1978 * it is optional. If no bands are set, it means don't-care and
1979 * the device will decide what to use.
1968 * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See1980 * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See
1969 * &enum nl80211_nan_func_attributes for description of this nested1981 * &enum nl80211_nan_func_attributes for description of this nested
1970 * attribute.1982 * attribute.
@@ -1982,6 +1994,24 @@ enum nl80211_commands { · 11 unmodified lines
1982 * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also1994 * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also
1983 * used in various commands/events for specifying the BSSID.1995 * used in various commands/events for specifying the BSSID.
1984 *1996 *
1997 * @NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI: Relative RSSI threshold by which
1998 * other BSSs has to be better or slightly worse than the current
1999 * connected BSS so that they get reported to user space.
2000 * This will give an opportunity to userspace to consider connecting to
2001 * other matching BSSs which have better or slightly worse RSSI than
2002 * the current connected BSS by using an offloaded operation to avoid
2003 * unnecessary wakeups.
2004 *
2005 * @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in
2006 * the specified band is to be adjusted before doing
2007 * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparision to figure out
2008 * better BSSs. The attribute value is a packed structure
2009 * value as specified by &struct nl80211_bss_select_rssi_adjust.
2010 *
2011 * @NL80211_ATTR_TIMEOUT_REASON: The reason for which an operation timed out.
2012 * u32 attribute with an &enum nl80211_timeout_reason value. This is used,
2013 * e.g., with %NL80211_CMD_CONNECT event.
2014 *
1985 * @NUM_NL80211_ATTR: total number of nl80211_attrs available2015 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
1986 * @NL80211_ATTR_MAX: highest attribute number currently defined2016 * @NL80211_ATTR_MAX: highest attribute number currently defined
1987 * @__NL80211_ATTR_AFTER_LAST: internal use2017 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2377,7 +2407,7 @@ enum nl80211_attrs { · 389 unmodified lines
2377 NL80211_ATTR_MESH_PEER_AID,2407 NL80211_ATTR_MESH_PEER_AID,
2378 2408
2379 NL80211_ATTR_NAN_MASTER_PREF,2409 NL80211_ATTR_NAN_MASTER_PREF,
2380 NL80211_ATTR_NAN_DUAL,2410 NL80211_ATTR_BANDS,
2381 NL80211_ATTR_NAN_FUNC,2411 NL80211_ATTR_NAN_FUNC,
2382 NL80211_ATTR_NAN_MATCH,2412 NL80211_ATTR_NAN_MATCH,
2383 2413
@@ -2388,6 +2418,11 @@ enum nl80211_attrs { · 4 unmodified lines
2388 2418
2389 NL80211_ATTR_BSSID,2419 NL80211_ATTR_BSSID,
2390 2420
2421 NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI,
2422 NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST,
2423
2424 NL80211_ATTR_TIMEOUT_REASON,
2425
2391 /* add attributes here, update the policy in nl80211.c */2426 /* add attributes here, update the policy in nl80211.c */
2392 2427
2393 __NL80211_ATTR_AFTER_LAST,2428 __NL80211_ATTR_AFTER_LAST,
@@ -3080,6 +3115,13 @@ enum nl80211_reg_rule_attr { · 686 unmodified lines
3080 * how this API was implemented in the past. Also, due to the same problem,3115 * how this API was implemented in the past. Also, due to the same problem,
3081 * the only way to create a matchset with only an RSSI filter (with this3116 * the only way to create a matchset with only an RSSI filter (with this
3082 * attribute) is if there's only a single matchset with the RSSI attribute.3117 * attribute) is if there's only a single matchset with the RSSI attribute.
3118 * @NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI: Flag indicating whether
3119 * %NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to be used as absolute RSSI or
3120 * relative to current bss's RSSI.
3121 * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST: When present the RSSI level for
3122 * BSS-es in the specified band is to be adjusted before doing
3123 * RSSI-based BSS selection. The attribute value is a packed structure
3124 * value as specified by &struct nl80211_bss_select_rssi_adjust.
3083 * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter3125 * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter
3084 * attribute number currently defined3126 * attribute number currently defined
3085 * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use3127 * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use
@@ -3089,6 +3131,8 @@ enum nl80211_sched_scan_match_attr { · 3 unmodified lines
3089 3131
3090 NL80211_SCHED_SCAN_MATCH_ATTR_SSID,3132 NL80211_SCHED_SCAN_MATCH_ATTR_SSID,
3091 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,3133 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI,
3134 NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI,
3135 NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST,
3092 3136
3093 /* keep last */3137 /* keep last */
3094 __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,3138 __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST,
@@ -3918,6 +3962,8 @@ enum nl80211_ps_state { · 823 unmodified lines
3918 * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting.3962 * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting.
3919 * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon3963 * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon
3920 * loss event3964 * loss event
3965 * @NL80211_ATTR_CQM_RSSI_LEVEL: the RSSI value in dBm that triggered the
3966 * RSSI threshold event.
3921 * @__NL80211_ATTR_CQM_AFTER_LAST: internal3967 * @__NL80211_ATTR_CQM_AFTER_LAST: internal
3922 * @NL80211_ATTR_CQM_MAX: highest key attribute3968 * @NL80211_ATTR_CQM_MAX: highest key attribute
3923 */3969 */
@@ -3931,6 +3977,7 @@ enum nl80211_attr_cqm { · 7 unmodified lines
3931 NL80211_ATTR_CQM_TXE_PKTS,3977 NL80211_ATTR_CQM_TXE_PKTS,
3932 NL80211_ATTR_CQM_TXE_INTVL,3978 NL80211_ATTR_CQM_TXE_INTVL,
3933 NL80211_ATTR_CQM_BEACON_LOSS_EVENT,3979 NL80211_ATTR_CQM_BEACON_LOSS_EVENT,
3980 NL80211_ATTR_CQM_RSSI_LEVEL,
3934 3981
3935 /* keep last */3982 /* keep last */
3936 __NL80211_ATTR_CQM_AFTER_LAST,3983 __NL80211_ATTR_CQM_AFTER_LAST,
@@ -4699,6 +4746,13 @@ enum nl80211_feature_flags { · 762 unmodified lines
4699 * configuration (AP/mesh) with VHT rates.4746 * configuration (AP/mesh) with VHT rates.
4700 * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup4747 * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup
4701 * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode.4748 * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode.
4749 * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA: This driver supports randomized TA
4750 * in @NL80211_CMD_FRAME while not associated.
4751 * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED: This driver supports
4752 * randomized TA in @NL80211_CMD_FRAME while associated.
4753 * @NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI: The driver supports sched_scan
4754 * for reporting BSSs with better RSSI than the current connected BSS
4755 * (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI).
4702 *4756 *
4703 * @NUM_NL80211_EXT_FEATURES: number of extended features.4757 * @NUM_NL80211_EXT_FEATURES: number of extended features.
4704 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.4758 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -4714,6 +4768,9 @@ enum nl80211_ext_feature_index { · 9 unmodified lines
4714 NL80211_EXT_FEATURE_BEACON_RATE_HT,4768 NL80211_EXT_FEATURE_BEACON_RATE_HT,
4715 NL80211_EXT_FEATURE_BEACON_RATE_VHT,4769 NL80211_EXT_FEATURE_BEACON_RATE_VHT,
4716 NL80211_EXT_FEATURE_FILS_STA,4770 NL80211_EXT_FEATURE_FILS_STA,
4771 NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA,
4772 NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED,
4773 NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI,
4717 4774
4718 /* add new features before the definition below */4775 /* add new features before the definition below */
4719 NUM_NL80211_EXT_FEATURES,4776 NUM_NL80211_EXT_FEATURES,
@@ -4752,6 +4809,21 @@ enum nl80211_connect_failed_reason { · 32 unmodified lines
4752 NL80211_CONN_FAIL_BLOCKED_CLIENT,4809 NL80211_CONN_FAIL_BLOCKED_CLIENT,
4753};4810};
4754 4811
4812/**
4813 * enum nl80211_timeout_reason - timeout reasons
4814 *
4815 * @NL80211_TIMEOUT_UNSPECIFIED: Timeout reason unspecified.
4816 * @NL80211_TIMEOUT_SCAN: Scan (AP discovery) timed out.
4817 * @NL80211_TIMEOUT_AUTH: Authentication timed out.
4818 * @NL80211_TIMEOUT_ASSOC: Association timed out.
4819 */
4820enum nl80211_timeout_reason {
4821 NL80211_TIMEOUT_UNSPECIFIED,
4822 NL80211_TIMEOUT_SCAN,
4823 NL80211_TIMEOUT_AUTH,
4824 NL80211_TIMEOUT_ASSOC,
4825};
4826
4755/**4827/**
4756 * enum nl80211_scan_flags - scan request control flags4828 * enum nl80211_scan_flags - scan request control flags
4757 *4829 *
@@ -4966,8 +5038,9 @@ enum nl80211_sched_scan_plan { · 208 unmodified lines
4966/**5038/**
4967 * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters.5039 * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters.
4968 *5040 *
4969 * @band: band of BSS that must match for RSSI value adjustment.5041 * @band: band of BSS that must match for RSSI value adjustment. The value
4970 * @delta: value used to adjust the RSSI value of matching BSS.5042 * of this field is according to &enum nl80211_band.
5043 * @delta: value used to adjust the RSSI value of matching BSS in dB.
4971 */5044 */
4972struct nl80211_bss_select_rssi_adjust {5045struct nl80211_bss_select_rssi_adjust {
4973 __u8 band;5046 __u8 band;
@@ -5007,21 +5080,6 @@ enum nl80211_bss_select_attr { · 33 unmodified lines
5007 NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 15080 NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1
5008};5081};
5009 5082
5010/**
5011 * enum nl80211_nan_dual_band_conf - NAN dual band configuration
5012 *
5013 * Defines the NAN dual band mode of operation
5014 *
5015 * @NL80211_NAN_BAND_DEFAULT: device default mode
5016 * @NL80211_NAN_BAND_2GHZ: 2.4GHz mode
5017 * @NL80211_NAN_BAND_5GHZ: 5GHz mode
5018 */
5019enum nl80211_nan_dual_band_conf {
5020 NL80211_NAN_BAND_DEFAULT = 1 << 0,
5021 NL80211_NAN_BAND_2GHZ = 1 << 1,
5022 NL80211_NAN_BAND_5GHZ = 1 << 2,
5023};
5024
5025/**5083/**
5026 * enum nl80211_nan_function_type - NAN function type5084 * enum nl80211_nan_function_type - NAN function type
5027 *5085 *
include/uapi/linux/nsfs.h+7−2
@@ -6,8 +6,13 @@ · 5 unmodified lines
6#define NSIO 0xb76#define NSIO 0xb7
7 7
8/* Returns a file descriptor that refers to an owning user namespace */8/* Returns a file descriptor that refers to an owning user namespace */
9#define NS_GET_USERNS _IO(NSIO, 0x1)9#define NS_GET_USERNS _IO(NSIO, 0x1)
10/* Returns a file descriptor that refers to a parent namespace */10/* Returns a file descriptor that refers to a parent namespace */
11#define NS_GET_PARENT _IO(NSIO, 0x2)11#define NS_GET_PARENT _IO(NSIO, 0x2)
12/* Returns the type of namespace (CLONE_NEW* value) referred to by
13 file descriptor */
14#define NS_GET_NSTYPE _IO(NSIO, 0x3)
15/* Get owner UID (in the caller's user namespace) for a user namespace */
16#define NS_GET_OWNER_UID _IO(NSIO, 0x4)
12 17
13#endif /* __LINUX_NSFS_H */18#endif /* __LINUX_NSFS_H */
include/uapi/linux/openvswitch.h+30−3
@@ -1,6 +1,6 @@
1 1
2/*2/*
3 * Copyright (c) 2007-2013 Nicira, Inc.3 * Copyright (c) 2007-2017 Nicira, Inc.
4 *4 *
5 * This program is free software; you can redistribute it and/or5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of version 2 of the GNU General Public6 * modify it under the terms of version 2 of the GNU General Public
@@ -331,6 +331,8 @@ enum ovs_key_attr { · 324 unmodified lines
331 OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */331 OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */
332 OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */332 OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */
333 OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */333 OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */
334 OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, /* struct ovs_key_ct_tuple_ipv4 */
335 OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, /* struct ovs_key_ct_tuple_ipv6 */
334 336
335#ifdef __KERNEL__337#ifdef __KERNEL__
336 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */338 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */
@@ -446,9 +448,13 @@ struct ovs_key_nd { · 109 unmodified lines
446 __u8 nd_tll[ETH_ALEN];448 __u8 nd_tll[ETH_ALEN];
447};449};
448 450
449#define OVS_CT_LABELS_LEN 16451#define OVS_CT_LABELS_LEN_32 4
452#define OVS_CT_LABELS_LEN (OVS_CT_LABELS_LEN_32 * sizeof(__u32))
450struct ovs_key_ct_labels {453struct ovs_key_ct_labels {
451 __u8 ct_labels[OVS_CT_LABELS_LEN];454 union {
455 __u8 ct_labels[OVS_CT_LABELS_LEN];
456 __u32 ct_labels_32[OVS_CT_LABELS_LEN_32];
457 };
452};458};
453 459
454/* OVS_KEY_ATTR_CT_STATE flags */460/* OVS_KEY_ATTR_CT_STATE flags */
@@ -468,6 +474,22 @@ struct ovs_key_ct_labels { · 13 unmodified lines
468 474
469#define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT)475#define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT)
470 476
477struct ovs_key_ct_tuple_ipv4 {
478 __be32 ipv4_src;
479 __be32 ipv4_dst;
480 __be16 src_port;
481 __be16 dst_port;
482 __u8 ipv4_proto;
483};
484
485struct ovs_key_ct_tuple_ipv6 {
486 __be32 ipv6_src[4];
487 __be32 ipv6_dst[4];
488 __be16 src_port;
489 __be16 dst_port;
490 __u8 ipv6_proto;
491};
492
471/**493/**
472 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.494 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
473 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow495 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
@@ -652,6 +674,10 @@ struct ovs_action_hash { · 178 unmodified lines
652 * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG.674 * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG.
653 * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address675 * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address
654 * translation (NAT) on the packet.676 * translation (NAT) on the packet.
677 * @OVS_CT_ATTR_FORCE_COMMIT: Like %OVS_CT_ATTR_COMMIT, but instead of doing
678 * nothing if the connection is already committed will check that the current
679 * packet is in conntrack entry's original direction. If directionality does
680 * not match, will delete the existing conntrack entry and commit a new one.
655 */681 */
656enum ovs_ct_attr {682enum ovs_ct_attr {
657 OVS_CT_ATTR_UNSPEC,683 OVS_CT_ATTR_UNSPEC,
@@ -662,6 +688,7 @@ enum ovs_ct_attr { · 4 unmodified lines
662 OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of688 OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of
663 related connections. */689 related connections. */
664 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */690 OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */
691 OVS_CT_ATTR_FORCE_COMMIT, /* No argument */
665 __OVS_CT_ATTR_MAX692 __OVS_CT_ATTR_MAX
666};693};
667 694
include/uapi/linux/packet_diag.h+1−1
@@ -64,7 +64,7 @@ struct packet_diag_mclist { · 63 unmodified lines
64 __u32 pdmc_count;64 __u32 pdmc_count;
65 __u16 pdmc_type;65 __u16 pdmc_type;
66 __u16 pdmc_alen;66 __u16 pdmc_alen;
67 __u8 pdmc_addr[MAX_ADDR_LEN];67 __u8 pdmc_addr[32]; /* MAX_ADDR_LEN */
68};68};
69 69
70struct packet_diag_ring {70struct packet_diag_ring {
include/uapi/linux/pci_regs.h+17−0
@@ -682,6 +682,7 @@ · 681 unmodified lines
682#define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */682#define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */
683#define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */683#define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */
684#define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */684#define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */
685#define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */
685#define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */686#define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */
686#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PTM687#define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PTM
687 688
@@ -973,6 +974,7 @@ · 285 unmodified lines
973#define PCI_EXP_DPC_STATUS 8 /* DPC Status */974#define PCI_EXP_DPC_STATUS 8 /* DPC Status */
974#define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */975#define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */
975#define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */976#define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */
977#define PCI_EXP_DPC_RP_BUSY 0x10 /* Root Port Busy */
976 978
977#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */979#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
978 980
@@ -985,4 +987,19 @@ · 6 unmodified lines
985#define PCI_PTM_CTRL_ENABLE 0x00000001 /* PTM enable */987#define PCI_PTM_CTRL_ENABLE 0x00000001 /* PTM enable */
986#define PCI_PTM_CTRL_ROOT 0x00000002 /* Root select */988#define PCI_PTM_CTRL_ROOT 0x00000002 /* Root select */
987 989
990/* L1 PM Substates */
991#define PCI_L1SS_CAP 4 /* capability register */
992#define PCI_L1SS_CAP_PCIPM_L1_2 1 /* PCI PM L1.2 Support */
993#define PCI_L1SS_CAP_PCIPM_L1_1 2 /* PCI PM L1.1 Support */
994#define PCI_L1SS_CAP_ASPM_L1_2 4 /* ASPM L1.2 Support */
995#define PCI_L1SS_CAP_ASPM_L1_1 8 /* ASPM L1.1 Support */
996#define PCI_L1SS_CAP_L1_PM_SS 16 /* L1 PM Substates Support */
997#define PCI_L1SS_CTL1 8 /* Control Register 1 */
998#define PCI_L1SS_CTL1_PCIPM_L1_2 1 /* PCI PM L1.2 Enable */
999#define PCI_L1SS_CTL1_PCIPM_L1_1 2 /* PCI PM L1.1 Support */
1000#define PCI_L1SS_CTL1_ASPM_L1_2 4 /* ASPM L1.2 Support */
1001#define PCI_L1SS_CTL1_ASPM_L1_1 8 /* ASPM L1.1 Support */
1002#define PCI_L1SS_CTL1_L1SS_MASK 0x0000000F
1003#define PCI_L1SS_CTL2 0xC /* Control Register 2 */
1004
988#endif /* LINUX_PCI_REGS_H */1005#endif /* LINUX_PCI_REGS_H */
include/uapi/linux/pkt_cls.h+17−56
@@ -4,60 +4,7 @@ · 3 unmodified lines
4#include <linux/types.h>4#include <linux/types.h>
5#include <linux/pkt_sched.h>5#include <linux/pkt_sched.h>
6 6
7#ifdef __KERNEL__7#define TC_COOKIE_MAX_SIZE 16
8/* I think i could have done better macros ; for now this is stolen from
9 * some arch/mips code - jhs
10*/
11#define _TC_MAKE32(x) ((x))
12
13#define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n))
14#define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n))
15#define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n))
16#define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n))
17
18/* verdict bit breakdown
19 *
20bit 0: when set -> this packet has been munged already
21
22bit 1: when set -> It is ok to munge this packet
23
24bit 2,3,4,5: Reclassify counter - sort of reverse TTL - if exceeded
25assume loop
26
27bit 6,7: Where this packet was last seen
280: Above the transmit example at the socket level
291: on the Ingress
302: on the Egress
31
32bit 8: when set --> Request not to classify on ingress.
33
34bits 9,10,11: redirect counter - redirect TTL. Loop avoidance
35
36 *
37 * */
38
39#define S_TC_FROM _TC_MAKE32(6)
40#define M_TC_FROM _TC_MAKEMASK(2,S_TC_FROM)
41#define G_TC_FROM(x) _TC_GETVALUE(x,S_TC_FROM,M_TC_FROM)
42#define V_TC_FROM(x) _TC_MAKEVALUE(x,S_TC_FROM)
43#define SET_TC_FROM(v,n) ((V_TC_FROM(n)) | (v & ~M_TC_FROM))
44#define AT_STACK 0x0
45#define AT_INGRESS 0x1
46#define AT_EGRESS 0x2
47
48#define TC_NCLS _TC_MAKEMASK1(8)
49#define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS))
50#define CLR_TC_NCLS(v) ( v & ~TC_NCLS)
51
52#define S_TC_AT _TC_MAKE32(12)
53#define M_TC_AT _TC_MAKEMASK(2,S_TC_AT)
54#define G_TC_AT(x) _TC_GETVALUE(x,S_TC_AT,M_TC_AT)
55#define V_TC_AT(x) _TC_MAKEVALUE(x,S_TC_AT)
56#define SET_TC_AT(v,n) ((V_TC_AT(n)) | (v & ~M_TC_AT))
57
58#define MAX_REC_LOOP 4
59#define MAX_RED_LOOP 4
60#endif
61 8
62/* Action attributes */9/* Action attributes */
63enum {10enum {
@@ -67,6 +14,7 @@ enum { · 3 unmodified lines
67 TCA_ACT_INDEX,14 TCA_ACT_INDEX,
68 TCA_ACT_STATS,15 TCA_ACT_STATS,
69 TCA_ACT_PAD,16 TCA_ACT_PAD,
17 TCA_ACT_COOKIE,
70 __TCA_ACT_MAX18 __TCA_ACT_MAX
71};19};
72 20
@@ -155,8 +103,10 @@ enum { · 82 unmodified lines
155#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)103#define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1)
156 104
157/* tca flags definitions */105/* tca flags definitions */
158#define TCA_CLS_FLAGS_SKIP_HW (1 << 0)106#define TCA_CLS_FLAGS_SKIP_HW (1 << 0) /* don't offload filter to HW */
159#define TCA_CLS_FLAGS_SKIP_SW (1 << 1)107#define TCA_CLS_FLAGS_SKIP_SW (1 << 1) /* don't use filter in SW */
108#define TCA_CLS_FLAGS_IN_HW (1 << 2) /* filter is offloaded to HW */
109#define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) /* filter isn't offloaded to HW */
160 110
161/* U32 filters */111/* U32 filters */
162 112
@@ -471,6 +421,17 @@ enum { · 308 unmodified lines
471 TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */421 TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */
472 TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,/* u8 */422 TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,/* u8 */
473 423
424 TCA_FLOWER_KEY_ARP_SIP, /* be32 */
425 TCA_FLOWER_KEY_ARP_SIP_MASK, /* be32 */
426 TCA_FLOWER_KEY_ARP_TIP, /* be32 */
427 TCA_FLOWER_KEY_ARP_TIP_MASK, /* be32 */
428 TCA_FLOWER_KEY_ARP_OP, /* u8 */
429 TCA_FLOWER_KEY_ARP_OP_MASK, /* u8 */
430 TCA_FLOWER_KEY_ARP_SHA, /* ETH_ALEN */
431 TCA_FLOWER_KEY_ARP_SHA_MASK, /* ETH_ALEN */
432 TCA_FLOWER_KEY_ARP_THA, /* ETH_ALEN */
433 TCA_FLOWER_KEY_ARP_THA_MASK, /* ETH_ALEN */
434
474 __TCA_FLOWER_MAX,435 __TCA_FLOWER_MAX,
475};436};
476 437
include/uapi/linux/psample.h+35−0
@@ -0,0 +1,35 @@
1#ifndef __UAPI_PSAMPLE_H
2#define __UAPI_PSAMPLE_H
3
4enum {
5 /* sampled packet metadata */
6 PSAMPLE_ATTR_IIFINDEX,
7 PSAMPLE_ATTR_OIFINDEX,
8 PSAMPLE_ATTR_ORIGSIZE,
9 PSAMPLE_ATTR_SAMPLE_GROUP,
10 PSAMPLE_ATTR_GROUP_SEQ,
11 PSAMPLE_ATTR_SAMPLE_RATE,
12 PSAMPLE_ATTR_DATA,
13
14 /* commands attributes */
15 PSAMPLE_ATTR_GROUP_REFCOUNT,
16
17 __PSAMPLE_ATTR_MAX
18};
19
20enum psample_command {
21 PSAMPLE_CMD_SAMPLE,
22 PSAMPLE_CMD_GET_GROUP,
23 PSAMPLE_CMD_NEW_GROUP,
24 PSAMPLE_CMD_DEL_GROUP,
25};
26
27/* Can be overridden at runtime by module option */
28#define PSAMPLE_ATTR_MAX (__PSAMPLE_ATTR_MAX - 1)
29
30#define PSAMPLE_NL_MCGRP_CONFIG_NAME "config"
31#define PSAMPLE_NL_MCGRP_SAMPLE_NAME "packets"
32#define PSAMPLE_GENL_NAME "psample"
33#define PSAMPLE_GENL_VERSION 1
34
35#endif
include/uapi/linux/rds.h+87−53
@@ -35,6 +35,7 @@ · 34 unmodified lines
35#define _LINUX_RDS_H35#define _LINUX_RDS_H
36 36
37#include <linux/types.h>37#include <linux/types.h>
38#include <linux/socket.h> /* For __kernel_sockaddr_storage. */
38 39
39#define RDS_IB_ABI_VERSION 0x30140#define RDS_IB_ABI_VERSION 0x301
40 41
@@ -52,6 +53,13 @@ · 11 unmodified lines
52#define RDS_GET_MR_FOR_DEST 753#define RDS_GET_MR_FOR_DEST 7
53#define SO_RDS_TRANSPORT 854#define SO_RDS_TRANSPORT 8
54 55
56/* Socket option to tap receive path latency
57 * SO_RDS: SO_RDS_MSG_RXPATH_LATENCY
58 * Format used struct rds_rx_trace_so
59 */
60#define SO_RDS_MSG_RXPATH_LATENCY 10
61
62
55/* supported values for SO_RDS_TRANSPORT */63/* supported values for SO_RDS_TRANSPORT */
56#define RDS_TRANS_IB 064#define RDS_TRANS_IB 0
57#define RDS_TRANS_IWARP 165#define RDS_TRANS_IWARP 1
@@ -77,6 +85,12 @@ · 19 unmodified lines
77 * the same as for the GET_MR setsockopt.85 * the same as for the GET_MR setsockopt.
78 * RDS_CMSG_RDMA_STATUS (recvmsg)86 * RDS_CMSG_RDMA_STATUS (recvmsg)
79 * Returns the status of a completed RDMA operation.87 * Returns the status of a completed RDMA operation.
88 * RDS_CMSG_RXPATH_LATENCY(recvmsg)
89 * Returns rds message latencies in various stages of receive
90 * path in nS. Its set per socket using SO_RDS_MSG_RXPATH_LATENCY
91 * socket option. Legitimate points are defined in
92 * enum rds_message_rxpath_latency. More points can be added in
93 * future. CSMG format is struct rds_cmsg_rx_trace.
80 */94 */
81#define RDS_CMSG_RDMA_ARGS 195#define RDS_CMSG_RDMA_ARGS 1
82#define RDS_CMSG_RDMA_DEST 296#define RDS_CMSG_RDMA_DEST 2
@@ -87,6 +101,7 @@ · 4 unmodified lines
87#define RDS_CMSG_ATOMIC_CSWP 7101#define RDS_CMSG_ATOMIC_CSWP 7
88#define RDS_CMSG_MASKED_ATOMIC_FADD 8102#define RDS_CMSG_MASKED_ATOMIC_FADD 8
89#define RDS_CMSG_MASKED_ATOMIC_CSWP 9103#define RDS_CMSG_MASKED_ATOMIC_CSWP 9
104#define RDS_CMSG_RXPATH_LATENCY 11
90 105
91#define RDS_INFO_FIRST 10000106#define RDS_INFO_FIRST 10000
92#define RDS_INFO_COUNTERS 10000107#define RDS_INFO_COUNTERS 10000
@@ -103,8 +118,8 @@ · 10 unmodified lines
103#define RDS_INFO_LAST 10010118#define RDS_INFO_LAST 10010
104 119
105struct rds_info_counter {120struct rds_info_counter {
106 uint8_t name[32];121 __u8 name[32];
107 uint64_t value;122 __u64 value;
108} __attribute__((packed));123} __attribute__((packed));
109 124
110#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01125#define RDS_INFO_CONNECTION_FLAG_SENDING 0x01
@@ -114,35 +129,35 @@ struct rds_info_counter { · 3 unmodified lines
114#define TRANSNAMSIZ 16129#define TRANSNAMSIZ 16
115 130
116struct rds_info_connection {131struct rds_info_connection {
117 uint64_t next_tx_seq;132 __u64 next_tx_seq;
118 uint64_t next_rx_seq;133 __u64 next_rx_seq;
119 __be32 laddr;134 __be32 laddr;
120 __be32 faddr;135 __be32 faddr;
121 uint8_t transport[TRANSNAMSIZ]; /* null term ascii */136 __u8 transport[TRANSNAMSIZ]; /* null term ascii */
122 uint8_t flags;137 __u8 flags;
123} __attribute__((packed));138} __attribute__((packed));
124 139
125#define RDS_INFO_MESSAGE_FLAG_ACK 0x01140#define RDS_INFO_MESSAGE_FLAG_ACK 0x01
126#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02141#define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
127 142
128struct rds_info_message {143struct rds_info_message {
129 uint64_t seq;144 __u64 seq;
130 uint32_t len;145 __u32 len;
131 __be32 laddr;146 __be32 laddr;
132 __be32 faddr;147 __be32 faddr;
133 __be16 lport;148 __be16 lport;
134 __be16 fport;149 __be16 fport;
135 uint8_t flags;150 __u8 flags;
136} __attribute__((packed));151} __attribute__((packed));
137 152
138struct rds_info_socket {153struct rds_info_socket {
139 uint32_t sndbuf;154 __u32 sndbuf;
140 __be32 bound_addr;155 __be32 bound_addr;
141 __be32 connected_addr;156 __be32 connected_addr;
142 __be16 bound_port;157 __be16 bound_port;
143 __be16 connected_port;158 __be16 connected_port;
144 uint32_t rcvbuf;159 __u32 rcvbuf;
145 uint64_t inum;160 __u64 inum;
146} __attribute__((packed));161} __attribute__((packed));
147 162
148struct rds_info_tcp_socket {163struct rds_info_tcp_socket {
@@ -150,25 +165,44 @@ struct rds_info_tcp_socket { · 1 unmodified line
150 __be16 local_port;165 __be16 local_port;
151 __be32 peer_addr;166 __be32 peer_addr;
152 __be16 peer_port;167 __be16 peer_port;
153 uint64_t hdr_rem;168 __u64 hdr_rem;
154 uint64_t data_rem;169 __u64 data_rem;
155 uint32_t last_sent_nxt;170 __u32 last_sent_nxt;
156 uint32_t last_expected_una;171 __u32 last_expected_una;
157 uint32_t last_seen_una;172 __u32 last_seen_una;
158} __attribute__((packed));173} __attribute__((packed));
159 174
160#define RDS_IB_GID_LEN 16175#define RDS_IB_GID_LEN 16
161struct rds_info_rdma_connection {176struct rds_info_rdma_connection {
162 __be32 src_addr;177 __be32 src_addr;
163 __be32 dst_addr;178 __be32 dst_addr;
164 uint8_t src_gid[RDS_IB_GID_LEN];179 __u8 src_gid[RDS_IB_GID_LEN];
165 uint8_t dst_gid[RDS_IB_GID_LEN];180 __u8 dst_gid[RDS_IB_GID_LEN];
166 181
167 uint32_t max_send_wr;182 __u32 max_send_wr;
168 uint32_t max_recv_wr;183 __u32 max_recv_wr;
169 uint32_t max_send_sge;184 __u32 max_send_sge;
170 uint32_t rdma_mr_max;185 __u32 rdma_mr_max;
171 uint32_t rdma_mr_size;186 __u32 rdma_mr_size;
187};
188
189/* RDS message Receive Path Latency points */
190enum rds_message_rxpath_latency {
191 RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
192 RDS_MSG_RX_DGRAM_REASSEMBLE,
193 RDS_MSG_RX_DGRAM_DELIVERED,
194 RDS_MSG_RX_DGRAM_TRACE_MAX
195};
196
197struct rds_rx_trace_so {
198 __u8 rx_traces;
199 __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX];
200};
201
202struct rds_cmsg_rx_trace {
203 __u8 rx_traces;
204 __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX];
205 __u64 rx_trace[RDS_MSG_RX_DGRAM_TRACE_MAX];
172};206};
173 207
174/*208/*
@@ -209,70 +243,70 @@ struct rds_info_rdma_connection { · 34 unmodified lines
209 * (so that the application does not have to worry about243 * (so that the application does not have to worry about
210 * alignment).244 * alignment).
211 */245 */
212typedef uint64_t rds_rdma_cookie_t;246typedef __u64 rds_rdma_cookie_t;
213 247
214struct rds_iovec {248struct rds_iovec {
215 uint64_t addr;249 __u64 addr;
216 uint64_t bytes;250 __u64 bytes;
217};251};
218 252
219struct rds_get_mr_args {253struct rds_get_mr_args {
220 struct rds_iovec vec;254 struct rds_iovec vec;
221 uint64_t cookie_addr;255 __u64 cookie_addr;
222 uint64_t flags;256 __u64 flags;
223};257};
224 258
225struct rds_get_mr_for_dest_args {259struct rds_get_mr_for_dest_args {
226 struct sockaddr_storage dest_addr;260 struct __kernel_sockaddr_storage dest_addr;
227 struct rds_iovec vec;261 struct rds_iovec vec;
228 uint64_t cookie_addr;262 __u64 cookie_addr;
229 uint64_t flags;263 __u64 flags;
230};264};
231 265
232struct rds_free_mr_args {266struct rds_free_mr_args {
233 rds_rdma_cookie_t cookie;267 rds_rdma_cookie_t cookie;
234 uint64_t flags;268 __u64 flags;
235};269};
236 270
237struct rds_rdma_args {271struct rds_rdma_args {
238 rds_rdma_cookie_t cookie;272 rds_rdma_cookie_t cookie;
239 struct rds_iovec remote_vec;273 struct rds_iovec remote_vec;
240 uint64_t local_vec_addr;274 __u64 local_vec_addr;
241 uint64_t nr_local;275 __u64 nr_local;
242 uint64_t flags;276 __u64 flags;
243 uint64_t user_token;277 __u64 user_token;
244};278};
245 279
246struct rds_atomic_args {280struct rds_atomic_args {
247 rds_rdma_cookie_t cookie;281 rds_rdma_cookie_t cookie;
248 uint64_t local_addr;282 __u64 local_addr;
249 uint64_t remote_addr;283 __u64 remote_addr;
250 union {284 union {
251 struct {285 struct {
252 uint64_t compare;286 __u64 compare;
253 uint64_t swap;287 __u64 swap;
254 } cswp;288 } cswp;
255 struct {289 struct {
256 uint64_t add;290 __u64 add;
257 } fadd;291 } fadd;
258 struct {292 struct {
259 uint64_t compare;293 __u64 compare;
260 uint64_t swap;294 __u64 swap;
261 uint64_t compare_mask;295 __u64 compare_mask;
262 uint64_t swap_mask;296 __u64 swap_mask;
263 } m_cswp;297 } m_cswp;
264 struct {298 struct {
265 uint64_t add;299 __u64 add;
266 uint64_t nocarry_mask;300 __u64 nocarry_mask;
267 } m_fadd;301 } m_fadd;
268 };302 };
269 uint64_t flags;303 __u64 flags;
270 uint64_t user_token;304 __u64 user_token;
271};305};
272 306
273struct rds_rdma_notify {307struct rds_rdma_notify {
274 uint64_t user_token;308 __u64 user_token;
275 int32_t status;309 __s32 status;
276};310};
277 311
278#define RDS_RDMA_SUCCESS 0312#define RDS_RDMA_SUCCESS 0
include/uapi/linux/rpmsg.h+35−0
@@ -0,0 +1,35 @@
1/*
2 * Copyright (c) 2016, Linaro Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef _UAPI_RPMSG_H_
15#define _UAPI_RPMSG_H_
16
17#include <linux/ioctl.h>
18#include <linux/types.h>
19
20/**
21 * struct rpmsg_endpoint_info - endpoint info representation
22 * @name: name of service
23 * @src: local address
24 * @dst: destination address
25 */
26struct rpmsg_endpoint_info {
27 char name[32];
28 __u32 src;
29 __u32 dst;
30};
31
32#define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
33#define RPMSG_DESTROY_EPT_IOCTL _IO(0xb5, 0x2)
34
35#endif
include/uapi/linux/rtnetlink.h+3−0
@@ -350,6 +350,7 @@ struct rtnexthop { · 349 unmodified lines
350#define RTNH_F_ONLINK 4 /* Gateway is forced on link */350#define RTNH_F_ONLINK 4 /* Gateway is forced on link */
351#define RTNH_F_OFFLOAD 8 /* offloaded route */351#define RTNH_F_OFFLOAD 8 /* offloaded route */
352#define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */352#define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */
353#define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */
353 354
354#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)355#define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD)
355 356
@@ -657,6 +658,8 @@ enum rtnetlink_groups { · 301 unmodified lines
657#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE658#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
658 RTNLGRP_NSID,659 RTNLGRP_NSID,
659#define RTNLGRP_NSID RTNLGRP_NSID660#define RTNLGRP_NSID RTNLGRP_NSID
661 RTNLGRP_MPLS_NETCONF,
662#define RTNLGRP_MPLS_NETCONF RTNLGRP_MPLS_NETCONF
660 __RTNLGRP_MAX663 __RTNLGRP_MAX
661};664};
662#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)665#define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
include/uapi/linux/sched/types.h+74−0
@@ -0,0 +1,74 @@
1#ifndef _UAPI_LINUX_SCHED_TYPES_H
2#define _UAPI_LINUX_SCHED_TYPES_H
3
4#include <linux/types.h>
5
6struct sched_param {
7 int sched_priority;
8};
9
10#define SCHED_ATTR_SIZE_VER0 48 /* sizeof first published struct */
11
12/*
13 * Extended scheduling parameters data structure.
14 *
15 * This is needed because the original struct sched_param can not be
16 * altered without introducing ABI issues with legacy applications
17 * (e.g., in sched_getparam()).
18 *
19 * However, the possibility of specifying more than just a priority for
20 * the tasks may be useful for a wide variety of application fields, e.g.,
21 * multimedia, streaming, automation and control, and many others.
22 *
23 * This variant (sched_attr) is meant at describing a so-called
24 * sporadic time-constrained task. In such model a task is specified by:
25 * - the activation period or minimum instance inter-arrival time;
26 * - the maximum (or average, depending on the actual scheduling
27 * discipline) computation time of all instances, a.k.a. runtime;
28 * - the deadline (relative to the actual activation time) of each
29 * instance.
30 * Very briefly, a periodic (sporadic) task asks for the execution of
31 * some specific computation --which is typically called an instance--
32 * (at most) every period. Moreover, each instance typically lasts no more
33 * than the runtime and must be completed by time instant t equal to
34 * the instance activation time + the deadline.
35 *
36 * This is reflected by the actual fields of the sched_attr structure:
37 *
38 * @size size of the structure, for fwd/bwd compat.
39 *
40 * @sched_policy task's scheduling policy
41 * @sched_flags for customizing the scheduler behaviour
42 * @sched_nice task's nice value (SCHED_NORMAL/BATCH)
43 * @sched_priority task's static priority (SCHED_FIFO/RR)
44 * @sched_deadline representative of the task's deadline
45 * @sched_runtime representative of the task's runtime
46 * @sched_period representative of the task's period
47 *
48 * Given this task model, there are a multiplicity of scheduling algorithms
49 * and policies, that can be used to ensure all the tasks will make their
50 * timing constraints.
51 *
52 * As of now, the SCHED_DEADLINE policy (sched_dl scheduling class) is the
53 * only user of this new interface. More information about the algorithm
54 * available in the scheduling class file or in Documentation/.
55 */
56struct sched_attr {
57 u32 size;
58
59 u32 sched_policy;
60 u64 sched_flags;
61
62 /* SCHED_NORMAL, SCHED_BATCH */
63 s32 sched_nice;
64
65 /* SCHED_FIFO, SCHED_RR */
66 u32 sched_priority;
67
68 /* SCHED_DEADLINE */
69 u64 sched_runtime;
70 u64 sched_deadline;
71 u64 sched_period;
72};
73
74#endif /* _UAPI_LINUX_SCHED_TYPES_H */
include/uapi/linux/sctp.h+42−0
@@ -115,6 +115,10 @@ typedef __s32 sctp_assoc_t; · 114 unmodified lines
115#define SCTP_PR_SUPPORTED 113115#define SCTP_PR_SUPPORTED 113
116#define SCTP_DEFAULT_PRINFO 114116#define SCTP_DEFAULT_PRINFO 114
117#define SCTP_PR_ASSOC_STATUS 115117#define SCTP_PR_ASSOC_STATUS 115
118#define SCTP_ENABLE_STREAM_RESET 118
119#define SCTP_RESET_STREAMS 119
120#define SCTP_RESET_ASSOC 120
121#define SCTP_ADD_STREAMS 121
118 122
119/* PR-SCTP policies */123/* PR-SCTP policies */
120#define SCTP_PR_SCTP_NONE 0x0000124#define SCTP_PR_SCTP_NONE 0x0000
@@ -138,6 +142,15 @@ typedef __s32 sctp_assoc_t; · 17 unmodified lines
138#define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX)142#define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX)
139#define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO)143#define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO)
140 144
145/* For enable stream reset */
146#define SCTP_ENABLE_RESET_STREAM_REQ 0x01
147#define SCTP_ENABLE_RESET_ASSOC_REQ 0x02
148#define SCTP_ENABLE_CHANGE_ASSOC_REQ 0x04
149#define SCTP_ENABLE_STRRESET_MASK 0x07
150
151#define SCTP_STREAM_RESET_INCOMING 0x01
152#define SCTP_STREAM_RESET_OUTGOING 0x02
153
141/* These are bit fields for msghdr->msg_flags. See section 5.1. */154/* These are bit fields for msghdr->msg_flags. See section 5.1. */
142/* On user space Linux, these live in <bits/socket.h> as an enum. */155/* On user space Linux, these live in <bits/socket.h> as an enum. */
143enum sctp_msg_flags {156enum sctp_msg_flags {
@@ -477,6 +490,18 @@ struct sctp_sender_dry_event { · 333 unmodified lines
477 sctp_assoc_t sender_dry_assoc_id;490 sctp_assoc_t sender_dry_assoc_id;
478};491};
479 492
493#define SCTP_STREAM_RESET_INCOMING_SSN 0x0001
494#define SCTP_STREAM_RESET_OUTGOING_SSN 0x0002
495#define SCTP_STREAM_RESET_DENIED 0x0004
496#define SCTP_STREAM_RESET_FAILED 0x0008
497struct sctp_stream_reset_event {
498 __u16 strreset_type;
499 __u16 strreset_flags;
500 __u32 strreset_length;
501 sctp_assoc_t strreset_assoc_id;
502 __u16 strreset_stream_list[];
503};
504
480/*505/*
481 * Described in Section 7.3506 * Described in Section 7.3
482 * Ancillary Data and Notification Interest Options507 * Ancillary Data and Notification Interest Options
@@ -492,6 +517,7 @@ struct sctp_event_subscribe { · 9 unmodified lines
492 __u8 sctp_adaptation_layer_event;517 __u8 sctp_adaptation_layer_event;
493 __u8 sctp_authentication_event;518 __u8 sctp_authentication_event;
494 __u8 sctp_sender_dry_event;519 __u8 sctp_sender_dry_event;
520 __u8 sctp_stream_reset_event;
495};521};
496 522
497/*523/*
@@ -516,6 +542,7 @@ union sctp_notification { · 18 unmodified lines
516 struct sctp_pdapi_event sn_pdapi_event;542 struct sctp_pdapi_event sn_pdapi_event;
517 struct sctp_authkey_event sn_authkey_event;543 struct sctp_authkey_event sn_authkey_event;
518 struct sctp_sender_dry_event sn_sender_dry_event;544 struct sctp_sender_dry_event sn_sender_dry_event;
545 struct sctp_stream_reset_event sn_strreset_event;
519};546};
520 547
521/* Section 5.3.1548/* Section 5.3.1
@@ -543,6 +570,8 @@ enum sctp_sn_type { · 21 unmodified lines
543#define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT570#define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT
544 SCTP_SENDER_DRY_EVENT,571 SCTP_SENDER_DRY_EVENT,
545#define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT572#define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT
573 SCTP_STREAM_RESET_EVENT,
574#define SCTP_STREAM_RESET_EVENT SCTP_STREAM_RESET_EVENT
546};575};
547 576
548/* Notification error codes used to fill up the error fields in some577/* Notification error codes used to fill up the error fields in some
@@ -1008,4 +1037,17 @@ struct sctp_info { · 459 unmodified lines
1008 __u32 __reserved3;1037 __u32 __reserved3;
1009};1038};
1010 1039
1040struct sctp_reset_streams {
1041 sctp_assoc_t srs_assoc_id;
1042 uint16_t srs_flags;
1043 uint16_t srs_number_streams; /* 0 == ALL */
1044 uint16_t srs_stream_list[]; /* list if srs_num_streams is not 0 */
1045};
1046
1047struct sctp_add_streams {
1048 sctp_assoc_t sas_assoc_id;
1049 uint16_t sas_instrms;
1050 uint16_t sas_outstrms;
1051};
1052
1011#endif /* _UAPI_SCTP_H */1053#endif /* _UAPI_SCTP_H */
include/uapi/linux/seg6.h+3−0
@@ -14,6 +14,9 @@ · 13 unmodified lines
14#ifndef _UAPI_LINUX_SEG6_H14#ifndef _UAPI_LINUX_SEG6_H
15#define _UAPI_LINUX_SEG6_H15#define _UAPI_LINUX_SEG6_H
16 16
17#include <linux/types.h>
18#include <linux/in6.h> /* For struct in6_addr. */
19
17/*20/*
18 * SRH21 * SRH
19 */22 */
include/uapi/linux/seg6_hmac.h+1−0
@@ -1,6 +1,7 @@
1#ifndef _UAPI_LINUX_SEG6_HMAC_H1#ifndef _UAPI_LINUX_SEG6_HMAC_H
2#define _UAPI_LINUX_SEG6_HMAC_H2#define _UAPI_LINUX_SEG6_HMAC_H
3 3
4#include <linux/types.h>
4#include <linux/seg6.h>5#include <linux/seg6.h>
5 6
6#define SEG6_HMAC_SECRET_LEN 647#define SEG6_HMAC_SECRET_LEN 64
include/uapi/linux/seg6_iptunnel.h+6−0
@@ -14,6 +14,8 @@ · 13 unmodified lines
14#ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H14#ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H
15#define _UAPI_LINUX_SEG6_IPTUNNEL_H15#define _UAPI_LINUX_SEG6_IPTUNNEL_H
16 16
17#include <linux/seg6.h> /* For struct ipv6_sr_hdr. */
18
17enum {19enum {
18 SEG6_IPTUNNEL_UNSPEC,20 SEG6_IPTUNNEL_UNSPEC,
19 SEG6_IPTUNNEL_SRH,21 SEG6_IPTUNNEL_SRH,
@@ -33,6 +35,8 @@ enum { · 13 unmodified lines
33 SEG6_IPTUN_MODE_ENCAP,35 SEG6_IPTUN_MODE_ENCAP,
34};36};
35 37
38#ifdef __KERNEL__
39
36static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)40static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
37{41{
38 int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP);42 int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP);
@@ -42,3 +46,5 @@ static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) · 3 unmodified lines
42}46}
43 47
44#endif48#endif
49
50#endif
include/uapi/linux/serial_core.h+2−1
@@ -56,7 +56,8 @@ · 55 unmodified lines
56#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */56#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
57#define PORT_RT2880 29 /* Ralink RT2880 internal UART */57#define PORT_RT2880 29 /* Ralink RT2880 internal UART */
58#define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */58#define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */
59#define PORT_MAX_8250 30 /* max port ID */59#define PORT_DA830 31 /* TI DA8xx/66AK2x */
60#define PORT_MAX_8250 31 /* max port ID */
60 61
61/*62/*
62 * ARM specific type numbers. These are not currently guaranteed63 * ARM specific type numbers. These are not currently guaranteed
include/uapi/linux/serial_reg.h+8−18
@@ -327,6 +327,14 @@ · 326 unmodified lines
327#define SERIAL_RSA_BAUD_BASE (921600)327#define SERIAL_RSA_BAUD_BASE (921600)
328#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8)328#define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8)
329 329
330/* Extra registers for TI DA8xx/66AK2x */
331#define UART_DA830_PWREMU_MGMT 12
332
333/* PWREMU_MGMT register bits */
334#define UART_DA830_PWREMU_MGMT_FREE (1 << 0) /* Free-running mode */
335#define UART_DA830_PWREMU_MGMT_URRST (1 << 13) /* Receiver reset/enable */
336#define UART_DA830_PWREMU_MGMT_UTRST (1 << 14) /* Transmitter reset/enable */
337
330/*338/*
331 * Extra serial register definitions for the internal UARTs339 * Extra serial register definitions for the internal UARTs
332 * in TI OMAP processors.340 * in TI OMAP processors.
@@ -358,24 +366,6 @@ · 25 unmodified lines
358#define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */366#define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */
359#define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */367#define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */
360 368
361/*
362 * These are definitions for the Exar XR17V35X and XR17(C|D)15X
363 */
364#define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */
365#define UART_EXAR_SLEEP 0x8b /* Sleep mode */
366#define UART_EXAR_DVID 0x8d /* Device identification */
367
368#define UART_EXAR_FCTR 0x08 /* Feature Control Register */
369#define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */
370#define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */
371#define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */
372#define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */
373#define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */
374#define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */
375
376#define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */
377#define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */
378
379/*369/*
380 * These are definitions for the Altera ALTR_16550_F32/F64/F128370 * These are definitions for the Altera ALTR_16550_F32/F64/F128
381 * Normalized from 0x100 to 0x40 because of shift by 2 (32 bit regs).371 * Normalized from 0x100 to 0x40 because of shift by 2 (32 bit regs).
include/uapi/linux/serio.h+4−3
@@ -17,9 +17,10 @@ · 16 unmodified lines
17/*17/*
18 * bit masks for use in "interrupt" flags (3rd argument)18 * bit masks for use in "interrupt" flags (3rd argument)
19 */19 */
20#define SERIO_TIMEOUT 120#define SERIO_TIMEOUT BIT(0)
21#define SERIO_PARITY 221#define SERIO_PARITY BIT(1)
22#define SERIO_FRAME 422#define SERIO_FRAME BIT(2)
23#define SERIO_OOB_DATA BIT(3)
23 24
24/*25/*
25 * Serio types26 * Serio types
include/uapi/linux/smc.h+35−0
@@ -0,0 +1,35 @@
1/*
2 * Shared Memory Communications over RDMA (SMC-R) and RoCE
3 *
4 * Definitions for generic netlink based configuration of an SMC-R PNET table
5 *
6 * Copyright IBM Corp. 2016
7 *
8 * Author(s): Thomas Richter <tmricht@linux.vnet.ibm.com>
9 */
10
11#ifndef _UAPI_LINUX_SMC_H_
12#define _UAPI_LINUX_SMC_H_
13
14/* Netlink SMC_PNETID attributes */
15enum {
16 SMC_PNETID_UNSPEC,
17 SMC_PNETID_NAME,
18 SMC_PNETID_ETHNAME,
19 SMC_PNETID_IBNAME,
20 SMC_PNETID_IBPORT,
21 __SMC_PNETID_MAX,
22 SMC_PNETID_MAX = __SMC_PNETID_MAX - 1
23};
24
25enum { /* SMC PNET Table commands */
26 SMC_PNETID_GET = 1,
27 SMC_PNETID_ADD,
28 SMC_PNETID_DEL,
29 SMC_PNETID_FLUSH
30};
31
32#define SMCR_GENL_FAMILY_NAME "SMC_PNETID"
33#define SMCR_GENL_FAMILY_VERSION 1
34
35#endif /* _UAPI_LINUX_SMC_H */
include/uapi/linux/smc_diag.h+85−0
@@ -0,0 +1,85 @@
1#ifndef _UAPI_SMC_DIAG_H_
2#define _UAPI_SMC_DIAG_H_
3
4#include <linux/types.h>
5#include <linux/inet_diag.h>
6#include <rdma/ib_verbs.h>
7
8/* Request structure */
9struct smc_diag_req {
10 __u8 diag_family;
11 __u8 pad[2];
12 __u8 diag_ext; /* Query extended information */
13 struct inet_diag_sockid id;
14};
15
16/* Base info structure. It contains socket identity (addrs/ports/cookie) based
17 * on the internal clcsock, and more SMC-related socket data
18 */
19struct smc_diag_msg {
20 __u8 diag_family;
21 __u8 diag_state;
22 __u8 diag_fallback;
23 __u8 diag_shutdown;
24 struct inet_diag_sockid id;
25
26 __u32 diag_uid;
27 __u64 diag_inode;
28};
29
30/* Extensions */
31
32enum {
33 SMC_DIAG_NONE,
34 SMC_DIAG_CONNINFO,
35 SMC_DIAG_LGRINFO,
36 SMC_DIAG_SHUTDOWN,
37 __SMC_DIAG_MAX,
38};
39
40#define SMC_DIAG_MAX (__SMC_DIAG_MAX - 1)
41
42/* SMC_DIAG_CONNINFO */
43
44struct smc_diag_cursor {
45 __u16 reserved;
46 __u16 wrap;
47 __u32 count;
48};
49
50struct smc_diag_conninfo {
51 __u32 token; /* unique connection id */
52 __u32 sndbuf_size; /* size of send buffer */
53 __u32 rmbe_size; /* size of RMB element */
54 __u32 peer_rmbe_size; /* size of peer RMB element */
55 /* local RMB element cursors */
56 struct smc_diag_cursor rx_prod; /* received producer cursor */
57 struct smc_diag_cursor rx_cons; /* received consumer cursor */
58 /* peer RMB element cursors */
59 struct smc_diag_cursor tx_prod; /* sent producer cursor */
60 struct smc_diag_cursor tx_cons; /* sent consumer cursor */
61 __u8 rx_prod_flags; /* received producer flags */
62 __u8 rx_conn_state_flags; /* recvd connection flags*/
63 __u8 tx_prod_flags; /* sent producer flags */
64 __u8 tx_conn_state_flags; /* sent connection flags*/
65 /* send buffer cursors */
66 struct smc_diag_cursor tx_prep; /* prepared to be sent cursor */
67 struct smc_diag_cursor tx_sent; /* sent cursor */
68 struct smc_diag_cursor tx_fin; /* confirmed sent cursor */
69};
70
71/* SMC_DIAG_LINKINFO */
72
73struct smc_diag_linkinfo {
74 __u8 link_id; /* link identifier */
75 __u8 ibname[IB_DEVICE_NAME_MAX]; /* name of the RDMA device */
76 __u8 ibport; /* RDMA device port number */
77 __u8 gid[40]; /* local GID */
78 __u8 peer_gid[40]; /* peer GID */
79};
80
81struct smc_diag_lgrinfo {
82 struct smc_diag_linkinfo lnk[1];
83 __u8 role;
84};
85#endif /* _UAPI_SMC_DIAG_H_ */
include/uapi/linux/snmp.h+1−0
@@ -240,6 +240,7 @@ enum · 239 unmodified lines
240 LINUX_MIB_SACKMERGED,240 LINUX_MIB_SACKMERGED,
241 LINUX_MIB_SACKSHIFTFALLBACK,241 LINUX_MIB_SACKSHIFTFALLBACK,
242 LINUX_MIB_TCPBACKLOGDROP,242 LINUX_MIB_TCPBACKLOGDROP,
243 LINUX_MIB_PFMEMALLOCDROP,
243 LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */244 LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */
244 LINUX_MIB_TCPDEFERACCEPTDROP,245 LINUX_MIB_TCPDEFERACCEPTDROP,
245 LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */246 LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */
include/uapi/linux/stat.h+131−0
@@ -1,6 +1,7 @@
1#ifndef _UAPI_LINUX_STAT_H1#ifndef _UAPI_LINUX_STAT_H
2#define _UAPI_LINUX_STAT_H2#define _UAPI_LINUX_STAT_H
3 3
4#include <linux/types.h>
4 5
5#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)6#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
6 7
@@ -41,5 +42,135 @@ · 34 unmodified lines
41 42
42#endif43#endif
43 44
45/*
46 * Timestamp structure for the timestamps in struct statx.
47 *
48 * tv_sec holds the number of seconds before (negative) or after (positive)
49 * 00:00:00 1st January 1970 UTC.
50 *
51 * tv_nsec holds a number of nanoseconds before (0..-999,999,999 if tv_sec is
52 * negative) or after (0..999,999,999 if tv_sec is positive) the tv_sec time.
53 *
54 * Note that if both tv_sec and tv_nsec are non-zero, then the two values must
55 * either be both positive or both negative.
56 *
57 * __reserved is held in case we need a yet finer resolution.
58 */
59struct statx_timestamp {
60 __s64 tv_sec;
61 __s32 tv_nsec;
62 __s32 __reserved;
63};
64
65/*
66 * Structures for the extended file attribute retrieval system call
67 * (statx()).
68 *
69 * The caller passes a mask of what they're specifically interested in as a
70 * parameter to statx(). What statx() actually got will be indicated in
71 * st_mask upon return.
72 *
73 * For each bit in the mask argument:
74 *
75 * - if the datum is not supported:
76 *
77 * - the bit will be cleared, and
78 *
79 * - the datum will be set to an appropriate fabricated value if one is
80 * available (eg. CIFS can take a default uid and gid), otherwise
81 *
82 * - the field will be cleared;
83 *
84 * - otherwise, if explicitly requested:
85 *
86 * - the datum will be synchronised to the server if AT_STATX_FORCE_SYNC is
87 * set or if the datum is considered out of date, and
88 *
89 * - the field will be filled in and the bit will be set;
90 *
91 * - otherwise, if not requested, but available in approximate form without any
92 * effort, it will be filled in anyway, and the bit will be set upon return
93 * (it might not be up to date, however, and no attempt will be made to
94 * synchronise the internal state first);
95 *
96 * - otherwise the field and the bit will be cleared before returning.
97 *
98 * Items in STATX_BASIC_STATS may be marked unavailable on return, but they
99 * will have values installed for compatibility purposes so that stat() and
100 * co. can be emulated in userspace.
101 */
102struct statx {
103 /* 0x00 */
104 __u32 stx_mask; /* What results were written [uncond] */
105 __u32 stx_blksize; /* Preferred general I/O size [uncond] */
106 __u64 stx_attributes; /* Flags conveying information about the file [uncond] */
107 /* 0x10 */
108 __u32 stx_nlink; /* Number of hard links */
109 __u32 stx_uid; /* User ID of owner */
110 __u32 stx_gid; /* Group ID of owner */
111 __u16 stx_mode; /* File mode */
112 __u16 __spare0[1];
113 /* 0x20 */
114 __u64 stx_ino; /* Inode number */
115 __u64 stx_size; /* File size */
116 __u64 stx_blocks; /* Number of 512-byte blocks allocated */
117 __u64 __spare1[1];
118 /* 0x40 */
119 struct statx_timestamp stx_atime; /* Last access time */
120 struct statx_timestamp stx_btime; /* File creation time */
121 struct statx_timestamp stx_ctime; /* Last attribute change time */
122 struct statx_timestamp stx_mtime; /* Last data modification time */
123 /* 0x80 */
124 __u32 stx_rdev_major; /* Device ID of special file [if bdev/cdev] */
125 __u32 stx_rdev_minor;
126 __u32 stx_dev_major; /* ID of device containing file [uncond] */
127 __u32 stx_dev_minor;
128 /* 0x90 */
129 __u64 __spare2[14]; /* Spare space for future expansion */
130 /* 0x100 */
131};
132
133/*
134 * Flags to be stx_mask
135 *
136 * Query request/result mask for statx() and struct statx::stx_mask.
137 *
138 * These bits should be set in the mask argument of statx() to request
139 * particular items when calling statx().
140 */
141#define STATX_TYPE 0x00000001U /* Want/got stx_mode & S_IFMT */
142#define STATX_MODE 0x00000002U /* Want/got stx_mode & ~S_IFMT */
143#define STATX_NLINK 0x00000004U /* Want/got stx_nlink */
144#define STATX_UID 0x00000008U /* Want/got stx_uid */
145#define STATX_GID 0x00000010U /* Want/got stx_gid */
146#define STATX_ATIME 0x00000020U /* Want/got stx_atime */
147#define STATX_MTIME 0x00000040U /* Want/got stx_mtime */
148#define STATX_CTIME 0x00000080U /* Want/got stx_ctime */
149#define STATX_INO 0x00000100U /* Want/got stx_ino */
150#define STATX_SIZE 0x00000200U /* Want/got stx_size */
151#define STATX_BLOCKS 0x00000400U /* Want/got stx_blocks */
152#define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */
153#define STATX_BTIME 0x00000800U /* Want/got stx_btime */
154#define STATX_ALL 0x00000fffU /* All currently supported flags */
155
156/*
157 * Attributes to be found in stx_attributes
158 *
159 * These give information about the features or the state of a file that might
160 * be of use to ordinary userspace programs such as GUIs or ls rather than
161 * specialised tools.
162 *
163 * Note that the flags marked [I] correspond to generic FS_IOC_FLAGS
164 * semantically. Where possible, the numerical value is picked to correspond
165 * also.
166 */
167#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */
168#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */
169#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */
170#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
171#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
172
173#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
174
44 175
45#endif /* _UAPI_LINUX_STAT_H */176#endif /* _UAPI_LINUX_STAT_H */
include/uapi/linux/target_core_user.h+11−11
@@ -105,26 +105,26 @@ struct tcmu_cmd_entry { · 104 unmodified lines
105 105
106 union {106 union {
107 struct {107 struct {
108 uint32_t iov_cnt;108 __u32 iov_cnt;
109 uint32_t iov_bidi_cnt;109 __u32 iov_bidi_cnt;
110 uint32_t iov_dif_cnt;110 __u32 iov_dif_cnt;
111 uint64_t cdb_off;111 __u64 cdb_off;
112 uint64_t __pad1;112 __u64 __pad1;
113 uint64_t __pad2;113 __u64 __pad2;
114 struct iovec iov[0];114 struct iovec iov[0];
115 } req;115 } req;
116 struct {116 struct {
117 uint8_t scsi_status;117 __u8 scsi_status;
118 uint8_t __pad1;118 __u8 __pad1;
119 uint16_t __pad2;119 __u16 __pad2;
120 uint32_t __pad3;120 __u32 __pad3;
121 char sense_buffer[TCMU_SENSE_BUFFERSIZE];121 char sense_buffer[TCMU_SENSE_BUFFERSIZE];
122 } rsp;122 } rsp;
123 };123 };
124 124
125} __packed;125} __packed;
126 126
127#define TCMU_OP_ALIGN_SIZE sizeof(uint64_t)127#define TCMU_OP_ALIGN_SIZE sizeof(__u64)
128 128
129enum tcmu_genl_cmd {129enum tcmu_genl_cmd {
130 TCMU_CMD_UNSPEC,130 TCMU_CMD_UNSPEC,
include/uapi/linux/tc_act/Kbuild+1−0
@@ -4,6 +4,7 @@ header-y += tc_defact.h · 3 unmodified lines
4header-y += tc_gact.h4header-y += tc_gact.h
5header-y += tc_ipt.h5header-y += tc_ipt.h
6header-y += tc_mirred.h6header-y += tc_mirred.h
7header-y += tc_sample.h
7header-y += tc_nat.h8header-y += tc_nat.h
8header-y += tc_pedit.h9header-y += tc_pedit.h
9header-y += tc_skbedit.h10header-y += tc_skbedit.h
include/uapi/linux/tc_act/tc_csum.h+2−1
@@ -21,7 +21,8 @@ enum { · 20 unmodified lines
21 TCA_CSUM_UPDATE_FLAG_IGMP = 4,21 TCA_CSUM_UPDATE_FLAG_IGMP = 4,
22 TCA_CSUM_UPDATE_FLAG_TCP = 8,22 TCA_CSUM_UPDATE_FLAG_TCP = 8,
23 TCA_CSUM_UPDATE_FLAG_UDP = 16,23 TCA_CSUM_UPDATE_FLAG_UDP = 16,
24 TCA_CSUM_UPDATE_FLAG_UDPLITE = 3224 TCA_CSUM_UPDATE_FLAG_UDPLITE = 32,
25 TCA_CSUM_UPDATE_FLAG_SCTP = 64,
25};26};
26 27
27struct tc_csum {28struct tc_csum {
include/uapi/linux/tc_act/tc_ife.h+1−9
@@ -3,6 +3,7 @@ · 2 unmodified lines
3 3
4#include <linux/types.h>4#include <linux/types.h>
5#include <linux/pkt_cls.h>5#include <linux/pkt_cls.h>
6#include <linux/ife.h>
6 7
7#define TCA_ACT_IFE 258#define TCA_ACT_IFE 25
8/* Flag bits for now just encoding/decoding; mutually exclusive */9/* Flag bits for now just encoding/decoding; mutually exclusive */
@@ -28,13 +29,4 @@ enum { · 19 unmodified lines
28};29};
29#define TCA_IFE_MAX (__TCA_IFE_MAX - 1)30#define TCA_IFE_MAX (__TCA_IFE_MAX - 1)
30 31
31#define IFE_META_SKBMARK 1
32#define IFE_META_HASHID 2
33#define IFE_META_PRIO 3
34#define IFE_META_QMAP 4
35#define IFE_META_TCINDEX 5
36/*Can be overridden at runtime by module option*/
37#define __IFE_META_MAX 6
38#define IFE_META_MAX (__IFE_META_MAX - 1)
39
40#endif32#endif
include/uapi/linux/tc_act/tc_pedit.h+31−0
@@ -11,10 +11,41 @@ enum { · 10 unmodified lines
11 TCA_PEDIT_TM,11 TCA_PEDIT_TM,
12 TCA_PEDIT_PARMS,12 TCA_PEDIT_PARMS,
13 TCA_PEDIT_PAD,13 TCA_PEDIT_PAD,
14 TCA_PEDIT_PARMS_EX,
15 TCA_PEDIT_KEYS_EX,
16 TCA_PEDIT_KEY_EX,
14 __TCA_PEDIT_MAX17 __TCA_PEDIT_MAX
15};18};
16#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)19#define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
17 20
21enum {
22 TCA_PEDIT_KEY_EX_HTYPE = 1,
23 TCA_PEDIT_KEY_EX_CMD = 2,
24 __TCA_PEDIT_KEY_EX_MAX
25};
26#define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
27
28 /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
29 * means no specific header type - offset is relative to the network layer
30 */
31enum pedit_header_type {
32 TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK = 0,
33 TCA_PEDIT_KEY_EX_HDR_TYPE_ETH = 1,
34 TCA_PEDIT_KEY_EX_HDR_TYPE_IP4 = 2,
35 TCA_PEDIT_KEY_EX_HDR_TYPE_IP6 = 3,
36 TCA_PEDIT_KEY_EX_HDR_TYPE_TCP = 4,
37 TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
38 __PEDIT_HDR_TYPE_MAX,
39};
40#define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
41
42enum pedit_cmd {
43 TCA_PEDIT_KEY_EX_CMD_SET = 0,
44 TCA_PEDIT_KEY_EX_CMD_ADD = 1,
45 __PEDIT_CMD_MAX,
46};
47#define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
48
18struct tc_pedit_key {49struct tc_pedit_key {
19 __u32 mask; /* AND */50 __u32 mask; /* AND */
20 __u32 val; /*XOR */51 __u32 val; /*XOR */
include/uapi/linux/tc_act/tc_sample.h+26−0
@@ -0,0 +1,26 @@
1#ifndef __LINUX_TC_SAMPLE_H
2#define __LINUX_TC_SAMPLE_H
3
4#include <linux/types.h>
5#include <linux/pkt_cls.h>
6#include <linux/if_ether.h>
7
8#define TCA_ACT_SAMPLE 26
9
10struct tc_sample {
11 tc_gen;
12};
13
14enum {
15 TCA_SAMPLE_UNSPEC,
16 TCA_SAMPLE_TM,
17 TCA_SAMPLE_PARMS,
18 TCA_SAMPLE_RATE,
19 TCA_SAMPLE_TRUNC_SIZE,
20 TCA_SAMPLE_PSAMPLE_GROUP,
21 TCA_SAMPLE_PAD,
22 __TCA_SAMPLE_MAX
23};
24#define TCA_SAMPLE_MAX (__TCA_SAMPLE_MAX - 1)
25
26#endif
include/uapi/linux/tcp.h+3−0
@@ -116,6 +116,7 @@ enum { · 115 unmodified lines
116#define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */116#define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */
117#define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */117#define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */
118#define TCP_REPAIR_WINDOW 29 /* Get/set window parameters */118#define TCP_REPAIR_WINDOW 29 /* Get/set window parameters */
119#define TCP_FASTOPEN_CONNECT 30 /* Attempt FastOpen with connect */
119 120
120struct tcp_repair_opt {121struct tcp_repair_opt {
121 __u32 opt_code;122 __u32 opt_code;
@@ -226,6 +227,8 @@ enum { · 104 unmodified lines
226 TCP_NLA_BUSY, /* Time (usec) busy sending data */227 TCP_NLA_BUSY, /* Time (usec) busy sending data */
227 TCP_NLA_RWND_LIMITED, /* Time (usec) limited by receive window */228 TCP_NLA_RWND_LIMITED, /* Time (usec) limited by receive window */
228 TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */229 TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */
230 TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */
231 TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */
229};232};
230 233
231/* for TCP_MD5SIG socket option */234/* for TCP_MD5SIG socket option */
include/uapi/linux/tipc.h+4−2
@@ -1,7 +1,7 @@
1/*1/*
2 * include/uapi/linux/tipc.h: Header for TIPC socket interface2 * include/uapi/linux/tipc.h: Header for TIPC socket interface
3 *3 *
4 * Copyright (c) 2003-2006, Ericsson AB4 * Copyright (c) 2003-2006, 2015-2016 Ericsson AB
5 * Copyright (c) 2005, 2010-2011, Wind River Systems5 * Copyright (c) 2005, 2010-2011, Wind River Systems
6 * All rights reserved.6 * All rights reserved.
7 *7 *
@@ -220,7 +220,7 @@ struct sockaddr_tipc { · 212 unmodified lines
220#define TIPC_DESTNAME 3 /* destination name */220#define TIPC_DESTNAME 3 /* destination name */
221 221
222/*222/*
223 * TIPC-specific socket option values223 * TIPC-specific socket option names
224 */224 */
225 225
226#define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */226#define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */
@@ -229,6 +229,8 @@ struct sockaddr_tipc { · 2 unmodified lines
229#define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */229#define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */
230#define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */230#define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */
231#define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */231#define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */
232#define TIPC_MCAST_BROADCAST 133 /* Default: TIPC selects. No arg */
233#define TIPC_MCAST_REPLICAST 134 /* Default: TIPC selects. No arg */
232 234
233/*235/*
234 * Maximum sizes of TIPC bearer-related names (including terminating NULL)236 * Maximum sizes of TIPC bearer-related names (including terminating NULL)
include/uapi/linux/un.h+2−0
@@ -10,4 +10,6 @@ struct sockaddr_un { · 9 unmodified lines
10 char sun_path[UNIX_PATH_MAX]; /* pathname */10 char sun_path[UNIX_PATH_MAX]; /* pathname */
11};11};
12 12
13#define SIOCUNIXFILE (SIOCPROTOPRIVATE + 0) /* open a socket file with O_PATH */
14
13#endif /* _LINUX_UN_H */15#endif /* _LINUX_UN_H */
include/uapi/linux/userfaultfd.h+61−9
@@ -11,13 +11,19 @@ · 10 unmodified lines
11 11
12#include <linux/types.h>12#include <linux/types.h>
13 13
14#define UFFD_API ((__u64)0xAA)
15/*14/*
16 * After implementing the respective features it will become:15 * If the UFFDIO_API is upgraded someday, the UFFDIO_UNREGISTER and
17 * #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \16 * UFFDIO_WAKE ioctls should be defined as _IOW and not as _IOR. In
18 * UFFD_FEATURE_EVENT_FORK)17 * userfaultfd.h we assumed the kernel was reading (instead _IOC_READ
18 * means the userland is reading).
19 */19 */
20#define UFFD_API_FEATURES (0)20#define UFFD_API ((__u64)0xAA)
21#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \
22 UFFD_FEATURE_EVENT_REMAP | \
23 UFFD_FEATURE_EVENT_REMOVE | \
24 UFFD_FEATURE_EVENT_UNMAP | \
25 UFFD_FEATURE_MISSING_HUGETLBFS | \
26 UFFD_FEATURE_MISSING_SHMEM)
21#define UFFD_API_IOCTLS \27#define UFFD_API_IOCTLS \
22 ((__u64)1 << _UFFDIO_REGISTER | \28 ((__u64)1 << _UFFDIO_REGISTER | \
23 (__u64)1 << _UFFDIO_UNREGISTER | \29 (__u64)1 << _UFFDIO_UNREGISTER | \
@@ -26,6 +32,9 @@ · 2 unmodified lines
26 ((__u64)1 << _UFFDIO_WAKE | \32 ((__u64)1 << _UFFDIO_WAKE | \
27 (__u64)1 << _UFFDIO_COPY | \33 (__u64)1 << _UFFDIO_COPY | \
28 (__u64)1 << _UFFDIO_ZEROPAGE)34 (__u64)1 << _UFFDIO_ZEROPAGE)
35#define UFFD_API_RANGE_IOCTLS_BASIC \
36 ((__u64)1 << _UFFDIO_WAKE | \
37 (__u64)1 << _UFFDIO_COPY)
29 38
30/*39/*
31 * Valid ioctl command number range with this API is from 0x00 to40 * Valid ioctl command number range with this API is from 0x00 to
@@ -71,6 +80,21 @@ struct uffd_msg { · 39 unmodified lines
71 __u64 address;80 __u64 address;
72 } pagefault;81 } pagefault;
73 82
83 struct {
84 __u32 ufd;
85 } fork;
86
87 struct {
88 __u64 from;
89 __u64 to;
90 __u64 len;
91 } remap;
92
93 struct {
94 __u64 start;
95 __u64 end;
96 } remove;
97
74 struct {98 struct {
75 /* unused reserved fields */99 /* unused reserved fields */
76 __u64 reserved1;100 __u64 reserved1;
@@ -84,9 +108,10 @@ struct uffd_msg { · 7 unmodified lines
84 * Start at 0x12 and not at 0 to be more strict against bugs.108 * Start at 0x12 and not at 0 to be more strict against bugs.
85 */109 */
86#define UFFD_EVENT_PAGEFAULT 0x12110#define UFFD_EVENT_PAGEFAULT 0x12
87#if 0 /* not available yet */
88#define UFFD_EVENT_FORK 0x13111#define UFFD_EVENT_FORK 0x13
89#endif112#define UFFD_EVENT_REMAP 0x14
113#define UFFD_EVENT_REMOVE 0x15
114#define UFFD_EVENT_UNMAP 0x16
90 115
91/* flags for UFFD_EVENT_PAGEFAULT */116/* flags for UFFD_EVENT_PAGEFAULT */
92#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */117#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
@@ -104,11 +129,38 @@ struct uffdio_api { · 11 unmodified lines
104 * Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE129 * Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE
105 * are to be considered implicitly always enabled in all kernels as130 * are to be considered implicitly always enabled in all kernels as
106 * long as the uffdio_api.api requested matches UFFD_API.131 * long as the uffdio_api.api requested matches UFFD_API.
132 *
133 * UFFD_FEATURE_MISSING_HUGETLBFS means an UFFDIO_REGISTER
134 * with UFFDIO_REGISTER_MODE_MISSING mode will succeed on
135 * hugetlbfs virtual memory ranges. Adding or not adding
136 * UFFD_FEATURE_MISSING_HUGETLBFS to uffdio_api.features has
137 * no real functional effect after UFFDIO_API returns, but
138 * it's only useful for an initial feature set probe at
139 * UFFDIO_API time. There are two ways to use it:
140 *
141 * 1) by adding UFFD_FEATURE_MISSING_HUGETLBFS to the
142 * uffdio_api.features before calling UFFDIO_API, an error
143 * will be returned by UFFDIO_API on a kernel without
144 * hugetlbfs missing support
145 *
146 * 2) the UFFD_FEATURE_MISSING_HUGETLBFS can not be added in
147 * uffdio_api.features and instead it will be set by the
148 * kernel in the uffdio_api.features if the kernel supports
149 * it, so userland can later check if the feature flag is
150 * present in uffdio_api.features after UFFDIO_API
151 * succeeded.
152 *
153 * UFFD_FEATURE_MISSING_SHMEM works the same as
154 * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem
155 * (i.e. tmpfs and other shmem based APIs).
107 */156 */
108#if 0 /* not available yet */
109#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)157#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
110#define UFFD_FEATURE_EVENT_FORK (1<<1)158#define UFFD_FEATURE_EVENT_FORK (1<<1)
111#endif159#define UFFD_FEATURE_EVENT_REMAP (1<<2)
160#define UFFD_FEATURE_EVENT_REMOVE (1<<3)
161#define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4)
162#define UFFD_FEATURE_MISSING_SHMEM (1<<5)
163#define UFFD_FEATURE_EVENT_UNMAP (1<<6)
112 __u64 features;164 __u64 features;
113 165
114 __u64 ioctls;166 __u64 ioctls;
include/uapi/linux/virtio_mmio.h+141−0
@@ -0,0 +1,141 @@
1/*
2 * Virtio platform device driver
3 *
4 * Copyright 2011, ARM Ltd.
5 *
6 * Based on Virtio PCI driver by Anthony Liguori, copyright IBM Corp. 2007
7 *
8 * This header is BSD licensed so anyone can use the definitions to implement
9 * compatible drivers/servers.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * 3. Neither the name of IBM nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND
23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 * SUCH DAMAGE.
33 */
34
35#ifndef _LINUX_VIRTIO_MMIO_H
36#define _LINUX_VIRTIO_MMIO_H
37
38/*
39 * Control registers
40 */
41
42/* Magic value ("virt" string) - Read Only */
43#define VIRTIO_MMIO_MAGIC_VALUE 0x000
44
45/* Virtio device version - Read Only */
46#define VIRTIO_MMIO_VERSION 0x004
47
48/* Virtio device ID - Read Only */
49#define VIRTIO_MMIO_DEVICE_ID 0x008
50
51/* Virtio vendor ID - Read Only */
52#define VIRTIO_MMIO_VENDOR_ID 0x00c
53
54/* Bitmask of the features supported by the device (host)
55 * (32 bits per set) - Read Only */
56#define VIRTIO_MMIO_DEVICE_FEATURES 0x010
57
58/* Device (host) features set selector - Write Only */
59#define VIRTIO_MMIO_DEVICE_FEATURES_SEL 0x014
60
61/* Bitmask of features activated by the driver (guest)
62 * (32 bits per set) - Write Only */
63#define VIRTIO_MMIO_DRIVER_FEATURES 0x020
64
65/* Activated features set selector - Write Only */
66#define VIRTIO_MMIO_DRIVER_FEATURES_SEL 0x024
67
68
69#ifndef VIRTIO_MMIO_NO_LEGACY /* LEGACY DEVICES ONLY! */
70
71/* Guest's memory page size in bytes - Write Only */
72#define VIRTIO_MMIO_GUEST_PAGE_SIZE 0x028
73
74#endif
75
76
77/* Queue selector - Write Only */
78#define VIRTIO_MMIO_QUEUE_SEL 0x030
79
80/* Maximum size of the currently selected queue - Read Only */
81#define VIRTIO_MMIO_QUEUE_NUM_MAX 0x034
82
83/* Queue size for the currently selected queue - Write Only */
84#define VIRTIO_MMIO_QUEUE_NUM 0x038
85
86
87#ifndef VIRTIO_MMIO_NO_LEGACY /* LEGACY DEVICES ONLY! */
88
89/* Used Ring alignment for the currently selected queue - Write Only */
90#define VIRTIO_MMIO_QUEUE_ALIGN 0x03c
91
92/* Guest's PFN for the currently selected queue - Read Write */
93#define VIRTIO_MMIO_QUEUE_PFN 0x040
94
95#endif
96
97
98/* Ready bit for the currently selected queue - Read Write */
99#define VIRTIO_MMIO_QUEUE_READY 0x044
100
101/* Queue notifier - Write Only */
102#define VIRTIO_MMIO_QUEUE_NOTIFY 0x050
103
104/* Interrupt status - Read Only */
105#define VIRTIO_MMIO_INTERRUPT_STATUS 0x060
106
107/* Interrupt acknowledge - Write Only */
108#define VIRTIO_MMIO_INTERRUPT_ACK 0x064
109
110/* Device status register - Read Write */
111#define VIRTIO_MMIO_STATUS 0x070
112
113/* Selected queue's Descriptor Table address, 64 bits in two halves */
114#define VIRTIO_MMIO_QUEUE_DESC_LOW 0x080
115#define VIRTIO_MMIO_QUEUE_DESC_HIGH 0x084
116
117/* Selected queue's Available Ring address, 64 bits in two halves */
118#define VIRTIO_MMIO_QUEUE_AVAIL_LOW 0x090
119#define VIRTIO_MMIO_QUEUE_AVAIL_HIGH 0x094
120
121/* Selected queue's Used Ring address, 64 bits in two halves */
122#define VIRTIO_MMIO_QUEUE_USED_LOW 0x0a0
123#define VIRTIO_MMIO_QUEUE_USED_HIGH 0x0a4
124
125/* Configuration atomicity value */
126#define VIRTIO_MMIO_CONFIG_GENERATION 0x0fc
127
128/* The config space is defined by each driver as
129 * the per-driver configuration space - Read Write */
130#define VIRTIO_MMIO_CONFIG 0x100
131
132
133
134/*
135 * Interrupt flags (re: interrupt status & acknowledge registers)
136 */
137
138#define VIRTIO_MMIO_INT_VRING (1 << 0)
139#define VIRTIO_MMIO_INT_CONFIG (1 << 1)
140
141#endif
include/uapi/linux/virtio_pci.h+1−1
@@ -79,7 +79,7 @@ · 78 unmodified lines
79 * configuration space */79 * configuration space */
80#define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20)80#define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20)
81/* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */81/* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */
82#define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->msix_enabled)82#define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->pci_dev->msix_enabled)
83 83
84/* Virtio ABI version, this must match exactly */84/* Virtio ABI version, this must match exactly */
85#define VIRTIO_PCI_ABI_VERSION 085#define VIRTIO_PCI_ABI_VERSION 0

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t