Linux 4.11-rc1 * tag 'v4.11-rc1': (10730 commits) Linux 4.11-rc1 strparser: destroy workqueue on module exit Documentation/sphinx: fix primary_domain configuration docs: Fix htmldocs build failure doc/ko_KR/memory-barriers: Update control-dependencies section pcieaer doc: update the link Documentation: Update path to sysrq.txt sfc: fix IPID endianness in TSOv2 sfc: avoid max() in array size rds: remove unnecessary returned value check rxrpc: Fix potential NULL-pointer exception nfp: correct DMA direction in XDP DMA sync nfp: don't tell FW about the reserved buffer space net: ethernet: bgmac: mac address change bug net: ethernet: bgmac: init sequence bug xen-netback: don't vfree() queues under spinlock xen-netback: keep a local pointer for vif in backend_disconnect() netfilter: nf_tables: don't call nfnetlink_set_err() if nfnetlink_send() fails netfilter: nft_set_rbtree: incorrect assumption on lower interval lookups netfilter: nf_conntrack_sip: fix wrong memory initialisation ...
Showing the changes to include/uapi/linux (74 of 11068 files). Show all
Unified · Split
| @@ -64,6 +64,7 @@ header-y += auto_fs.h · 63 unmodified lines | ||
| 64 | 64 | header-y += auxvec.h |
| 65 | 65 | header-y += ax25.h |
| 66 | 66 | header-y += b1lli.h |
| 67 | +header-y += batman_adv.h | |
| 67 | 68 | header-y += baycom.h |
| 68 | 69 | header-y += bcm933xx_hcs.h |
| 69 | 70 | header-y += bfs_fs.h |
| @@ -109,6 +110,7 @@ header-y += dlm_netlink.h · 39 unmodified lines | ||
| 109 | 110 | header-y += dlm_plock.h |
| 110 | 111 | header-y += dm-ioctl.h |
| 111 | 112 | header-y += dm-log-userspace.h |
| 113 | +header-y += dma-buf.h | |
| 112 | 114 | header-y += dn.h |
| 113 | 115 | header-y += dqblk_xfs.h |
| 114 | 116 | header-y += edd.h |
| @@ -194,6 +196,7 @@ header-y += if_tun.h · 79 unmodified lines | ||
| 194 | 196 | header-y += if_tunnel.h |
| 195 | 197 | header-y += if_vlan.h |
| 196 | 198 | header-y += if_x25.h |
| 199 | +header-y += ife.h | |
| 197 | 200 | header-y += igmp.h |
| 198 | 201 | header-y += ila.h |
| 199 | 202 | header-y += in6.h |
| @@ -305,6 +308,7 @@ header-y += netrom.h · 105 unmodified lines | ||
| 305 | 308 | header-y += net_namespace.h |
| 306 | 309 | header-y += net_tstamp.h |
| 307 | 310 | header-y += nfc.h |
| 311 | +header-y += psample.h | |
| 308 | 312 | header-y += nfs2.h |
| 309 | 313 | header-y += nfs3.h |
| 310 | 314 | header-y += nfs4.h |
| @@ -379,6 +383,10 @@ header-y += sctp.h · 68 unmodified lines | ||
| 379 | 383 | header-y += sdla.h |
| 380 | 384 | header-y += seccomp.h |
| 381 | 385 | header-y += securebits.h |
| 386 | +header-y += seg6_genl.h | |
| 387 | +header-y += seg6.h | |
| 388 | +header-y += seg6_hmac.h | |
| 389 | +header-y += seg6_iptunnel.h | |
| 382 | 390 | header-y += selinux_netlink.h |
| 383 | 391 | header-y += sem.h |
| 384 | 392 | header-y += serial_core.h |
| @@ -458,6 +466,7 @@ header-y += virtio_console.h · 73 unmodified lines | ||
| 458 | 466 | header-y += virtio_gpu.h |
| 459 | 467 | header-y += virtio_ids.h |
| 460 | 468 | header-y += virtio_input.h |
| 469 | +header-y += virtio_mmio.h | |
| 461 | 470 | header-y += virtio_net.h |
| 462 | 471 | header-y += virtio_pci.h |
| 463 | 472 | header-y += virtio_ring.h |
| @@ -33,6 +33,8 @@ enum { · 32 unmodified lines | ||
| 33 | 33 | BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE), |
| 34 | 34 | BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE), |
| 35 | 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 | |
| 38 | 40 | enum { |
| @@ -48,6 +50,14 @@ typedef __u64 binder_size_t; · 9 unmodified lines | ||
| 48 | 50 | typedef __u64 binder_uintptr_t; |
| 49 | 51 | #endif |
| 50 | 52 | |
| 53 | +/** | |
| 54 | + * struct binder_object_header - header shared by all binder metadata objects. | |
| 55 | + * @type: type of the object | |
| 56 | + */ | |
| 57 | +struct binder_object_header { | |
| 58 | + __u32 type; | |
| 59 | +}; | |
| 60 | + | |
| 51 | 61 | /* |
| 52 | 62 | * This is the flattened representation of a Binder object for transfer |
| 53 | 63 | * between processes. The 'offsets' supplied as part of a binder transaction |
| @@ -56,9 +66,8 @@ typedef __u64 binder_uintptr_t; · 2 unmodified lines | ||
| 56 | 66 | * between processes. |
| 57 | 67 | */ |
| 58 | 68 | struct flat_binder_object { |
| 59 | − /* 8 bytes for large_flat_header. */ | |
| 60 | − __u32 type; | |
| 61 | − __u32 flags; | |
| 69 | + struct binder_object_header hdr; | |
| 70 | + __u32 flags; | |
| 62 | 71 | |
| 63 | 72 | /* 8 bytes of data. */ |
| 64 | 73 | union { |
| @@ -70,6 +79,84 @@ struct flat_binder_object { · 5 unmodified lines | ||
| 70 | 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 | + */ | |
| 90 | +struct 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 | + */ | |
| 120 | +struct 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 | + | |
| 129 | +enum { | |
| 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 | + */ | |
| 153 | +struct 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 | 161 | * On 64-bit platforms where user code may run in 32-bits the driver must |
| 75 | 162 | * translate the buffer (and local binder) addresses appropriately. |
| @@ -162,6 +249,11 @@ struct binder_transaction_data { · 86 unmodified lines | ||
| 162 | 249 | } data; |
| 163 | 250 | }; |
| 164 | 251 | |
| 252 | +struct binder_transaction_data_sg { | |
| 253 | + struct binder_transaction_data transaction_data; | |
| 254 | + binder_size_t buffers_size; | |
| 255 | +}; | |
| 256 | + | |
| 165 | 257 | struct binder_ptr_cookie { |
| 166 | 258 | binder_uintptr_t ptr; |
| 167 | 259 | binder_uintptr_t cookie; |
| @@ -346,6 +438,12 @@ enum binder_driver_command_protocol { · 178 unmodified lines | ||
| 346 | 438 | /* |
| 347 | 439 | * 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 | 449 | #endif /* _UAPI_LINUX_BINDER_H */ |
| @@ -111,6 +111,7 @@ · 110 unmodified lines | ||
| 111 | 111 | #define AUDIT_PROCTITLE 1327 /* Proctitle emit event */ |
| 112 | 112 | #define AUDIT_FEATURE_CHANGE 1328 /* audit log listing feature changes */ |
| 113 | 113 | #define AUDIT_REPLACE 1329 /* Replace auditd if this packet unanswerd */ |
| 114 | +#define AUDIT_KERN_MODULE 1330 /* Kernel Module events */ | |
| 114 | 115 | |
| 115 | 116 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ |
| 116 | 117 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ |
| @@ -326,17 +327,21 @@ enum { · 209 unmodified lines | ||
| 326 | 327 | #define AUDIT_STATUS_RATE_LIMIT 0x0008 |
| 327 | 328 | #define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 |
| 328 | 329 | #define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020 |
| 330 | +#define AUDIT_STATUS_LOST 0x0040 | |
| 329 | 331 | |
| 330 | 332 | #define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001 |
| 331 | 333 | #define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002 |
| 332 | 334 | #define AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH 0x00000004 |
| 333 | 335 | #define AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND 0x00000008 |
| 334 | 336 | #define AUDIT_FEATURE_BITMAP_SESSIONID_FILTER 0x00000010 |
| 337 | +#define AUDIT_FEATURE_BITMAP_LOST_RESET 0x00000020 | |
| 338 | + | |
| 335 | 339 | #define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | \ |
| 336 | 340 | AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME | \ |
| 337 | 341 | AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH | \ |
| 338 | 342 | AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND | \ |
| 339 | − AUDIT_FEATURE_BITMAP_SESSIONID_FILTER) | |
| 343 | + AUDIT_FEATURE_BITMAP_SESSIONID_FILTER | \ | |
| 344 | + AUDIT_FEATURE_BITMAP_LOST_RESET) | |
| 340 | 345 | |
| 341 | 346 | /* deprecated: AUDIT_VERSION_* */ |
| 342 | 347 | #define AUDIT_VERSION_LATEST AUDIT_FEATURE_BITMAP_ALL |
| @@ -113,17 +113,13 @@ struct autofs_dev_ioctl { · 112 unmodified lines | ||
| 113 | 113 | |
| 114 | 114 | static 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 | 117 | in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR; |
| 118 | 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 | 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 | − */ | |
| 127 | 123 | enum { |
| 128 | 124 | /* Get various version info */ |
| 129 | 125 | AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71, |
| @@ -160,8 +156,6 @@ enum { · 30 unmodified lines | ||
| 160 | 156 | AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD, |
| 161 | 157 | }; |
| 162 | 158 | |
| 163 | −#define AUTOFS_IOCTL 0x93 | |
| 164 | − | |
| 165 | 159 | #define AUTOFS_DEV_IOCTL_VERSION \ |
| 166 | 160 | _IOWR(AUTOFS_IOCTL, \ |
| 167 | 161 | AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl) |
| @@ -61,12 +61,23 @@ struct autofs_packet_expire { · 60 unmodified lines | ||
| 61 | 61 | char name[NAME_MAX+1]; |
| 62 | 62 | }; |
| 63 | 63 | |
| 64 | −#define AUTOFS_IOC_READY _IO(0x93, 0x60) | |
| 65 | −#define AUTOFS_IOC_FAIL _IO(0x93, 0x61) | |
| 66 | −#define AUTOFS_IOC_CATATONIC _IO(0x93, 0x62) | |
| 67 | −#define AUTOFS_IOC_PROTOVER _IOR(0x93, 0x63, int) | |
| 68 | −#define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93, 0x64, compat_ulong_t) | |
| 69 | −#define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93, 0x64, unsigned long) | |
| 70 | −#define AUTOFS_IOC_EXPIRE _IOR(0x93, 0x65, struct autofs_packet_expire) | |
| 64 | +#define AUTOFS_IOCTL 0x93 | |
| 65 | + | |
| 66 | +enum { | |
| 67 | + AUTOFS_IOC_READY_CMD = 0x60, | |
| 68 | + AUTOFS_IOC_FAIL_CMD, | |
| 69 | + AUTOFS_IOC_CATATONIC_CMD, | |
| 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 | 83 | #endif /* _UAPI_LINUX_AUTO_FS_H */ |
| @@ -148,10 +148,16 @@ union autofs_v5_packet_union { · 147 unmodified lines | ||
| 148 | 148 | autofs_packet_expire_direct_t expire_direct; |
| 149 | 149 | }; |
| 150 | 150 | |
| 151 | −#define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93, 0x66, int) | |
| 152 | −#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI | |
| 153 | −#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI | |
| 154 | −#define AUTOFS_IOC_PROTOSUBVER _IOR(0x93, 0x67, int) | |
| 155 | −#define AUTOFS_IOC_ASKUMOUNT _IOR(0x93, 0x70, int) | |
| 151 | +enum { | |
| 152 | + AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, /* AUTOFS_IOC_EXPIRE_CMD + 1 */ | |
| 153 | + AUTOFS_IOC_PROTOSUBVER_CMD, | |
| 154 | + AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, /* AUTOFS_DEV_IOCTL_VERSION_CMD - 1 */ | |
| 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 | 163 | #endif /* _LINUX_AUTO_FS4_H */ |
| @@ -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 | 3 | * Matthias Schiffer |
| 4 | 4 | * |
| @@ -63,6 +63,12 @@ struct bpf_insn { · 62 unmodified lines | ||
| 63 | 63 | __s32 imm; /* signed immediate constant */ |
| 64 | 64 | }; |
| 65 | 65 | |
| 66 | +/* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ | |
| 67 | +struct 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 | 72 | /* BPF syscall commands, see bpf(2) man-page for details. */ |
| 67 | 73 | enum bpf_cmd { |
| 68 | 74 | BPF_MAP_CREATE, |
| @@ -89,6 +95,7 @@ enum bpf_map_type { · 20 unmodified lines | ||
| 89 | 95 | BPF_MAP_TYPE_CGROUP_ARRAY, |
| 90 | 96 | BPF_MAP_TYPE_LRU_HASH, |
| 91 | 97 | BPF_MAP_TYPE_LRU_PERCPU_HASH, |
| 98 | + BPF_MAP_TYPE_LPM_TRIE, | |
| 92 | 99 | }; |
| 93 | 100 | |
| 94 | 101 | enum bpf_prog_type { |
| @@ -437,6 +444,18 @@ union bpf_attr { · 342 unmodified lines | ||
| 437 | 444 | * @xdp_md: pointer to xdp_md |
| 438 | 445 | * @delta: An positive/negative integer to be added to xdp_md.data |
| 439 | 446 | * 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 | 460 | #define __BPF_FUNC_MAPPER(FN) \ |
| 442 | 461 | FN(unspec), \ |
| @@ -483,7 +502,8 @@ union bpf_attr { · 40 unmodified lines | ||
| 483 | 502 | FN(set_hash_invalid), \ |
| 484 | 503 | FN(get_numa_node_id), \ |
| 485 | 504 | FN(skb_change_head), \ |
| 486 | − FN(xdp_adjust_head), | |
| 505 | + FN(xdp_adjust_head), \ | |
| 506 | + FN(probe_read_str), | |
| 487 | 507 | |
| 488 | 508 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 489 | 509 | * function eBPF program intends to call |
| @@ -509,6 +529,7 @@ enum bpf_func_id { · 19 unmodified lines | ||
| 509 | 529 | /* BPF_FUNC_l4_csum_replace flags. */ |
| 510 | 530 | #define BPF_F_PSEUDO_HDR (1ULL << 4) |
| 511 | 531 | #define BPF_F_MARK_MANGLED_0 (1ULL << 5) |
| 532 | +#define BPF_F_MARK_ENFORCE (1ULL << 6) | |
| 512 | 533 | |
| 513 | 534 | /* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ |
| 514 | 535 | #define BPF_F_INGRESS (1ULL << 0) |
| @@ -127,9 +127,16 @@ enum { · 126 unmodified lines | ||
| 127 | 127 | IFLA_CAN_BERR_COUNTER, |
| 128 | 128 | IFLA_CAN_DATA_BITTIMING, |
| 129 | 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 | 134 | __IFLA_CAN_MAX |
| 131 | 135 | }; |
| 132 | 136 | |
| 133 | 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 | 142 | #endif /* !_UAPI_CAN_NETLINK_H */ |
| @@ -57,8 +57,14 @@ enum devlink_command { · 56 unmodified lines | ||
| 57 | 57 | DEVLINK_CMD_SB_OCC_SNAPSHOT, |
| 58 | 58 | DEVLINK_CMD_SB_OCC_MAX_CLEAR, |
| 59 | 59 | |
| 60 | − DEVLINK_CMD_ESWITCH_MODE_GET, | |
| 61 | − DEVLINK_CMD_ESWITCH_MODE_SET, | |
| 60 | + DEVLINK_CMD_ESWITCH_GET, | |
| 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 | 68 | /* add new commands above here */ |
| 63 | 69 | |
| 64 | 70 | __DEVLINK_CMD_MAX, |
| @@ -63,5 +63,10 @@ · 62 unmodified lines | ||
| 63 | 63 | #define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */ |
| 64 | 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 | 72 | #endif /* _UAPI_LINUX_FCNTL_H */ |
| @@ -132,6 +132,7 @@ struct inodes_stat_t { · 131 unmodified lines | ||
| 132 | 132 | #define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */ |
| 133 | 133 | |
| 134 | 134 | /* These sb flags are internal to the kernel */ |
| 135 | +#define MS_SUBMOUNT (1<<26) | |
| 135 | 136 | #define MS_NOREMOTELOCK (1<<27) |
| 136 | 137 | #define MS_NOSEC (1<<28) |
| 137 | 138 | #define MS_BORN (1<<29) |
| @@ -24,6 +24,10 @@ · 23 unmodified lines | ||
| 24 | 24 | #include <linux/socket.h> /* for "struct sockaddr" et al */ |
| 25 | 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 | 31 | #if __UAPI_DEF_IF_IFNAMSIZ |
| 28 | 32 | #define IFNAMSIZ 16 |
| 29 | 33 | #endif /* __UAPI_DEF_IF_IFNAMSIZ */ |
| @@ -118,6 +118,7 @@ enum { · 117 unmodified lines | ||
| 118 | 118 | IFLA_BRIDGE_FLAGS, |
| 119 | 119 | IFLA_BRIDGE_MODE, |
| 120 | 120 | IFLA_BRIDGE_VLAN_INFO, |
| 121 | + IFLA_BRIDGE_VLAN_TUNNEL_INFO, | |
| 121 | 122 | __IFLA_BRIDGE_MAX, |
| 122 | 123 | }; |
| 123 | 124 | #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) |
| @@ -134,6 +135,16 @@ struct bridge_vlan_info { · 10 unmodified lines | ||
| 134 | 135 | __u16 vid; |
| 135 | 136 | }; |
| 136 | 137 | |
| 138 | +enum { | |
| 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 | + | |
| 137 | 148 | struct bridge_vlan_xstats { |
| 138 | 149 | __u64 rx_bytes; |
| 139 | 150 | __u64 rx_packets; |
| @@ -93,6 +93,7 @@ · 92 unmodified lines | ||
| 93 | 93 | #define ETH_P_NCSI 0x88F8 /* NCSI protocol */ |
| 94 | 94 | #define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */ |
| 95 | 95 | #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ |
| 96 | +#define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */ | |
| 96 | 97 | #define ETH_P_TDLS 0x890D /* TDLS */ |
| 97 | 98 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ |
| 98 | 99 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ |
| @@ -321,6 +321,8 @@ enum { · 320 unmodified lines | ||
| 321 | 321 | IFLA_BRPORT_MULTICAST_ROUTER, |
| 322 | 322 | IFLA_BRPORT_PAD, |
| 323 | 323 | IFLA_BRPORT_MCAST_FLOOD, |
| 324 | + IFLA_BRPORT_MCAST_TO_UCAST, | |
| 325 | + IFLA_BRPORT_VLAN_TUNNEL, | |
| 324 | 326 | __IFLA_BRPORT_MAX |
| 325 | 327 | }; |
| 326 | 328 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -847,6 +849,7 @@ enum { · 520 unmodified lines | ||
| 847 | 849 | IFLA_STATS_LINK_XSTATS, |
| 848 | 850 | IFLA_STATS_LINK_XSTATS_SLAVE, |
| 849 | 851 | IFLA_STATS_LINK_OFFLOAD_XSTATS, |
| 852 | + IFLA_STATS_AF_SPEC, | |
| 850 | 853 | __IFLA_STATS_MAX, |
| 851 | 854 | }; |
| 852 | 855 | |
| @@ -0,0 +1,18 @@ | ||
| 1 | +#ifndef __UAPI_IFE_H | |
| 2 | +#define __UAPI_IFE_H | |
| 3 | + | |
| 4 | +#define IFE_METAHDRLEN 2 | |
| 5 | + | |
| 6 | +enum { | |
| 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 | |
| @@ -53,7 +53,7 @@ struct igmpv3_grec { · 52 unmodified lines | ||
| 53 | 53 | struct igmpv3_report { |
| 54 | 54 | __u8 type; |
| 55 | 55 | __u8 resv1; |
| 56 | − __be16 csum; | |
| 56 | + __sum16 csum; | |
| 57 | 57 | __be16 resv2; |
| 58 | 58 | __be16 ngrec; |
| 59 | 59 | struct igmpv3_grec grec[0]; |
| @@ -62,7 +62,7 @@ struct igmpv3_report { · 2 unmodified lines | ||
| 62 | 62 | struct igmpv3_query { |
| 63 | 63 | __u8 type; |
| 64 | 64 | __u8 code; |
| 65 | − __be16 csum; | |
| 65 | + __sum16 csum; | |
| 66 | 66 | __be32 group; |
| 67 | 67 | #if defined(__LITTLE_ENDIAN_BITFIELD) |
| 68 | 68 | __u8 qrv:3, |
| @@ -42,6 +42,7 @@ enum iio_chan_type { · 41 unmodified lines | ||
| 42 | 42 | IIO_ELECTRICALCONDUCTIVITY, |
| 43 | 43 | IIO_COUNT, |
| 44 | 44 | IIO_INDEX, |
| 45 | + IIO_GRAVITY, | |
| 45 | 46 | }; |
| 46 | 47 | |
| 47 | 48 | enum iio_modifier { |
| @@ -2,6 +2,8 @@ · 1 unmodified line | ||
| 2 | 2 | #define _IP6_TUNNEL_H |
| 3 | 3 | |
| 4 | 4 | #include <linux/types.h> |
| 5 | +#include <linux/if.h> /* For IFNAMSIZ. */ | |
| 6 | +#include <linux/in6.h> /* For struct in6_addr. */ | |
| 5 | 7 | |
| 6 | 8 | #define IPV6_TLV_TNL_ENCAP_LIMIT 4 |
| 7 | 9 | #define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 |
| @@ -182,6 +182,7 @@ enum { · 181 unmodified lines | ||
| 182 | 182 | DEVCONF_SEG6_ENABLED, |
| 183 | 183 | DEVCONF_SEG6_REQUIRE_HMAC, |
| 184 | 184 | DEVCONF_ENHANCED_DAD, |
| 185 | + DEVCONF_ADDR_GEN_MODE, | |
| 185 | 186 | DEVCONF_MAX |
| 186 | 187 | }; |
| 187 | 188 | |
| @@ -14,6 +14,7 @@ · 13 unmodified lines | ||
| 14 | 14 | #define _UAPI_LINUX_IPV6_ROUTE_H |
| 15 | 15 | |
| 16 | 16 | #include <linux/types.h> |
| 17 | +#include <linux/in6.h> /* For struct in6_addr. */ | |
| 17 | 18 | |
| 18 | 19 | #define RTF_DEFAULT 0x00010000 /* default - learned via ND */ |
| 19 | 20 | #define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) |
| @@ -218,7 +218,8 @@ struct kvm_hyperv_exit { · 217 unmodified lines | ||
| 218 | 218 | struct kvm_run { |
| 219 | 219 | /* in */ |
| 220 | 220 | __u8 request_interrupt_window; |
| 221 | − __u8 padding1[7]; | |
| 221 | + __u8 immediate_exit; | |
| 222 | + __u8 padding1[6]; | |
| 222 | 223 | |
| 223 | 224 | /* out */ |
| 224 | 225 | __u32 exit_reason; |
| @@ -685,6 +686,13 @@ struct kvm_ppc_smmu_info { · 460 unmodified lines | ||
| 685 | 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} */ | |
| 690 | +struct kvm_ppc_resize_hpt { | |
| 691 | + __u64 flags; | |
| 692 | + __u32 shift; | |
| 693 | + __u32 pad; | |
| 694 | +}; | |
| 695 | + | |
| 688 | 696 | #define KVMIO 0xAE |
| 689 | 697 | |
| 690 | 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 | 879 | #define KVM_CAP_S390_USER_INSTR0 130 |
| 872 | 880 | #define KVM_CAP_MSI_DEVID 131 |
| 873 | 881 | #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 | 887 | #ifdef KVM_CAP_IRQ_ROUTING |
| 876 | 888 | |
| @@ -1187,6 +1199,13 @@ struct kvm_s390_ucas_mapping { · 310 unmodified lines | ||
| 1187 | 1199 | #define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr) |
| 1188 | 1200 | /* Available with KVM_CAP_PPC_RTAS */ |
| 1189 | 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 | 1210 | /* ioctl for vm fd */ |
| 1192 | 1211 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) |
| @@ -14,6 +14,7 @@ · 13 unmodified lines | ||
| 14 | 14 | #define KVM_EFAULT EFAULT |
| 15 | 15 | #define KVM_E2BIG E2BIG |
| 16 | 16 | #define KVM_EPERM EPERM |
| 17 | +#define KVM_EOPNOTSUPP 95 | |
| 17 | 18 | |
| 18 | 19 | #define KVM_HC_VAPIC_POLL_IRQ 1 |
| 19 | 20 | #define KVM_HC_MMU_OP 2 |
| @@ -23,6 +24,7 @@ · 3 unmodified lines | ||
| 23 | 24 | #define KVM_HC_MIPS_GET_CLOCK_FREQ 6 |
| 24 | 25 | #define KVM_HC_MIPS_EXIT_VM 7 |
| 25 | 26 | #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 |
| 27 | +#define KVM_HC_CLOCK_PAIRING 9 | |
| 26 | 28 | |
| 27 | 29 | /* |
| 28 | 30 | * hypercalls use architecture specific |
| @@ -122,6 +122,44 @@ struct nvm_ioctl_dev_factory { · 121 unmodified lines | ||
| 122 | 122 | __u32 flags; |
| 123 | 123 | }; |
| 124 | 124 | |
| 125 | +struct nvm_user_vio { | |
| 126 | + __u8 opcode; | |
| 127 | + __u8 flags; | |
| 128 | + __u16 control; | |
| 129 | + __u16 nppas; | |
| 130 | + __u16 rsvd; | |
| 131 | + __u64 metadata; | |
| 132 | + __u64 addr; | |
| 133 | + __u64 ppa_list; | |
| 134 | + __u32 metadata_len; | |
| 135 | + __u32 data_len; | |
| 136 | + __u64 status; | |
| 137 | + __u32 result; | |
| 138 | + __u32 rsvd3[3]; | |
| 139 | +}; | |
| 140 | + | |
| 141 | +struct nvm_passthru_vio { | |
| 142 | + __u8 opcode; | |
| 143 | + __u8 flags; | |
| 144 | + __u8 rsvd[2]; | |
| 145 | + __u32 nsid; | |
| 146 | + __u32 cdw2; | |
| 147 | + __u32 cdw3; | |
| 148 | + __u64 metadata; | |
| 149 | + __u64 addr; | |
| 150 | + __u32 metadata_len; | |
| 151 | + __u32 data_len; | |
| 152 | + __u64 ppa_list; | |
| 153 | + __u16 nppas; | |
| 154 | + __u16 control; | |
| 155 | + __u32 cdw13; | |
| 156 | + __u32 cdw14; | |
| 157 | + __u32 cdw15; | |
| 158 | + __u64 status; | |
| 159 | + __u32 result; | |
| 160 | + __u32 timeout_ms; | |
| 161 | +}; | |
| 162 | + | |
| 125 | 163 | /* The ioctl type, 'L', 0x20 - 0x2F documented in ioctl-number.txt */ |
| 126 | 164 | enum { |
| 127 | 165 | /* top level cmds */ |
| @@ -137,6 +175,11 @@ enum { · 9 unmodified lines | ||
| 137 | 175 | |
| 138 | 176 | /* Factory reset device */ |
| 139 | 177 | NVM_DEV_FACTORY_CMD, |
| 178 | + | |
| 179 | + /* Vector user I/O */ | |
| 180 | + NVM_DEV_VIO_ADMIN_CMD = 0x41, | |
| 181 | + NVM_DEV_VIO_CMD = 0x42, | |
| 182 | + NVM_DEV_VIO_USER_CMD = 0x43, | |
| 140 | 183 | }; |
| 141 | 184 | |
| 142 | 185 | #define NVM_IOCTL 'L' /* 0x4c */ |
| @@ -154,6 +197,13 @@ enum { · 11 unmodified lines | ||
| 154 | 197 | #define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, \ |
| 155 | 198 | struct nvm_ioctl_dev_factory) |
| 156 | 199 | |
| 200 | +#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, \ | |
| 201 | + struct nvm_passthru_vio) | |
| 202 | +#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD,\ | |
| 203 | + struct nvm_passthru_vio) | |
| 204 | +#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD,\ | |
| 205 | + struct nvm_user_vio) | |
| 206 | + | |
| 157 | 207 | #define NVM_VERSION_MAJOR 1 |
| 158 | 208 | #define NVM_VERSION_MINOR 0 |
| 159 | 209 | #define NVM_VERSION_PATCHLEVEL 0 |
| @@ -14,6 +14,7 @@ · 13 unmodified lines | ||
| 14 | 14 | #define _UAPI__LINUX_LLC_H |
| 15 | 15 | |
| 16 | 16 | #include <linux/socket.h> |
| 17 | +#include <linux/if.h> /* For IFHWADDRLEN. */ | |
| 17 | 18 | |
| 18 | 19 | #define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */ |
| 19 | 20 | struct sockaddr_llc { |
| @@ -43,4 +43,34 @@ struct mpls_label { · 42 unmodified lines | ||
| 43 | 43 | |
| 44 | 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 | + */ | |
| 56 | +enum { | |
| 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 | + | |
| 64 | +struct 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 | 76 | #endif /* _UAPI_MPLS_H */ |
| @@ -18,6 +18,8 @@ · 17 unmodified lines | ||
| 18 | 18 | #ifndef _LINUX_MQUEUE_H |
| 19 | 19 | #define _LINUX_MQUEUE_H |
| 20 | 20 | |
| 21 | +#include <linux/types.h> | |
| 22 | + | |
| 21 | 23 | #define MQ_PRIO_MAX 32768 |
| 22 | 24 | /* per-uid limit of kernel memory used by mqueue, in bytes */ |
| 23 | 25 | #define MQ_BYTES_MAX 819200 |
| @@ -3,6 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | |
| 4 | 4 | #include <linux/sockios.h> |
| 5 | 5 | #include <linux/types.h> |
| 6 | +#include <linux/in.h> /* For struct in_addr. */ | |
| 6 | 7 | |
| 7 | 8 | /* Based on the MROUTING 3.5 defines primarily to keep |
| 8 | 9 | * source compatibility with BSD. |
| @@ -4,6 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | #include <linux/kernel.h> |
| 5 | 5 | #include <linux/types.h> |
| 6 | 6 | #include <linux/sockios.h> |
| 7 | +#include <linux/in6.h> /* For struct sockaddr_in6. */ | |
| 7 | 8 | |
| 8 | 9 | /* |
| 9 | 10 | * Based on the MROUTING 3.5 defines primarily to keep |
| @@ -26,6 +26,7 @@ enum { · 25 unmodified lines | ||
| 26 | 26 | NDA_IFINDEX, |
| 27 | 27 | NDA_MASTER, |
| 28 | 28 | NDA_LINK_NETNSID, |
| 29 | + NDA_SRC_VNI, | |
| 29 | 30 | __NDA_MAX |
| 30 | 31 | }; |
| 31 | 32 | |
| @@ -16,6 +16,7 @@ enum { · 15 unmodified lines | ||
| 16 | 16 | NETCONFA_MC_FORWARDING, |
| 17 | 17 | NETCONFA_PROXY_NEIGH, |
| 18 | 18 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, |
| 19 | + NETCONFA_INPUT, | |
| 19 | 20 | __NETCONFA_MAX |
| 20 | 21 | }; |
| 21 | 22 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
| @@ -3,7 +3,6 @@ · 2 unmodified lines | ||
| 3 | 3 | |
| 4 | 4 | #include <linux/types.h> |
| 5 | 5 | #include <linux/compiler.h> |
| 6 | −#include <linux/sysctl.h> | |
| 7 | 6 | #include <linux/in.h> |
| 8 | 7 | #include <linux/in6.h> |
| 9 | 8 | |
| @@ -82,6 +82,10 @@ enum ip_conntrack_status { · 81 unmodified lines | ||
| 82 | 82 | IPS_DYING_BIT = 9, |
| 83 | 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 | 89 | /* Connection has fixed timeout. */ |
| 86 | 90 | IPS_FIXED_TIMEOUT_BIT = 10, |
| 87 | 91 | IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT), |
| @@ -207,6 +207,7 @@ enum nft_chain_attributes { · 206 unmodified lines | ||
| 207 | 207 | * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes) |
| 208 | 208 | * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64) |
| 209 | 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 | */ |
| 211 | 212 | enum nft_rule_attributes { |
| 212 | 213 | NFTA_RULE_UNSPEC, |
| @@ -218,6 +219,7 @@ enum nft_rule_attributes { · 5 unmodified lines | ||
| 218 | 219 | NFTA_RULE_POSITION, |
| 219 | 220 | NFTA_RULE_USERDATA, |
| 220 | 221 | NFTA_RULE_PAD, |
| 222 | + NFTA_RULE_ID, | |
| 221 | 223 | __NFTA_RULE_MAX |
| 222 | 224 | }; |
| 223 | 225 | #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) |
| @@ -704,13 +706,32 @@ enum nft_payload_attributes { · 480 unmodified lines | ||
| 704 | 706 | }; |
| 705 | 707 | #define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1) |
| 706 | 708 | |
| 709 | +enum 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 | + */ | |
| 719 | +enum 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 attributes | |
| 727 | + * enum nft_exthdr_attributes - nf_tables extension header expression netlink attributes | |
| 709 | 728 | * |
| 710 | 729 | * @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers) |
| 711 | 730 | * @NFTA_EXTHDR_TYPE: extension header type (NLA_U8) |
| 712 | 731 | * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32) |
| 713 | 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 | */ |
| 715 | 736 | enum nft_exthdr_attributes { |
| 716 | 737 | NFTA_EXTHDR_UNSPEC, |
| @@ -718,6 +739,8 @@ enum nft_exthdr_attributes { · 1 unmodified line | ||
| 718 | 739 | NFTA_EXTHDR_TYPE, |
| 719 | 740 | NFTA_EXTHDR_OFFSET, |
| 720 | 741 | NFTA_EXTHDR_LEN, |
| 742 | + NFTA_EXTHDR_FLAGS, | |
| 743 | + NFTA_EXTHDR_OP, | |
| 721 | 744 | __NFTA_EXTHDR_MAX |
| 722 | 745 | }; |
| 723 | 746 | #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) |
| @@ -860,6 +883,11 @@ enum nft_rt_attributes { · 136 unmodified lines | ||
| 860 | 883 | * @NFT_CT_PROTOCOL: conntrack layer 4 protocol |
| 861 | 884 | * @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source |
| 862 | 885 | * @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 | */ |
| 864 | 892 | enum nft_ct_keys { |
| 865 | 893 | NFT_CT_STATE, |
| @@ -878,6 +906,8 @@ enum nft_ct_keys { · 12 unmodified lines | ||
| 878 | 906 | NFT_CT_LABELS, |
| 879 | 907 | NFT_CT_PKTS, |
| 880 | 908 | NFT_CT_BYTES, |
| 909 | + NFT_CT_AVGPKT, | |
| 910 | + NFT_CT_ZONE, | |
| 881 | 911 | }; |
| 882 | 912 | |
| 883 | 913 | /** |
| @@ -65,4 +65,16 @@ struct nfgenmsg { · 64 unmodified lines | ||
| 65 | 65 | #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE |
| 66 | 66 | #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 | + */ | |
| 73 | +enum 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 | 80 | #endif /* _UAPI_NFNETLINK_H */ |
| @@ -36,7 +36,7 @@ enum nfqnl_vlan_attr { · 35 unmodified lines | ||
| 36 | 36 | NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */ |
| 37 | 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 | |
| 41 | 41 | enum nfqnl_attr_type { |
| 42 | 42 | NFQA_UNSPEC, |
| @@ -2,6 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | #define _UAPI_XT_HASHLIMIT_H |
| 3 | 3 | |
| 4 | 4 | #include <linux/types.h> |
| 5 | +#include <linux/limits.h> | |
| 5 | 6 | #include <linux/if.h> |
| 6 | 7 | |
| 7 | 8 | /* timings are in milliseconds. */ |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | ||
| 27 | 27 | #define NETLINK_ECRYPTFS 19 |
| 28 | 28 | #define NETLINK_RDMA 20 |
| 29 | 29 | #define NETLINK_CRYPTO 21 /* Crypto layer */ |
| 30 | +#define NETLINK_SMC 22 /* SMC monitoring */ | |
| 30 | 31 | |
| 31 | 32 | #define NETLINK_INET_DIAG NETLINK_SOCK_DIAG |
| 32 | 33 | |
| @@ -32,7 +32,8 @@ · 31 unmodified lines | ||
| 32 | 32 | #define NFSEXP_ASYNC 0x0010 |
| 33 | 33 | #define NFSEXP_GATHERED_WRITES 0x0020 |
| 34 | 34 | #define NFSEXP_NOREADDIRPLUS 0x0040 |
| 35 | −/* 80 100 currently unused */ | |
| 35 | +#define NFSEXP_SECURITY_LABEL 0x0080 | |
| 36 | +/* 0x100 currently unused */ | |
| 36 | 37 | #define NFSEXP_NOHIDE 0x0200 |
| 37 | 38 | #define NFSEXP_NOSUBTREECHECK 0x0400 |
| 38 | 39 | #define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */ |
| @@ -53,7 +54,7 @@ · 14 unmodified lines | ||
| 53 | 54 | #define NFSEXP_PNFS 0x20000 |
| 54 | 55 | |
| 55 | 56 | /* All flags that we claim to support. (Note we don't support NOACL.) */ |
| 56 | −#define NFSEXP_ALLFLAGS 0x3FE7F | |
| 57 | +#define NFSEXP_ALLFLAGS 0x3FEFF | |
| 57 | 58 | |
| 58 | 59 | /* The flags that may vary depending on security flavor: */ |
| 59 | 60 | #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ |
| @@ -10,7 +10,7 @@ · 9 unmodified lines | ||
| 10 | 10 | * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com> |
| 11 | 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> |
| 12 | 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> |
| 13 | − * Copyright 2015 Intel Deutschland GmbH | |
| 13 | + * Copyright 2015-2017 Intel Deutschland GmbH | |
| 14 | 14 | * |
| 15 | 15 | * Permission to use, copy, modify, and/or distribute this software for any |
| 16 | 16 | * purpose with or without fee is hereby granted, provided that the above |
| @@ -854,12 +854,15 @@ · 837 unmodified lines | ||
| 854 | 854 | * cfg80211_scan_done(). |
| 855 | 855 | * |
| 856 | 856 | * @NL80211_CMD_START_NAN: Start NAN operation, identified by its |
| 857 | − * %NL80211_ATTR_WDEV interface. This interface must have been previously | |
| 858 | − * created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the | |
| 859 | − * NAN interface will create or join a cluster. This command must have a | |
| 860 | − * valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional | |
| 861 | − * %NL80211_ATTR_NAN_DUAL attributes. | |
| 862 | − * After this command NAN functions can be added. | |
| 857 | + * %NL80211_ATTR_WDEV interface. This interface must have been | |
| 858 | + * previously created with %NL80211_CMD_NEW_INTERFACE. After it | |
| 859 | + * has been started, the NAN interface will create or join a | |
| 860 | + * cluster. This command must have a valid | |
| 861 | + * %NL80211_ATTR_NAN_MASTER_PREF attribute and optional | |
| 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 | 866 | * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by |
| 864 | 867 | * its %NL80211_ATTR_WDEV interface. |
| 865 | 868 | * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined |
| @@ -880,10 +883,14 @@ · 14 unmodified lines | ||
| 880 | 883 | * This command is also used as a notification sent when a NAN function is |
| 881 | 884 | * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID |
| 882 | 885 | * and %NL80211_ATTR_COOKIE attributes. |
| 883 | − * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN configuration. NAN | |
| 884 | − * must be operational (%NL80211_CMD_START_NAN was executed). | |
| 885 | − * It must contain at least one of the following attributes: | |
| 886 | − * %NL80211_ATTR_NAN_MASTER_PREF, %NL80211_ATTR_NAN_DUAL. | |
| 886 | + * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN | |
| 887 | + * configuration. NAN must be operational (%NL80211_CMD_START_NAN | |
| 888 | + * was executed). It must contain at least one of the following | |
| 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 | 894 | * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported. |
| 888 | 895 | * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and |
| 889 | 896 | * %NL80211_ATTR_COOKIE. |
| @@ -1822,6 +1829,8 @@ enum nl80211_commands { · 932 unmodified lines | ||
| 1822 | 1829 | * and remove functions. NAN notifications will be sent in unicast to that |
| 1823 | 1830 | * socket. Without this attribute, any socket can add functions and the |
| 1824 | 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 | 1835 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is |
| 1827 | 1836 | * the TDLS link initiator. |
| @@ -1961,10 +1970,13 @@ enum nl80211_commands { · 133 unmodified lines | ||
| 1961 | 1970 | * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0. |
| 1962 | 1971 | * Also, values 1 and 255 are reserved for certification purposes and |
| 1963 | 1972 | * should not be used during a normal device operation. |
| 1964 | − * @NL80211_ATTR_NAN_DUAL: NAN dual band operation config (see | |
| 1965 | − * &enum nl80211_nan_dual_band_conf). This attribute is used with | |
| 1966 | − * %NL80211_CMD_START_NAN and optionally with | |
| 1967 | − * %NL80211_CMD_CHANGE_NAN_CONFIG. | |
| 1973 | + * @NL80211_ATTR_BANDS: operating bands configuration. This is a u32 | |
| 1974 | + * bitmask of BIT(NL80211_BAND_*) as described in %enum | |
| 1975 | + * nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0 | |
| 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 | 1980 | * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See |
| 1969 | 1981 | * &enum nl80211_nan_func_attributes for description of this nested |
| 1970 | 1982 | * attribute. |
| @@ -1982,6 +1994,24 @@ enum nl80211_commands { · 11 unmodified lines | ||
| 1982 | 1994 | * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also |
| 1983 | 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 | 2015 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 1986 | 2016 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1987 | 2017 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2377,7 +2407,7 @@ enum nl80211_attrs { · 389 unmodified lines | ||
| 2377 | 2407 | NL80211_ATTR_MESH_PEER_AID, |
| 2378 | 2408 | |
| 2379 | 2409 | NL80211_ATTR_NAN_MASTER_PREF, |
| 2380 | − NL80211_ATTR_NAN_DUAL, | |
| 2410 | + NL80211_ATTR_BANDS, | |
| 2381 | 2411 | NL80211_ATTR_NAN_FUNC, |
| 2382 | 2412 | NL80211_ATTR_NAN_MATCH, |
| 2383 | 2413 | |
| @@ -2388,6 +2418,11 @@ enum nl80211_attrs { · 4 unmodified lines | ||
| 2388 | 2418 | |
| 2389 | 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 | 2426 | /* add attributes here, update the policy in nl80211.c */ |
| 2392 | 2427 | |
| 2393 | 2428 | __NL80211_ATTR_AFTER_LAST, |
| @@ -3080,6 +3115,13 @@ enum nl80211_reg_rule_attr { · 686 unmodified lines | ||
| 3080 | 3115 | * how this API was implemented in the past. Also, due to the same problem, |
| 3081 | 3116 | * the only way to create a matchset with only an RSSI filter (with this |
| 3082 | 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 | 3125 | * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter |
| 3084 | 3126 | * attribute number currently defined |
| 3085 | 3127 | * @__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 | 3132 | NL80211_SCHED_SCAN_MATCH_ATTR_SSID, |
| 3091 | 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 | 3137 | /* keep last */ |
| 3094 | 3138 | __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, |
| @@ -3918,6 +3962,8 @@ enum nl80211_ps_state { · 823 unmodified lines | ||
| 3918 | 3962 | * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. |
| 3919 | 3963 | * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon |
| 3920 | 3964 | * loss event |
| 3965 | + * @NL80211_ATTR_CQM_RSSI_LEVEL: the RSSI value in dBm that triggered the | |
| 3966 | + * RSSI threshold event. | |
| 3921 | 3967 | * @__NL80211_ATTR_CQM_AFTER_LAST: internal |
| 3922 | 3968 | * @NL80211_ATTR_CQM_MAX: highest key attribute |
| 3923 | 3969 | */ |
| @@ -3931,6 +3977,7 @@ enum nl80211_attr_cqm { · 7 unmodified lines | ||
| 3931 | 3977 | NL80211_ATTR_CQM_TXE_PKTS, |
| 3932 | 3978 | NL80211_ATTR_CQM_TXE_INTVL, |
| 3933 | 3979 | NL80211_ATTR_CQM_BEACON_LOSS_EVENT, |
| 3980 | + NL80211_ATTR_CQM_RSSI_LEVEL, | |
| 3934 | 3981 | |
| 3935 | 3982 | /* keep last */ |
| 3936 | 3983 | __NL80211_ATTR_CQM_AFTER_LAST, |
| @@ -4699,6 +4746,13 @@ enum nl80211_feature_flags { · 762 unmodified lines | ||
| 4699 | 4746 | * configuration (AP/mesh) with VHT rates. |
| 4700 | 4747 | * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup |
| 4701 | 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 | 4757 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 4704 | 4758 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -4714,6 +4768,9 @@ enum nl80211_ext_feature_index { · 9 unmodified lines | ||
| 4714 | 4768 | NL80211_EXT_FEATURE_BEACON_RATE_HT, |
| 4715 | 4769 | NL80211_EXT_FEATURE_BEACON_RATE_VHT, |
| 4716 | 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 | 4775 | /* add new features before the definition below */ |
| 4719 | 4776 | NUM_NL80211_EXT_FEATURES, |
| @@ -4752,6 +4809,21 @@ enum nl80211_connect_failed_reason { · 32 unmodified lines | ||
| 4752 | 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 | + */ | |
| 4820 | +enum nl80211_timeout_reason { | |
| 4821 | + NL80211_TIMEOUT_UNSPECIFIED, | |
| 4822 | + NL80211_TIMEOUT_SCAN, | |
| 4823 | + NL80211_TIMEOUT_AUTH, | |
| 4824 | + NL80211_TIMEOUT_ASSOC, | |
| 4825 | +}; | |
| 4826 | + | |
| 4755 | 4827 | /** |
| 4756 | 4828 | * 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 | 5039 | * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters. |
| 4968 | 5040 | * |
| 4969 | − * @band: band of BSS that must match for RSSI value adjustment. | |
| 4970 | − * @delta: value used to adjust the RSSI value of matching BSS. | |
| 5041 | + * @band: band of BSS that must match for RSSI value adjustment. The value | |
| 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 | */ |
| 4972 | 5045 | struct nl80211_bss_select_rssi_adjust { |
| 4973 | 5046 | __u8 band; |
| @@ -5007,21 +5080,6 @@ enum nl80211_bss_select_attr { · 33 unmodified lines | ||
| 5007 | 5080 | 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 | − */ | |
| 5019 | −enum 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 | 5084 | * enum nl80211_nan_function_type - NAN function type |
| 5027 | 5085 | * |
| @@ -6,8 +6,13 @@ · 5 unmodified lines | ||
| 6 | 6 | #define NSIO 0xb7 |
| 7 | 7 | |
| 8 | 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 | 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 | 18 | #endif /* __LINUX_NSFS_H */ |
| @@ -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 | 5 | * This program is free software; you can redistribute it and/or |
| 6 | 6 | * 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 | 331 | OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */ |
| 332 | 332 | OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */ |
| 333 | 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 | 337 | #ifdef __KERNEL__ |
| 336 | 338 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ |
| @@ -446,9 +448,13 @@ struct ovs_key_nd { · 109 unmodified lines | ||
| 446 | 448 | __u8 nd_tll[ETH_ALEN]; |
| 447 | 449 | }; |
| 448 | 450 | |
| 449 | −#define OVS_CT_LABELS_LEN 16 | |
| 451 | +#define OVS_CT_LABELS_LEN_32 4 | |
| 452 | +#define OVS_CT_LABELS_LEN (OVS_CT_LABELS_LEN_32 * sizeof(__u32)) | |
| 450 | 453 | struct 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 | 460 | /* OVS_KEY_ATTR_CT_STATE flags */ |
| @@ -468,6 +474,22 @@ struct ovs_key_ct_labels { · 13 unmodified lines | ||
| 468 | 474 | |
| 469 | 475 | #define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT) |
| 470 | 476 | |
| 477 | +struct 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 | + | |
| 485 | +struct 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 | 494 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. |
| 473 | 495 | * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow |
| @@ -652,6 +674,10 @@ struct ovs_action_hash { · 178 unmodified lines | ||
| 652 | 674 | * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG. |
| 653 | 675 | * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address |
| 654 | 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 | */ |
| 656 | 682 | enum ovs_ct_attr { |
| 657 | 683 | OVS_CT_ATTR_UNSPEC, |
| @@ -662,6 +688,7 @@ enum ovs_ct_attr { · 4 unmodified lines | ||
| 662 | 688 | OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of |
| 663 | 689 | related connections. */ |
| 664 | 690 | OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */ |
| 691 | + OVS_CT_ATTR_FORCE_COMMIT, /* No argument */ | |
| 665 | 692 | __OVS_CT_ATTR_MAX |
| 666 | 693 | }; |
| 667 | 694 | |
| @@ -682,6 +682,7 @@ · 681 unmodified lines | ||
| 682 | 682 | #define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */ |
| 683 | 683 | #define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */ |
| 684 | 684 | #define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */ |
| 685 | +#define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */ | |
| 685 | 686 | #define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */ |
| 686 | 687 | #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PTM |
| 687 | 688 | |
| @@ -973,6 +974,7 @@ · 285 unmodified lines | ||
| 973 | 974 | #define PCI_EXP_DPC_STATUS 8 /* DPC Status */ |
| 974 | 975 | #define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */ |
| 975 | 976 | #define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */ |
| 977 | +#define PCI_EXP_DPC_RP_BUSY 0x10 /* Root Port Busy */ | |
| 976 | 978 | |
| 977 | 979 | #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ |
| 978 | 980 | |
| @@ -985,4 +987,19 @@ · 6 unmodified lines | ||
| 985 | 987 | #define PCI_PTM_CTRL_ENABLE 0x00000001 /* PTM enable */ |
| 986 | 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 | 1005 | #endif /* LINUX_PCI_REGS_H */ |
| @@ -4,60 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | #include <linux/types.h> |
| 5 | 5 | #include <linux/pkt_sched.h> |
| 6 | 6 | |
| 7 | −#ifdef __KERNEL__ | |
| 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 | − * | |
| 20 | −bit 0: when set -> this packet has been munged already | |
| 21 | − | |
| 22 | −bit 1: when set -> It is ok to munge this packet | |
| 23 | − | |
| 24 | −bit 2,3,4,5: Reclassify counter - sort of reverse TTL - if exceeded | |
| 25 | −assume loop | |
| 26 | − | |
| 27 | −bit 6,7: Where this packet was last seen | |
| 28 | −0: Above the transmit example at the socket level | |
| 29 | −1: on the Ingress | |
| 30 | −2: on the Egress | |
| 31 | − | |
| 32 | −bit 8: when set --> Request not to classify on ingress. | |
| 33 | − | |
| 34 | −bits 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 | |
| 7 | +#define TC_COOKIE_MAX_SIZE 16 | |
| 61 | 8 | |
| 62 | 9 | /* Action attributes */ |
| 63 | 10 | enum { |
| @@ -67,6 +14,7 @@ enum { · 3 unmodified lines | ||
| 67 | 14 | TCA_ACT_INDEX, |
| 68 | 15 | TCA_ACT_STATS, |
| 69 | 16 | TCA_ACT_PAD, |
| 17 | + TCA_ACT_COOKIE, | |
| 70 | 18 | __TCA_ACT_MAX |
| 71 | 19 | }; |
| 72 | 20 | |
| @@ -155,8 +103,10 @@ enum { · 82 unmodified lines | ||
| 155 | 103 | #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) |
| 156 | 104 | |
| 157 | 105 | /* tca flags definitions */ |
| 158 | −#define TCA_CLS_FLAGS_SKIP_HW (1 << 0) | |
| 159 | −#define TCA_CLS_FLAGS_SKIP_SW (1 << 1) | |
| 106 | +#define TCA_CLS_FLAGS_SKIP_HW (1 << 0) /* don't offload filter to HW */ | |
| 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 | 111 | /* U32 filters */ |
| 162 | 112 | |
| @@ -471,6 +421,17 @@ enum { · 308 unmodified lines | ||
| 471 | 421 | TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */ |
| 472 | 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 | 435 | __TCA_FLOWER_MAX, |
| 475 | 436 | }; |
| 476 | 437 | |
| @@ -0,0 +1,35 @@ | ||
| 1 | +#ifndef __UAPI_PSAMPLE_H | |
| 2 | +#define __UAPI_PSAMPLE_H | |
| 3 | + | |
| 4 | +enum { | |
| 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 | + | |
| 20 | +enum 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 | |
| @@ -35,6 +35,7 @@ · 34 unmodified lines | ||
| 35 | 35 | #define _LINUX_RDS_H |
| 36 | 36 | |
| 37 | 37 | #include <linux/types.h> |
| 38 | +#include <linux/socket.h> /* For __kernel_sockaddr_storage. */ | |
| 38 | 39 | |
| 39 | 40 | #define RDS_IB_ABI_VERSION 0x301 |
| 40 | 41 | |
| @@ -52,6 +53,13 @@ · 11 unmodified lines | ||
| 52 | 53 | #define RDS_GET_MR_FOR_DEST 7 |
| 53 | 54 | #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 | 63 | /* supported values for SO_RDS_TRANSPORT */ |
| 56 | 64 | #define RDS_TRANS_IB 0 |
| 57 | 65 | #define RDS_TRANS_IWARP 1 |
| @@ -77,6 +85,12 @@ · 19 unmodified lines | ||
| 77 | 85 | * the same as for the GET_MR setsockopt. |
| 78 | 86 | * RDS_CMSG_RDMA_STATUS (recvmsg) |
| 79 | 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 | 95 | #define RDS_CMSG_RDMA_ARGS 1 |
| 82 | 96 | #define RDS_CMSG_RDMA_DEST 2 |
| @@ -87,6 +101,7 @@ · 4 unmodified lines | ||
| 87 | 101 | #define RDS_CMSG_ATOMIC_CSWP 7 |
| 88 | 102 | #define RDS_CMSG_MASKED_ATOMIC_FADD 8 |
| 89 | 103 | #define RDS_CMSG_MASKED_ATOMIC_CSWP 9 |
| 104 | +#define RDS_CMSG_RXPATH_LATENCY 11 | |
| 90 | 105 | |
| 91 | 106 | #define RDS_INFO_FIRST 10000 |
| 92 | 107 | #define RDS_INFO_COUNTERS 10000 |
| @@ -103,8 +118,8 @@ · 10 unmodified lines | ||
| 103 | 118 | #define RDS_INFO_LAST 10010 |
| 104 | 119 | |
| 105 | 120 | struct rds_info_counter { |
| 106 | − uint8_t name[32]; | |
| 107 | − uint64_t value; | |
| 121 | + __u8 name[32]; | |
| 122 | + __u64 value; | |
| 108 | 123 | } __attribute__((packed)); |
| 109 | 124 | |
| 110 | 125 | #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 |
| @@ -114,35 +129,35 @@ struct rds_info_counter { · 3 unmodified lines | ||
| 114 | 129 | #define TRANSNAMSIZ 16 |
| 115 | 130 | |
| 116 | 131 | struct rds_info_connection { |
| 117 | − uint64_t next_tx_seq; | |
| 118 | − uint64_t next_rx_seq; | |
| 132 | + __u64 next_tx_seq; | |
| 133 | + __u64 next_rx_seq; | |
| 119 | 134 | __be32 laddr; |
| 120 | 135 | __be32 faddr; |
| 121 | − uint8_t transport[TRANSNAMSIZ]; /* null term ascii */ | |
| 122 | − uint8_t flags; | |
| 136 | + __u8 transport[TRANSNAMSIZ]; /* null term ascii */ | |
| 137 | + __u8 flags; | |
| 123 | 138 | } __attribute__((packed)); |
| 124 | 139 | |
| 125 | 140 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 |
| 126 | 141 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 |
| 127 | 142 | |
| 128 | 143 | struct rds_info_message { |
| 129 | − uint64_t seq; | |
| 130 | − uint32_t len; | |
| 144 | + __u64 seq; | |
| 145 | + __u32 len; | |
| 131 | 146 | __be32 laddr; |
| 132 | 147 | __be32 faddr; |
| 133 | 148 | __be16 lport; |
| 134 | 149 | __be16 fport; |
| 135 | − uint8_t flags; | |
| 150 | + __u8 flags; | |
| 136 | 151 | } __attribute__((packed)); |
| 137 | 152 | |
| 138 | 153 | struct rds_info_socket { |
| 139 | − uint32_t sndbuf; | |
| 154 | + __u32 sndbuf; | |
| 140 | 155 | __be32 bound_addr; |
| 141 | 156 | __be32 connected_addr; |
| 142 | 157 | __be16 bound_port; |
| 143 | 158 | __be16 connected_port; |
| 144 | − uint32_t rcvbuf; | |
| 145 | − uint64_t inum; | |
| 159 | + __u32 rcvbuf; | |
| 160 | + __u64 inum; | |
| 146 | 161 | } __attribute__((packed)); |
| 147 | 162 | |
| 148 | 163 | struct rds_info_tcp_socket { |
| @@ -150,25 +165,44 @@ struct rds_info_tcp_socket { · 1 unmodified line | ||
| 150 | 165 | __be16 local_port; |
| 151 | 166 | __be32 peer_addr; |
| 152 | 167 | __be16 peer_port; |
| 153 | − uint64_t hdr_rem; | |
| 154 | − uint64_t data_rem; | |
| 155 | − uint32_t last_sent_nxt; | |
| 156 | − uint32_t last_expected_una; | |
| 157 | − uint32_t last_seen_una; | |
| 168 | + __u64 hdr_rem; | |
| 169 | + __u64 data_rem; | |
| 170 | + __u32 last_sent_nxt; | |
| 171 | + __u32 last_expected_una; | |
| 172 | + __u32 last_seen_una; | |
| 158 | 173 | } __attribute__((packed)); |
| 159 | 174 | |
| 160 | 175 | #define RDS_IB_GID_LEN 16 |
| 161 | 176 | struct rds_info_rdma_connection { |
| 162 | 177 | __be32 src_addr; |
| 163 | 178 | __be32 dst_addr; |
| 164 | − uint8_t src_gid[RDS_IB_GID_LEN]; | |
| 165 | − uint8_t dst_gid[RDS_IB_GID_LEN]; | |
| 166 | − | |
| 167 | − uint32_t max_send_wr; | |
| 168 | − uint32_t max_recv_wr; | |
| 169 | − uint32_t max_send_sge; | |
| 170 | − uint32_t rdma_mr_max; | |
| 171 | − uint32_t rdma_mr_size; | |
| 179 | + __u8 src_gid[RDS_IB_GID_LEN]; | |
| 180 | + __u8 dst_gid[RDS_IB_GID_LEN]; | |
| 181 | + | |
| 182 | + __u32 max_send_wr; | |
| 183 | + __u32 max_recv_wr; | |
| 184 | + __u32 max_send_sge; | |
| 185 | + __u32 rdma_mr_max; | |
| 186 | + __u32 rdma_mr_size; | |
| 187 | +}; | |
| 188 | + | |
| 189 | +/* RDS message Receive Path Latency points */ | |
| 190 | +enum 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 | + | |
| 197 | +struct rds_rx_trace_so { | |
| 198 | + __u8 rx_traces; | |
| 199 | + __u8 rx_trace_pos[RDS_MSG_RX_DGRAM_TRACE_MAX]; | |
| 200 | +}; | |
| 201 | + | |
| 202 | +struct 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 | 243 | * (so that the application does not have to worry about |
| 210 | 244 | * alignment). |
| 211 | 245 | */ |
| 212 | −typedef uint64_t rds_rdma_cookie_t; | |
| 246 | +typedef __u64 rds_rdma_cookie_t; | |
| 213 | 247 | |
| 214 | 248 | struct rds_iovec { |
| 215 | − uint64_t addr; | |
| 216 | − uint64_t bytes; | |
| 249 | + __u64 addr; | |
| 250 | + __u64 bytes; | |
| 217 | 251 | }; |
| 218 | 252 | |
| 219 | 253 | struct rds_get_mr_args { |
| 220 | 254 | struct rds_iovec vec; |
| 221 | − uint64_t cookie_addr; | |
| 222 | − uint64_t flags; | |
| 255 | + __u64 cookie_addr; | |
| 256 | + __u64 flags; | |
| 223 | 257 | }; |
| 224 | 258 | |
| 225 | 259 | struct rds_get_mr_for_dest_args { |
| 226 | − struct sockaddr_storage dest_addr; | |
| 260 | + struct __kernel_sockaddr_storage dest_addr; | |
| 227 | 261 | struct rds_iovec vec; |
| 228 | − uint64_t cookie_addr; | |
| 229 | − uint64_t flags; | |
| 262 | + __u64 cookie_addr; | |
| 263 | + __u64 flags; | |
| 230 | 264 | }; |
| 231 | 265 | |
| 232 | 266 | struct rds_free_mr_args { |
| 233 | 267 | rds_rdma_cookie_t cookie; |
| 234 | − uint64_t flags; | |
| 268 | + __u64 flags; | |
| 235 | 269 | }; |
| 236 | 270 | |
| 237 | 271 | struct rds_rdma_args { |
| 238 | 272 | rds_rdma_cookie_t cookie; |
| 239 | 273 | struct rds_iovec remote_vec; |
| 240 | − uint64_t local_vec_addr; | |
| 241 | − uint64_t nr_local; | |
| 242 | − uint64_t flags; | |
| 243 | − uint64_t user_token; | |
| 274 | + __u64 local_vec_addr; | |
| 275 | + __u64 nr_local; | |
| 276 | + __u64 flags; | |
| 277 | + __u64 user_token; | |
| 244 | 278 | }; |
| 245 | 279 | |
| 246 | 280 | struct rds_atomic_args { |
| 247 | 281 | rds_rdma_cookie_t cookie; |
| 248 | − uint64_t local_addr; | |
| 249 | − uint64_t remote_addr; | |
| 282 | + __u64 local_addr; | |
| 283 | + __u64 remote_addr; | |
| 250 | 284 | union { |
| 251 | 285 | struct { |
| 252 | − uint64_t compare; | |
| 253 | − uint64_t swap; | |
| 286 | + __u64 compare; | |
| 287 | + __u64 swap; | |
| 254 | 288 | } cswp; |
| 255 | 289 | struct { |
| 256 | − uint64_t add; | |
| 290 | + __u64 add; | |
| 257 | 291 | } fadd; |
| 258 | 292 | struct { |
| 259 | − uint64_t compare; | |
| 260 | − uint64_t swap; | |
| 261 | − uint64_t compare_mask; | |
| 262 | − uint64_t swap_mask; | |
| 293 | + __u64 compare; | |
| 294 | + __u64 swap; | |
| 295 | + __u64 compare_mask; | |
| 296 | + __u64 swap_mask; | |
| 263 | 297 | } m_cswp; |
| 264 | 298 | struct { |
| 265 | − uint64_t add; | |
| 266 | − uint64_t nocarry_mask; | |
| 299 | + __u64 add; | |
| 300 | + __u64 nocarry_mask; | |
| 267 | 301 | } m_fadd; |
| 268 | 302 | }; |
| 269 | − uint64_t flags; | |
| 270 | − uint64_t user_token; | |
| 303 | + __u64 flags; | |
| 304 | + __u64 user_token; | |
| 271 | 305 | }; |
| 272 | 306 | |
| 273 | 307 | struct rds_rdma_notify { |
| 274 | − uint64_t user_token; | |
| 275 | − int32_t status; | |
| 308 | + __u64 user_token; | |
| 309 | + __s32 status; | |
| 276 | 310 | }; |
| 277 | 311 | |
| 278 | 312 | #define RDS_RDMA_SUCCESS 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 | + */ | |
| 26 | +struct 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 | |
| @@ -350,6 +350,7 @@ struct rtnexthop { · 349 unmodified lines | ||
| 350 | 350 | #define RTNH_F_ONLINK 4 /* Gateway is forced on link */ |
| 351 | 351 | #define RTNH_F_OFFLOAD 8 /* offloaded route */ |
| 352 | 352 | #define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */ |
| 353 | +#define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */ | |
| 353 | 354 | |
| 354 | 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 | 658 | #define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE |
| 658 | 659 | RTNLGRP_NSID, |
| 659 | 660 | #define RTNLGRP_NSID RTNLGRP_NSID |
| 661 | + RTNLGRP_MPLS_NETCONF, | |
| 662 | +#define RTNLGRP_MPLS_NETCONF RTNLGRP_MPLS_NETCONF | |
| 660 | 663 | __RTNLGRP_MAX |
| 661 | 664 | }; |
| 662 | 665 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) |
| @@ -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 | + | |
| 6 | +struct 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 | + */ | |
| 56 | +struct 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 */ | |
| @@ -115,6 +115,10 @@ typedef __s32 sctp_assoc_t; · 114 unmodified lines | ||
| 115 | 115 | #define SCTP_PR_SUPPORTED 113 |
| 116 | 116 | #define SCTP_DEFAULT_PRINFO 114 |
| 117 | 117 | #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 | 123 | /* PR-SCTP policies */ |
| 120 | 124 | #define SCTP_PR_SCTP_NONE 0x0000 |
| @@ -138,6 +142,15 @@ typedef __s32 sctp_assoc_t; · 17 unmodified lines | ||
| 138 | 142 | #define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX) |
| 139 | 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 | 154 | /* These are bit fields for msghdr->msg_flags. See section 5.1. */ |
| 142 | 155 | /* On user space Linux, these live in <bits/socket.h> as an enum. */ |
| 143 | 156 | enum sctp_msg_flags { |
| @@ -477,6 +490,18 @@ struct sctp_sender_dry_event { · 333 unmodified lines | ||
| 477 | 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 | |
| 497 | +struct 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 | 506 | * Described in Section 7.3 |
| 482 | 507 | * Ancillary Data and Notification Interest Options |
| @@ -492,6 +517,7 @@ struct sctp_event_subscribe { · 9 unmodified lines | ||
| 492 | 517 | __u8 sctp_adaptation_layer_event; |
| 493 | 518 | __u8 sctp_authentication_event; |
| 494 | 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 | 542 | struct sctp_pdapi_event sn_pdapi_event; |
| 517 | 543 | struct sctp_authkey_event sn_authkey_event; |
| 518 | 544 | struct sctp_sender_dry_event sn_sender_dry_event; |
| 545 | + struct sctp_stream_reset_event sn_strreset_event; | |
| 519 | 546 | }; |
| 520 | 547 | |
| 521 | 548 | /* Section 5.3.1 |
| @@ -543,6 +570,8 @@ enum sctp_sn_type { · 21 unmodified lines | ||
| 543 | 570 | #define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT |
| 544 | 571 | SCTP_SENDER_DRY_EVENT, |
| 545 | 572 | #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 | 577 | /* Notification error codes used to fill up the error fields in some |
| @@ -1008,4 +1037,17 @@ struct sctp_info { · 459 unmodified lines | ||
| 1008 | 1037 | __u32 __reserved3; |
| 1009 | 1038 | }; |
| 1010 | 1039 | |
| 1040 | +struct 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 | + | |
| 1047 | +struct sctp_add_streams { | |
| 1048 | + sctp_assoc_t sas_assoc_id; | |
| 1049 | + uint16_t sas_instrms; | |
| 1050 | + uint16_t sas_outstrms; | |
| 1051 | +}; | |
| 1052 | + | |
| 1011 | 1053 | #endif /* _UAPI_SCTP_H */ |
| @@ -0,0 +1,119 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright © 2016 Intel Corporation | |
| 3 | + * | |
| 4 | + * Authors: | |
| 5 | + * Rafael Antognolli <rafael.antognolli@intel.com> | |
| 6 | + * Scott Bauer <scott.bauer@intel.com> | |
| 7 | + * | |
| 8 | + * This program is free software; you can redistribute it and/or modify it | |
| 9 | + * under the terms and conditions of the GNU General Public License, | |
| 10 | + * version 2, as published by the Free Software Foundation. | |
| 11 | + * | |
| 12 | + * This program is distributed in the hope it will be useful, but WITHOUT | |
| 13 | + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
| 14 | + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
| 15 | + * more details. | |
| 16 | + */ | |
| 17 | + | |
| 18 | +#ifndef _UAPI_SED_OPAL_H | |
| 19 | +#define _UAPI_SED_OPAL_H | |
| 20 | + | |
| 21 | +#include <linux/types.h> | |
| 22 | + | |
| 23 | +#define OPAL_KEY_MAX 256 | |
| 24 | +#define OPAL_MAX_LRS 9 | |
| 25 | + | |
| 26 | +enum opal_mbr { | |
| 27 | + OPAL_MBR_ENABLE = 0x0, | |
| 28 | + OPAL_MBR_DISABLE = 0x01, | |
| 29 | +}; | |
| 30 | + | |
| 31 | +enum opal_user { | |
| 32 | + OPAL_ADMIN1 = 0x0, | |
| 33 | + OPAL_USER1 = 0x01, | |
| 34 | + OPAL_USER2 = 0x02, | |
| 35 | + OPAL_USER3 = 0x03, | |
| 36 | + OPAL_USER4 = 0x04, | |
| 37 | + OPAL_USER5 = 0x05, | |
| 38 | + OPAL_USER6 = 0x06, | |
| 39 | + OPAL_USER7 = 0x07, | |
| 40 | + OPAL_USER8 = 0x08, | |
| 41 | + OPAL_USER9 = 0x09, | |
| 42 | +}; | |
| 43 | + | |
| 44 | +enum opal_lock_state { | |
| 45 | + OPAL_RO = 0x01, /* 0001 */ | |
| 46 | + OPAL_RW = 0x02, /* 0010 */ | |
| 47 | + OPAL_LK = 0x04, /* 0100 */ | |
| 48 | +}; | |
| 49 | + | |
| 50 | +struct opal_key { | |
| 51 | + __u8 lr; | |
| 52 | + __u8 key_len; | |
| 53 | + __u8 __align[6]; | |
| 54 | + __u8 key[OPAL_KEY_MAX]; | |
| 55 | +}; | |
| 56 | + | |
| 57 | +struct opal_lr_act { | |
| 58 | + struct opal_key key; | |
| 59 | + __u32 sum; | |
| 60 | + __u8 num_lrs; | |
| 61 | + __u8 lr[OPAL_MAX_LRS]; | |
| 62 | + __u8 align[2]; /* Align to 8 byte boundary */ | |
| 63 | +}; | |
| 64 | + | |
| 65 | +struct opal_session_info { | |
| 66 | + __u32 sum; | |
| 67 | + __u32 who; | |
| 68 | + struct opal_key opal_key; | |
| 69 | +}; | |
| 70 | + | |
| 71 | +struct opal_user_lr_setup { | |
| 72 | + __u64 range_start; | |
| 73 | + __u64 range_length; | |
| 74 | + __u32 RLE; /* Read Lock enabled */ | |
| 75 | + __u32 WLE; /* Write Lock Enabled */ | |
| 76 | + struct opal_session_info session; | |
| 77 | +}; | |
| 78 | + | |
| 79 | +struct opal_lock_unlock { | |
| 80 | + struct opal_session_info session; | |
| 81 | + __u32 l_state; | |
| 82 | + __u8 __align[4]; | |
| 83 | +}; | |
| 84 | + | |
| 85 | +struct opal_new_pw { | |
| 86 | + struct opal_session_info session; | |
| 87 | + | |
| 88 | + /* When we're not operating in sum, and we first set | |
| 89 | + * passwords we need to set them via ADMIN authority. | |
| 90 | + * After passwords are changed, we can set them via, | |
| 91 | + * User authorities. | |
| 92 | + * Because of this restriction we need to know about | |
| 93 | + * Two different users. One in 'session' which we will use | |
| 94 | + * to start the session and new_userr_pw as the user we're | |
| 95 | + * chaning the pw for. | |
| 96 | + */ | |
| 97 | + struct opal_session_info new_user_pw; | |
| 98 | +}; | |
| 99 | + | |
| 100 | +struct opal_mbr_data { | |
| 101 | + struct opal_key key; | |
| 102 | + __u8 enable_disable; | |
| 103 | + __u8 __align[7]; | |
| 104 | +}; | |
| 105 | + | |
| 106 | +#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock) | |
| 107 | +#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock) | |
| 108 | +#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key) | |
| 109 | +#define IOC_OPAL_ACTIVATE_LSP _IOW('p', 223, struct opal_lr_act) | |
| 110 | +#define IOC_OPAL_SET_PW _IOW('p', 224, struct opal_new_pw) | |
| 111 | +#define IOC_OPAL_ACTIVATE_USR _IOW('p', 225, struct opal_session_info) | |
| 112 | +#define IOC_OPAL_REVERT_TPR _IOW('p', 226, struct opal_key) | |
| 113 | +#define IOC_OPAL_LR_SETUP _IOW('p', 227, struct opal_user_lr_setup) | |
| 114 | +#define IOC_OPAL_ADD_USR_TO_LR _IOW('p', 228, struct opal_lock_unlock) | |
| 115 | +#define IOC_OPAL_ENABLE_DISABLE_MBR _IOW('p', 229, struct opal_mbr_data) | |
| 116 | +#define IOC_OPAL_ERASE_LR _IOW('p', 230, struct opal_session_info) | |
| 117 | +#define IOC_OPAL_SECURE_ERASE_LR _IOW('p', 231, struct opal_session_info) | |
| 118 | + | |
| 119 | +#endif /* _UAPI_SED_OPAL_H */ | |
| @@ -14,6 +14,9 @@ · 13 unmodified lines | ||
| 14 | 14 | #ifndef _UAPI_LINUX_SEG6_H |
| 15 | 15 | #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 | 21 | * SRH |
| 19 | 22 | */ |
| @@ -1,6 +1,7 @@ | ||
| 1 | 1 | #ifndef _UAPI_LINUX_SEG6_HMAC_H |
| 2 | 2 | #define _UAPI_LINUX_SEG6_HMAC_H |
| 3 | 3 | |
| 4 | +#include <linux/types.h> | |
| 4 | 5 | #include <linux/seg6.h> |
| 5 | 6 | |
| 6 | 7 | #define SEG6_HMAC_SECRET_LEN 64 |
| @@ -14,6 +14,8 @@ · 13 unmodified lines | ||
| 14 | 14 | #ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H |
| 15 | 15 | #define _UAPI_LINUX_SEG6_IPTUNNEL_H |
| 16 | 16 | |
| 17 | +#include <linux/seg6.h> /* For struct ipv6_sr_hdr. */ | |
| 18 | + | |
| 17 | 19 | enum { |
| 18 | 20 | SEG6_IPTUNNEL_UNSPEC, |
| 19 | 21 | SEG6_IPTUNNEL_SRH, |
| @@ -33,6 +35,8 @@ enum { · 13 unmodified lines | ||
| 33 | 35 | SEG6_IPTUN_MODE_ENCAP, |
| 34 | 36 | }; |
| 35 | 37 | |
| 38 | +#ifdef __KERNEL__ | |
| 39 | + | |
| 36 | 40 | static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) |
| 37 | 41 | { |
| 38 | 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 | 48 | #endif |
| 49 | + | |
| 50 | +#endif | |
| @@ -56,7 +56,8 @@ · 55 unmodified lines | ||
| 56 | 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ |
| 57 | 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ |
| 58 | 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 | 63 | * ARM specific type numbers. These are not currently guaranteed |
| @@ -327,6 +327,14 @@ · 326 unmodified lines | ||
| 327 | 327 | #define SERIAL_RSA_BAUD_BASE (921600) |
| 328 | 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 | 339 | * Extra serial register definitions for the internal UARTs |
| 332 | 340 | * in TI OMAP processors. |
| @@ -358,24 +366,6 @@ · 25 unmodified lines | ||
| 358 | 366 | #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ |
| 359 | 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 | 370 | * These are definitions for the Altera ALTR_16550_F32/F64/F128 |
| 381 | 371 | * Normalized from 0x100 to 0x40 because of shift by 2 (32 bit regs). |
| @@ -17,9 +17,10 @@ · 16 unmodified lines | ||
| 17 | 17 | /* |
| 18 | 18 | * bit masks for use in "interrupt" flags (3rd argument) |
| 19 | 19 | */ |
| 20 | −#define SERIO_TIMEOUT 1 | |
| 21 | −#define SERIO_PARITY 2 | |
| 22 | −#define SERIO_FRAME 4 | |
| 20 | +#define SERIO_TIMEOUT BIT(0) | |
| 21 | +#define SERIO_PARITY BIT(1) | |
| 22 | +#define SERIO_FRAME BIT(2) | |
| 23 | +#define SERIO_OOB_DATA BIT(3) | |
| 23 | 24 | |
| 24 | 25 | /* |
| 25 | 26 | * Serio types |
| @@ -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 */ | |
| 15 | +enum { | |
| 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 | + | |
| 25 | +enum { /* 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 */ | |
| @@ -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 */ | |
| 9 | +struct 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 | + */ | |
| 19 | +struct 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 | + | |
| 32 | +enum { | |
| 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 | + | |
| 44 | +struct smc_diag_cursor { | |
| 45 | + __u16 reserved; | |
| 46 | + __u16 wrap; | |
| 47 | + __u32 count; | |
| 48 | +}; | |
| 49 | + | |
| 50 | +struct 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 | + | |
| 73 | +struct 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 | + | |
| 81 | +struct smc_diag_lgrinfo { | |
| 82 | + struct smc_diag_linkinfo lnk[1]; | |
| 83 | + __u8 role; | |
| 84 | +}; | |
| 85 | +#endif /* _UAPI_SMC_DIAG_H_ */ | |
| @@ -240,6 +240,7 @@ enum · 239 unmodified lines | ||
| 240 | 240 | LINUX_MIB_SACKMERGED, |
| 241 | 241 | LINUX_MIB_SACKSHIFTFALLBACK, |
| 242 | 242 | LINUX_MIB_TCPBACKLOGDROP, |
| 243 | + LINUX_MIB_PFMEMALLOCDROP, | |
| 243 | 244 | LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */ |
| 244 | 245 | LINUX_MIB_TCPDEFERACCEPTDROP, |
| 245 | 246 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ |
| @@ -1,6 +1,7 @@ | ||
| 1 | 1 | #ifndef _UAPI_LINUX_STAT_H |
| 2 | 2 | #define _UAPI_LINUX_STAT_H |
| 3 | 3 | |
| 4 | +#include <linux/types.h> | |
| 4 | 5 | |
| 5 | 6 | #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) |
| 6 | 7 | |
| @@ -41,5 +42,135 @@ · 34 unmodified lines | ||
| 41 | 42 | |
| 42 | 43 | #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 | + */ | |
| 59 | +struct 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 | + */ | |
| 102 | +struct 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 | 176 | #endif /* _UAPI_LINUX_STAT_H */ |
| @@ -105,26 +105,26 @@ struct tcmu_cmd_entry { · 104 unmodified lines | ||
| 105 | 105 | |
| 106 | 106 | union { |
| 107 | 107 | struct { |
| 108 | − uint32_t iov_cnt; | |
| 109 | − uint32_t iov_bidi_cnt; | |
| 110 | − uint32_t iov_dif_cnt; | |
| 111 | − uint64_t cdb_off; | |
| 112 | − uint64_t __pad1; | |
| 113 | − uint64_t __pad2; | |
| 108 | + __u32 iov_cnt; | |
| 109 | + __u32 iov_bidi_cnt; | |
| 110 | + __u32 iov_dif_cnt; | |
| 111 | + __u64 cdb_off; | |
| 112 | + __u64 __pad1; | |
| 113 | + __u64 __pad2; | |
| 114 | 114 | struct iovec iov[0]; |
| 115 | 115 | } req; |
| 116 | 116 | struct { |
| 117 | − uint8_t scsi_status; | |
| 118 | − uint8_t __pad1; | |
| 119 | − uint16_t __pad2; | |
| 120 | − uint32_t __pad3; | |
| 117 | + __u8 scsi_status; | |
| 118 | + __u8 __pad1; | |
| 119 | + __u16 __pad2; | |
| 120 | + __u32 __pad3; | |
| 121 | 121 | char sense_buffer[TCMU_SENSE_BUFFERSIZE]; |
| 122 | 122 | } rsp; |
| 123 | 123 | }; |
| 124 | 124 | |
| 125 | 125 | } __packed; |
| 126 | 126 | |
| 127 | −#define TCMU_OP_ALIGN_SIZE sizeof(uint64_t) | |
| 127 | +#define TCMU_OP_ALIGN_SIZE sizeof(__u64) | |
| 128 | 128 | |
| 129 | 129 | enum tcmu_genl_cmd { |
| 130 | 130 | TCMU_CMD_UNSPEC, |
| @@ -4,6 +4,7 @@ header-y += tc_defact.h · 3 unmodified lines | ||
| 4 | 4 | header-y += tc_gact.h |
| 5 | 5 | header-y += tc_ipt.h |
| 6 | 6 | header-y += tc_mirred.h |
| 7 | +header-y += tc_sample.h | |
| 7 | 8 | header-y += tc_nat.h |
| 8 | 9 | header-y += tc_pedit.h |
| 9 | 10 | header-y += tc_skbedit.h |
| @@ -21,7 +21,8 @@ enum { · 20 unmodified lines | ||
| 21 | 21 | TCA_CSUM_UPDATE_FLAG_IGMP = 4, |
| 22 | 22 | TCA_CSUM_UPDATE_FLAG_TCP = 8, |
| 23 | 23 | TCA_CSUM_UPDATE_FLAG_UDP = 16, |
| 24 | − TCA_CSUM_UPDATE_FLAG_UDPLITE = 32 | |
| 24 | + TCA_CSUM_UPDATE_FLAG_UDPLITE = 32, | |
| 25 | + TCA_CSUM_UPDATE_FLAG_SCTP = 64, | |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 | struct tc_csum { |
| @@ -3,6 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | |
| 4 | 4 | #include <linux/types.h> |
| 5 | 5 | #include <linux/pkt_cls.h> |
| 6 | +#include <linux/ife.h> | |
| 6 | 7 | |
| 7 | 8 | #define TCA_ACT_IFE 25 |
| 8 | 9 | /* Flag bits for now just encoding/decoding; mutually exclusive */ |
| @@ -28,13 +29,4 @@ enum { · 19 unmodified lines | ||
| 28 | 29 | }; |
| 29 | 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 | 32 | #endif |
| @@ -11,10 +11,41 @@ enum { · 10 unmodified lines | ||
| 11 | 11 | TCA_PEDIT_TM, |
| 12 | 12 | TCA_PEDIT_PARMS, |
| 13 | 13 | TCA_PEDIT_PAD, |
| 14 | + TCA_PEDIT_PARMS_EX, | |
| 15 | + TCA_PEDIT_KEYS_EX, | |
| 16 | + TCA_PEDIT_KEY_EX, | |
| 14 | 17 | __TCA_PEDIT_MAX |
| 15 | 18 | }; |
| 16 | 19 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) |
| 17 | 20 | |
| 21 | +enum { | |
| 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 | + */ | |
| 31 | +enum 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 | + | |
| 42 | +enum 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 | + | |
| 18 | 49 | struct tc_pedit_key { |
| 19 | 50 | __u32 mask; /* AND */ |
| 20 | 51 | __u32 val; /*XOR */ |
| @@ -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 | + | |
| 10 | +struct tc_sample { | |
| 11 | + tc_gen; | |
| 12 | +}; | |
| 13 | + | |
| 14 | +enum { | |
| 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 | |
| @@ -116,6 +116,7 @@ enum { · 115 unmodified lines | ||
| 116 | 116 | #define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */ |
| 117 | 117 | #define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */ |
| 118 | 118 | #define TCP_REPAIR_WINDOW 29 /* Get/set window parameters */ |
| 119 | +#define TCP_FASTOPEN_CONNECT 30 /* Attempt FastOpen with connect */ | |
| 119 | 120 | |
| 120 | 121 | struct tcp_repair_opt { |
| 121 | 122 | __u32 opt_code; |
| @@ -226,6 +227,8 @@ enum { · 104 unmodified lines | ||
| 226 | 227 | TCP_NLA_BUSY, /* Time (usec) busy sending data */ |
| 227 | 228 | TCP_NLA_RWND_LIMITED, /* Time (usec) limited by receive window */ |
| 228 | 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 | 234 | /* for TCP_MD5SIG socket option */ |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | /* |
| 2 | 2 | * include/uapi/linux/tipc.h: Header for TIPC socket interface |
| 3 | 3 | * |
| 4 | − * Copyright (c) 2003-2006, Ericsson AB | |
| 4 | + * Copyright (c) 2003-2006, 2015-2016 Ericsson AB | |
| 5 | 5 | * Copyright (c) 2005, 2010-2011, Wind River Systems |
| 6 | 6 | * All rights reserved. |
| 7 | 7 | * |
| @@ -220,7 +220,7 @@ struct sockaddr_tipc { · 212 unmodified lines | ||
| 220 | 220 | #define TIPC_DESTNAME 3 /* destination name */ |
| 221 | 221 | |
| 222 | 222 | /* |
| 223 | − * TIPC-specific socket option values | |
| 223 | + * TIPC-specific socket option names | |
| 224 | 224 | */ |
| 225 | 225 | |
| 226 | 226 | #define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */ |
| @@ -229,6 +229,8 @@ struct sockaddr_tipc { · 2 unmodified lines | ||
| 229 | 229 | #define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */ |
| 230 | 230 | #define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */ |
| 231 | 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 | 236 | * Maximum sizes of TIPC bearer-related names (including terminating NULL) |
| @@ -10,4 +10,6 @@ struct sockaddr_un { · 9 unmodified lines | ||
| 10 | 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 | 15 | #endif /* _LINUX_UN_H */ |
| @@ -11,13 +11,20 @@ · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | #include <linux/types.h> |
| 13 | 13 | |
| 14 | −#define UFFD_API ((__u64)0xAA) | |
| 15 | 14 | /* |
| 16 | − * After implementing the respective features it will become: | |
| 17 | − * #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \ | |
| 18 | − * UFFD_FEATURE_EVENT_FORK) | |
| 15 | + * If the UFFDIO_API is upgraded someday, the UFFDIO_UNREGISTER and | |
| 16 | + * UFFDIO_WAKE ioctls should be defined as _IOW and not as _IOR. In | |
| 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_EXIT | \ | |
| 22 | + UFFD_FEATURE_EVENT_FORK | \ | |
| 23 | + UFFD_FEATURE_EVENT_REMAP | \ | |
| 24 | + UFFD_FEATURE_EVENT_REMOVE | \ | |
| 25 | + UFFD_FEATURE_EVENT_UNMAP | \ | |
| 26 | + UFFD_FEATURE_MISSING_HUGETLBFS | \ | |
| 27 | + UFFD_FEATURE_MISSING_SHMEM) | |
| 21 | 28 | #define UFFD_API_IOCTLS \ |
| 22 | 29 | ((__u64)1 << _UFFDIO_REGISTER | \ |
| 23 | 30 | (__u64)1 << _UFFDIO_UNREGISTER | \ |
| @@ -26,6 +33,9 @@ · 2 unmodified lines | ||
| 26 | 33 | ((__u64)1 << _UFFDIO_WAKE | \ |
| 27 | 34 | (__u64)1 << _UFFDIO_COPY | \ |
| 28 | 35 | (__u64)1 << _UFFDIO_ZEROPAGE) |
| 36 | +#define UFFD_API_RANGE_IOCTLS_BASIC \ | |
| 37 | + ((__u64)1 << _UFFDIO_WAKE | \ | |
| 38 | + (__u64)1 << _UFFDIO_COPY) | |
| 29 | 39 | |
| 30 | 40 | /* |
| 31 | 41 | * Valid ioctl command number range with this API is from 0x00 to |
| @@ -71,6 +81,21 @@ struct uffd_msg { · 39 unmodified lines | ||
| 71 | 81 | __u64 address; |
| 72 | 82 | } pagefault; |
| 73 | 83 | |
| 84 | + struct { | |
| 85 | + __u32 ufd; | |
| 86 | + } fork; | |
| 87 | + | |
| 88 | + struct { | |
| 89 | + __u64 from; | |
| 90 | + __u64 to; | |
| 91 | + __u64 len; | |
| 92 | + } remap; | |
| 93 | + | |
| 94 | + struct { | |
| 95 | + __u64 start; | |
| 96 | + __u64 end; | |
| 97 | + } remove; | |
| 98 | + | |
| 74 | 99 | struct { |
| 75 | 100 | /* unused reserved fields */ |
| 76 | 101 | __u64 reserved1; |
| @@ -84,9 +109,11 @@ struct uffd_msg { · 7 unmodified lines | ||
| 84 | 109 | * Start at 0x12 and not at 0 to be more strict against bugs. |
| 85 | 110 | */ |
| 86 | 111 | #define UFFD_EVENT_PAGEFAULT 0x12 |
| 87 | −#if 0 /* not available yet */ | |
| 88 | 112 | #define UFFD_EVENT_FORK 0x13 |
| 89 | −#endif | |
| 113 | +#define UFFD_EVENT_REMAP 0x14 | |
| 114 | +#define UFFD_EVENT_REMOVE 0x15 | |
| 115 | +#define UFFD_EVENT_UNMAP 0x16 | |
| 116 | +#define UFFD_EVENT_EXIT 0x17 | |
| 90 | 117 | |
| 91 | 118 | /* flags for UFFD_EVENT_PAGEFAULT */ |
| 92 | 119 | #define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */ |
| @@ -104,11 +131,39 @@ struct uffdio_api { · 11 unmodified lines | ||
| 104 | 131 | * Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE |
| 105 | 132 | * are to be considered implicitly always enabled in all kernels as |
| 106 | 133 | * long as the uffdio_api.api requested matches UFFD_API. |
| 134 | + * | |
| 135 | + * UFFD_FEATURE_MISSING_HUGETLBFS means an UFFDIO_REGISTER | |
| 136 | + * with UFFDIO_REGISTER_MODE_MISSING mode will succeed on | |
| 137 | + * hugetlbfs virtual memory ranges. Adding or not adding | |
| 138 | + * UFFD_FEATURE_MISSING_HUGETLBFS to uffdio_api.features has | |
| 139 | + * no real functional effect after UFFDIO_API returns, but | |
| 140 | + * it's only useful for an initial feature set probe at | |
| 141 | + * UFFDIO_API time. There are two ways to use it: | |
| 142 | + * | |
| 143 | + * 1) by adding UFFD_FEATURE_MISSING_HUGETLBFS to the | |
| 144 | + * uffdio_api.features before calling UFFDIO_API, an error | |
| 145 | + * will be returned by UFFDIO_API on a kernel without | |
| 146 | + * hugetlbfs missing support | |
| 147 | + * | |
| 148 | + * 2) the UFFD_FEATURE_MISSING_HUGETLBFS can not be added in | |
| 149 | + * uffdio_api.features and instead it will be set by the | |
| 150 | + * kernel in the uffdio_api.features if the kernel supports | |
| 151 | + * it, so userland can later check if the feature flag is | |
| 152 | + * present in uffdio_api.features after UFFDIO_API | |
| 153 | + * succeeded. | |
| 154 | + * | |
| 155 | + * UFFD_FEATURE_MISSING_SHMEM works the same as | |
| 156 | + * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem | |
| 157 | + * (i.e. tmpfs and other shmem based APIs). | |
| 107 | 158 | */ |
| 108 | −#if 0 /* not available yet */ | |
| 109 | 159 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) |
| 110 | 160 | #define UFFD_FEATURE_EVENT_FORK (1<<1) |
| 111 | −#endif | |
| 161 | +#define UFFD_FEATURE_EVENT_REMAP (1<<2) | |
| 162 | +#define UFFD_FEATURE_EVENT_REMOVE (1<<3) | |
| 163 | +#define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4) | |
| 164 | +#define UFFD_FEATURE_MISSING_SHMEM (1<<5) | |
| 165 | +#define UFFD_FEATURE_EVENT_UNMAP (1<<6) | |
| 166 | +#define UFFD_FEATURE_EVENT_EXIT (1<<7) | |
| 112 | 167 | __u64 features; |
| 113 | 168 | |
| 114 | 169 | __u64 ioctls; |
| @@ -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 | |
| @@ -79,7 +79,7 @@ · 78 unmodified lines | ||
| 79 | 79 | * configuration space */ |
| 80 | 80 | #define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20) |
| 81 | 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 | 84 | /* Virtio ABI version, this must match exactly */ |
| 85 | 85 | #define VIRTIO_PCI_ABI_VERSION 0 |