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 | header-y += auxvec.h | 64 | header-y += auxvec.h |
| 65 | header-y += ax25.h | 65 | header-y += ax25.h |
| 66 | header-y += b1lli.h | 66 | header-y += b1lli.h |
| 67 | header-y += batman_adv.h | ||
| 67 | header-y += baycom.h | 68 | header-y += baycom.h |
| 68 | header-y += bcm933xx_hcs.h | 69 | header-y += bcm933xx_hcs.h |
| 69 | header-y += bfs_fs.h | 70 | header-y += bfs_fs.h |
| @@ -109,6 +110,7 @@ header-y += dlm_netlink.h · 39 unmodified lines | |||
| 109 | header-y += dlm_plock.h | 110 | header-y += dlm_plock.h |
| 110 | header-y += dm-ioctl.h | 111 | header-y += dm-ioctl.h |
| 111 | header-y += dm-log-userspace.h | 112 | header-y += dm-log-userspace.h |
| 113 | header-y += dma-buf.h | ||
| 112 | header-y += dn.h | 114 | header-y += dn.h |
| 113 | header-y += dqblk_xfs.h | 115 | header-y += dqblk_xfs.h |
| 114 | header-y += edd.h | 116 | header-y += edd.h |
| @@ -194,6 +196,7 @@ header-y += if_tun.h · 79 unmodified lines | |||
| 194 | header-y += if_tunnel.h | 196 | header-y += if_tunnel.h |
| 195 | header-y += if_vlan.h | 197 | header-y += if_vlan.h |
| 196 | header-y += if_x25.h | 198 | header-y += if_x25.h |
| 199 | header-y += ife.h | ||
| 197 | header-y += igmp.h | 200 | header-y += igmp.h |
| 198 | header-y += ila.h | 201 | header-y += ila.h |
| 199 | header-y += in6.h | 202 | header-y += in6.h |
| @@ -305,6 +308,7 @@ header-y += netrom.h · 105 unmodified lines | |||
| 305 | header-y += net_namespace.h | 308 | header-y += net_namespace.h |
| 306 | header-y += net_tstamp.h | 309 | header-y += net_tstamp.h |
| 307 | header-y += nfc.h | 310 | header-y += nfc.h |
| 311 | header-y += psample.h | ||
| 308 | header-y += nfs2.h | 312 | header-y += nfs2.h |
| 309 | header-y += nfs3.h | 313 | header-y += nfs3.h |
| 310 | header-y += nfs4.h | 314 | header-y += nfs4.h |
| @@ -379,6 +383,10 @@ header-y += sctp.h · 68 unmodified lines | |||
| 379 | header-y += sdla.h | 383 | header-y += sdla.h |
| 380 | header-y += seccomp.h | 384 | header-y += seccomp.h |
| 381 | header-y += securebits.h | 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 | header-y += selinux_netlink.h | 390 | header-y += selinux_netlink.h |
| 383 | header-y += sem.h | 391 | header-y += sem.h |
| 384 | header-y += serial_core.h | 392 | header-y += serial_core.h |
| @@ -458,6 +466,7 @@ header-y += virtio_console.h · 73 unmodified lines | |||
| 458 | header-y += virtio_gpu.h | 466 | header-y += virtio_gpu.h |
| 459 | header-y += virtio_ids.h | 467 | header-y += virtio_ids.h |
| 460 | header-y += virtio_input.h | 468 | header-y += virtio_input.h |
| 469 | header-y += virtio_mmio.h | ||
| 461 | header-y += virtio_net.h | 470 | header-y += virtio_net.h |
| 462 | header-y += virtio_pci.h | 471 | header-y += virtio_pci.h |
| 463 | header-y += virtio_ring.h | 472 | header-y += virtio_ring.h |
| @@ -33,6 +33,8 @@ enum { · 32 unmodified lines | |||
| 33 | BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE), | 33 | BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE), |
| 34 | BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE), | 34 | BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE), |
| 35 | BINDER_TYPE_FD = B_PACK_CHARS('f', 'd', '*', B_TYPE_LARGE), | 35 | BINDER_TYPE_FD = B_PACK_CHARS('f', 'd', '*', B_TYPE_LARGE), |
| 36 | BINDER_TYPE_FDA = B_PACK_CHARS('f', 'd', 'a', B_TYPE_LARGE), | ||
| 37 | BINDER_TYPE_PTR = B_PACK_CHARS('p', 't', '*', B_TYPE_LARGE), | ||
| 36 | }; | 38 | }; |
| 37 | 39 | ||
| 38 | enum { | 40 | enum { |
| @@ -48,6 +50,14 @@ typedef __u64 binder_size_t; · 9 unmodified lines | |||
| 48 | typedef __u64 binder_uintptr_t; | 50 | typedef __u64 binder_uintptr_t; |
| 49 | #endif | 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 | * This is the flattened representation of a Binder object for transfer | 62 | * This is the flattened representation of a Binder object for transfer |
| 53 | * between processes. The 'offsets' supplied as part of a binder transaction | 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 | * between processes. | 66 | * between processes. |
| 57 | */ | 67 | */ |
| 58 | struct flat_binder_object { | 68 | struct flat_binder_object { |
| 59 | /* 8 bytes for large_flat_header. */ | 69 | struct binder_object_header hdr; |
| 60 | __u32 type; | 70 | __u32 flags; |
| 61 | __u32 flags; | ||
| 62 | 71 | ||
| 63 | /* 8 bytes of data. */ | 72 | /* 8 bytes of data. */ |
| 64 | union { | 73 | union { |
| @@ -70,6 +79,84 @@ struct flat_binder_object { · 5 unmodified lines | |||
| 70 | binder_uintptr_t cookie; | 79 | binder_uintptr_t cookie; |
| 71 | }; | 80 | }; |
| 72 | 81 | ||
| 82 | /** | ||
| 83 | * struct binder_fd_object - describes a filedescriptor to be fixed up. | ||
| 84 | * @hdr: common header structure | ||
| 85 | * @pad_flags: padding to remain compatible with old userspace code | ||
| 86 | * @pad_binder: padding to remain compatible with old userspace code | ||
| 87 | * @fd: file descriptor | ||
| 88 | * @cookie: opaque data, used by user-space | ||
| 89 | */ | ||
| 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 | * On 64-bit platforms where user code may run in 32-bits the driver must | 161 | * On 64-bit platforms where user code may run in 32-bits the driver must |
| 75 | * translate the buffer (and local binder) addresses appropriately. | 162 | * translate the buffer (and local binder) addresses appropriately. |
| @@ -162,6 +249,11 @@ struct binder_transaction_data { · 86 unmodified lines | |||
| 162 | } data; | 249 | } data; |
| 163 | }; | 250 | }; |
| 164 | 251 | ||
| 252 | struct binder_transaction_data_sg { | ||
| 253 | struct binder_transaction_data transaction_data; | ||
| 254 | binder_size_t buffers_size; | ||
| 255 | }; | ||
| 256 | |||
| 165 | struct binder_ptr_cookie { | 257 | struct binder_ptr_cookie { |
| 166 | binder_uintptr_t ptr; | 258 | binder_uintptr_t ptr; |
| 167 | binder_uintptr_t cookie; | 259 | binder_uintptr_t cookie; |
| @@ -346,6 +438,12 @@ enum binder_driver_command_protocol { · 178 unmodified lines | |||
| 346 | /* | 438 | /* |
| 347 | * void *: cookie | 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 | #endif /* _UAPI_LINUX_BINDER_H */ | 449 | #endif /* _UAPI_LINUX_BINDER_H */ |
| @@ -111,6 +111,7 @@ · 110 unmodified lines | |||
| 111 | #define AUDIT_PROCTITLE 1327 /* Proctitle emit event */ | 111 | #define AUDIT_PROCTITLE 1327 /* Proctitle emit event */ |
| 112 | #define AUDIT_FEATURE_CHANGE 1328 /* audit log listing feature changes */ | 112 | #define AUDIT_FEATURE_CHANGE 1328 /* audit log listing feature changes */ |
| 113 | #define AUDIT_REPLACE 1329 /* Replace auditd if this packet unanswerd */ | 113 | #define AUDIT_REPLACE 1329 /* Replace auditd if this packet unanswerd */ |
| 114 | #define AUDIT_KERN_MODULE 1330 /* Kernel Module events */ | ||
| 114 | 115 | ||
| 115 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ | 116 | #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ |
| 116 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ | 117 | #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ |
| @@ -326,17 +327,21 @@ enum { · 209 unmodified lines | |||
| 326 | #define AUDIT_STATUS_RATE_LIMIT 0x0008 | 327 | #define AUDIT_STATUS_RATE_LIMIT 0x0008 |
| 327 | #define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 | 328 | #define AUDIT_STATUS_BACKLOG_LIMIT 0x0010 |
| 328 | #define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020 | 329 | #define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020 |
| 330 | #define AUDIT_STATUS_LOST 0x0040 | ||
| 329 | 331 | ||
| 330 | #define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001 | 332 | #define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001 |
| 331 | #define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002 | 333 | #define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002 |
| 332 | #define AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH 0x00000004 | 334 | #define AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH 0x00000004 |
| 333 | #define AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND 0x00000008 | 335 | #define AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND 0x00000008 |
| 334 | #define AUDIT_FEATURE_BITMAP_SESSIONID_FILTER 0x00000010 | 336 | #define AUDIT_FEATURE_BITMAP_SESSIONID_FILTER 0x00000010 |
| 337 | #define AUDIT_FEATURE_BITMAP_LOST_RESET 0x00000020 | ||
| 338 | |||
| 335 | #define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | \ | 339 | #define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | \ |
| 336 | AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME | \ | 340 | AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME | \ |
| 337 | AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH | \ | 341 | AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH | \ |
| 338 | AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND | \ | 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 | /* deprecated: AUDIT_VERSION_* */ | 346 | /* deprecated: AUDIT_VERSION_* */ |
| 342 | #define AUDIT_VERSION_LATEST AUDIT_FEATURE_BITMAP_ALL | 347 | #define AUDIT_VERSION_LATEST AUDIT_FEATURE_BITMAP_ALL |
| @@ -113,17 +113,13 @@ struct autofs_dev_ioctl { · 112 unmodified lines | |||
| 113 | 113 | ||
| 114 | static inline void init_autofs_dev_ioctl(struct autofs_dev_ioctl *in) | 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 | in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR; | 117 | in->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR; |
| 118 | in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR; | 118 | in->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR; |
| 119 | in->size = sizeof(struct autofs_dev_ioctl); | 119 | in->size = AUTOFS_DEV_IOCTL_SIZE; |
| 120 | in->ioctlfd = -1; | 120 | in->ioctlfd = -1; |
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | /* | ||
| 124 | * If you change this make sure you make the corresponding change | ||
| 125 | * to autofs-dev-ioctl.c:lookup_ioctl() | ||
| 126 | */ | ||
| 127 | enum { | 123 | enum { |
| 128 | /* Get various version info */ | 124 | /* Get various version info */ |
| 129 | AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71, | 125 | AUTOFS_DEV_IOCTL_VERSION_CMD = 0x71, |
| @@ -160,8 +156,6 @@ enum { · 30 unmodified lines | |||
| 160 | AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD, | 156 | AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD, |
| 161 | }; | 157 | }; |
| 162 | 158 | ||
| 163 | #define AUTOFS_IOCTL 0x93 | ||
| 164 | |||
| 165 | #define AUTOFS_DEV_IOCTL_VERSION \ | 159 | #define AUTOFS_DEV_IOCTL_VERSION \ |
| 166 | _IOWR(AUTOFS_IOCTL, \ | 160 | _IOWR(AUTOFS_IOCTL, \ |
| 167 | AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl) | 161 | AUTOFS_DEV_IOCTL_VERSION_CMD, struct autofs_dev_ioctl) |
| @@ -61,12 +61,23 @@ struct autofs_packet_expire { · 60 unmodified lines | |||
| 61 | char name[NAME_MAX+1]; | 61 | char name[NAME_MAX+1]; |
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| 64 | #define AUTOFS_IOC_READY _IO(0x93, 0x60) | 64 | #define AUTOFS_IOCTL 0x93 |
| 65 | #define AUTOFS_IOC_FAIL _IO(0x93, 0x61) | 65 | |
| 66 | #define AUTOFS_IOC_CATATONIC _IO(0x93, 0x62) | 66 | enum { |
| 67 | #define AUTOFS_IOC_PROTOVER _IOR(0x93, 0x63, int) | 67 | AUTOFS_IOC_READY_CMD = 0x60, |
| 68 | #define AUTOFS_IOC_SETTIMEOUT32 _IOWR(0x93, 0x64, compat_ulong_t) | 68 | AUTOFS_IOC_FAIL_CMD, |
| 69 | #define AUTOFS_IOC_SETTIMEOUT _IOWR(0x93, 0x64, unsigned long) | 69 | AUTOFS_IOC_CATATONIC_CMD, |
| 70 | #define AUTOFS_IOC_EXPIRE _IOR(0x93, 0x65, struct autofs_packet_expire) | 70 | AUTOFS_IOC_PROTOVER_CMD, |
| 71 | AUTOFS_IOC_SETTIMEOUT_CMD, | ||
| 72 | AUTOFS_IOC_EXPIRE_CMD, | ||
| 73 | }; | ||
| 74 | |||
| 75 | #define AUTOFS_IOC_READY _IO(AUTOFS_IOCTL, AUTOFS_IOC_READY_CMD) | ||
| 76 | #define AUTOFS_IOC_FAIL _IO(AUTOFS_IOCTL, AUTOFS_IOC_FAIL_CMD) | ||
| 77 | #define AUTOFS_IOC_CATATONIC _IO(AUTOFS_IOCTL, AUTOFS_IOC_CATATONIC_CMD) | ||
| 78 | #define AUTOFS_IOC_PROTOVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOVER_CMD, int) | ||
| 79 | #define AUTOFS_IOC_SETTIMEOUT32 _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, compat_ulong_t) | ||
| 80 | #define AUTOFS_IOC_SETTIMEOUT _IOWR(AUTOFS_IOCTL, AUTOFS_IOC_SETTIMEOUT_CMD, unsigned long) | ||
| 81 | #define AUTOFS_IOC_EXPIRE _IOR(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_CMD, struct autofs_packet_expire) | ||
| 71 | 82 | ||
| 72 | #endif /* _UAPI_LINUX_AUTO_FS_H */ | 83 | #endif /* _UAPI_LINUX_AUTO_FS_H */ |
| @@ -148,10 +148,16 @@ union autofs_v5_packet_union { · 147 unmodified lines | |||
| 148 | autofs_packet_expire_direct_t expire_direct; | 148 | autofs_packet_expire_direct_t expire_direct; |
| 149 | }; | 149 | }; |
| 150 | 150 | ||
| 151 | #define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93, 0x66, int) | 151 | enum { |
| 152 | #define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI | 152 | AUTOFS_IOC_EXPIRE_MULTI_CMD = 0x66, /* AUTOFS_IOC_EXPIRE_CMD + 1 */ |
| 153 | #define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI | 153 | AUTOFS_IOC_PROTOSUBVER_CMD, |
| 154 | #define AUTOFS_IOC_PROTOSUBVER _IOR(0x93, 0x67, int) | 154 | AUTOFS_IOC_ASKUMOUNT_CMD = 0x70, /* AUTOFS_DEV_IOCTL_VERSION_CMD - 1 */ |
| 155 | #define AUTOFS_IOC_ASKUMOUNT _IOR(0x93, 0x70, int) | 155 | }; |
| 156 | |||
| 157 | #define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int) | ||
| 158 | #define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI | ||
| 159 | #define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI | ||
| 160 | #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int) | ||
| 161 | #define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int) | ||
| 156 | 162 | ||
| 157 | #endif /* _LINUX_AUTO_FS4_H */ | 163 | #endif /* _LINUX_AUTO_FS4_H */ |
| @@ -1,4 +1,4 @@ | |||
| 1 | /* Copyright (C) 2016 B.A.T.M.A.N. contributors: | 1 | /* Copyright (C) 2016-2017 B.A.T.M.A.N. contributors: |
| 2 | * | 2 | * |
| 3 | * Matthias Schiffer | 3 | * Matthias Schiffer |
| 4 | * | 4 | * |
| @@ -63,6 +63,12 @@ struct bpf_insn { · 62 unmodified lines | |||
| 63 | __s32 imm; /* signed immediate constant */ | 63 | __s32 imm; /* signed immediate constant */ |
| 64 | }; | 64 | }; |
| 65 | 65 | ||
| 66 | /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */ | ||
| 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 | /* BPF syscall commands, see bpf(2) man-page for details. */ | 72 | /* BPF syscall commands, see bpf(2) man-page for details. */ |
| 67 | enum bpf_cmd { | 73 | enum bpf_cmd { |
| 68 | BPF_MAP_CREATE, | 74 | BPF_MAP_CREATE, |
| @@ -89,6 +95,7 @@ enum bpf_map_type { · 20 unmodified lines | |||
| 89 | BPF_MAP_TYPE_CGROUP_ARRAY, | 95 | BPF_MAP_TYPE_CGROUP_ARRAY, |
| 90 | BPF_MAP_TYPE_LRU_HASH, | 96 | BPF_MAP_TYPE_LRU_HASH, |
| 91 | BPF_MAP_TYPE_LRU_PERCPU_HASH, | 97 | BPF_MAP_TYPE_LRU_PERCPU_HASH, |
| 98 | BPF_MAP_TYPE_LPM_TRIE, | ||
| 92 | }; | 99 | }; |
| 93 | 100 | ||
| 94 | enum bpf_prog_type { | 101 | enum bpf_prog_type { |
| @@ -437,6 +444,18 @@ union bpf_attr { · 342 unmodified lines | |||
| 437 | * @xdp_md: pointer to xdp_md | 444 | * @xdp_md: pointer to xdp_md |
| 438 | * @delta: An positive/negative integer to be added to xdp_md.data | 445 | * @delta: An positive/negative integer to be added to xdp_md.data |
| 439 | * Return: 0 on success or negative on error | 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 | #define __BPF_FUNC_MAPPER(FN) \ | 460 | #define __BPF_FUNC_MAPPER(FN) \ |
| 442 | FN(unspec), \ | 461 | FN(unspec), \ |
| @@ -483,7 +502,8 @@ union bpf_attr { · 40 unmodified lines | |||
| 483 | FN(set_hash_invalid), \ | 502 | FN(set_hash_invalid), \ |
| 484 | FN(get_numa_node_id), \ | 503 | FN(get_numa_node_id), \ |
| 485 | FN(skb_change_head), \ | 504 | FN(skb_change_head), \ |
| 486 | FN(xdp_adjust_head), | 505 | FN(xdp_adjust_head), \ |
| 506 | FN(probe_read_str), | ||
| 487 | 507 | ||
| 488 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 508 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 489 | * function eBPF program intends to call | 509 | * function eBPF program intends to call |
| @@ -509,6 +529,7 @@ enum bpf_func_id { · 19 unmodified lines | |||
| 509 | /* BPF_FUNC_l4_csum_replace flags. */ | 529 | /* BPF_FUNC_l4_csum_replace flags. */ |
| 510 | #define BPF_F_PSEUDO_HDR (1ULL << 4) | 530 | #define BPF_F_PSEUDO_HDR (1ULL << 4) |
| 511 | #define BPF_F_MARK_MANGLED_0 (1ULL << 5) | 531 | #define BPF_F_MARK_MANGLED_0 (1ULL << 5) |
| 532 | #define BPF_F_MARK_ENFORCE (1ULL << 6) | ||
| 512 | 533 | ||
| 513 | /* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ | 534 | /* BPF_FUNC_clone_redirect and BPF_FUNC_redirect flags. */ |
| 514 | #define BPF_F_INGRESS (1ULL << 0) | 535 | #define BPF_F_INGRESS (1ULL << 0) |
| @@ -127,9 +127,16 @@ enum { · 126 unmodified lines | |||
| 127 | IFLA_CAN_BERR_COUNTER, | 127 | IFLA_CAN_BERR_COUNTER, |
| 128 | IFLA_CAN_DATA_BITTIMING, | 128 | IFLA_CAN_DATA_BITTIMING, |
| 129 | IFLA_CAN_DATA_BITTIMING_CONST, | 129 | IFLA_CAN_DATA_BITTIMING_CONST, |
| 130 | IFLA_CAN_TERMINATION, | ||
| 131 | IFLA_CAN_TERMINATION_CONST, | ||
| 132 | IFLA_CAN_BITRATE_CONST, | ||
| 133 | IFLA_CAN_DATA_BITRATE_CONST, | ||
| 130 | __IFLA_CAN_MAX | 134 | __IFLA_CAN_MAX |
| 131 | }; | 135 | }; |
| 132 | 136 | ||
| 133 | #define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1) | 137 | #define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1) |
| 134 | 138 | ||
| 139 | /* u16 termination range: 1..65535 Ohms */ | ||
| 140 | #define CAN_TERMINATION_DISABLED 0 | ||
| 141 | |||
| 135 | #endif /* !_UAPI_CAN_NETLINK_H */ | 142 | #endif /* !_UAPI_CAN_NETLINK_H */ |
| @@ -57,8 +57,14 @@ enum devlink_command { · 56 unmodified lines | |||
| 57 | DEVLINK_CMD_SB_OCC_SNAPSHOT, | 57 | DEVLINK_CMD_SB_OCC_SNAPSHOT, |
| 58 | DEVLINK_CMD_SB_OCC_MAX_CLEAR, | 58 | DEVLINK_CMD_SB_OCC_MAX_CLEAR, |
| 59 | 59 | ||
| 60 | DEVLINK_CMD_ESWITCH_MODE_GET, | 60 | DEVLINK_CMD_ESWITCH_GET, |
| 61 | DEVLINK_CMD_ESWITCH_MODE_SET, | 61 | #define DEVLINK_CMD_ESWITCH_MODE_GET /* obsolete, never use this! */ \ |
| 62 | DEVLINK_CMD_ESWITCH_GET | ||
| 63 | |||
| 64 | DEVLINK_CMD_ESWITCH_SET, | ||
| 65 | #define DEVLINK_CMD_ESWITCH_MODE_SET /* obsolete, never use this! */ \ | ||
| 66 | DEVLINK_CMD_ESWITCH_SET | ||
| 67 | |||
| 62 | /* add new commands above here */ | 68 | /* add new commands above here */ |
| 63 | 69 | ||
| 64 | __DEVLINK_CMD_MAX, | 70 | __DEVLINK_CMD_MAX, |
| @@ -63,5 +63,10 @@ · 62 unmodified lines | |||
| 63 | #define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */ | 63 | #define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */ |
| 64 | #define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */ | 64 | #define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname */ |
| 65 | 65 | ||
| 66 | #define AT_STATX_SYNC_TYPE 0x6000 /* Type of synchronisation required from statx() */ | ||
| 67 | #define AT_STATX_SYNC_AS_STAT 0x0000 /* - Do whatever stat() does */ | ||
| 68 | #define AT_STATX_FORCE_SYNC 0x2000 /* - Force the attributes to be sync'd with the server */ | ||
| 69 | #define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */ | ||
| 70 | |||
| 66 | 71 | ||
| 67 | #endif /* _UAPI_LINUX_FCNTL_H */ | 72 | #endif /* _UAPI_LINUX_FCNTL_H */ |
| @@ -132,6 +132,7 @@ struct inodes_stat_t { · 131 unmodified lines | |||
| 132 | #define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */ | 132 | #define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */ |
| 133 | 133 | ||
| 134 | /* These sb flags are internal to the kernel */ | 134 | /* These sb flags are internal to the kernel */ |
| 135 | #define MS_SUBMOUNT (1<<26) | ||
| 135 | #define MS_NOREMOTELOCK (1<<27) | 136 | #define MS_NOREMOTELOCK (1<<27) |
| 136 | #define MS_NOSEC (1<<28) | 137 | #define MS_NOSEC (1<<28) |
| 137 | #define MS_BORN (1<<29) | 138 | #define MS_BORN (1<<29) |
| @@ -24,6 +24,10 @@ · 23 unmodified lines | |||
| 24 | #include <linux/socket.h> /* for "struct sockaddr" et al */ | 24 | #include <linux/socket.h> /* for "struct sockaddr" et al */ |
| 25 | #include <linux/compiler.h> /* for "__user" et al */ | 25 | #include <linux/compiler.h> /* for "__user" et al */ |
| 26 | 26 | ||
| 27 | #ifndef __KERNEL__ | ||
| 28 | #include <sys/socket.h> /* for struct sockaddr. */ | ||
| 29 | #endif | ||
| 30 | |||
| 27 | #if __UAPI_DEF_IF_IFNAMSIZ | 31 | #if __UAPI_DEF_IF_IFNAMSIZ |
| 28 | #define IFNAMSIZ 16 | 32 | #define IFNAMSIZ 16 |
| 29 | #endif /* __UAPI_DEF_IF_IFNAMSIZ */ | 33 | #endif /* __UAPI_DEF_IF_IFNAMSIZ */ |
| @@ -118,6 +118,7 @@ enum { · 117 unmodified lines | |||
| 118 | IFLA_BRIDGE_FLAGS, | 118 | IFLA_BRIDGE_FLAGS, |
| 119 | IFLA_BRIDGE_MODE, | 119 | IFLA_BRIDGE_MODE, |
| 120 | IFLA_BRIDGE_VLAN_INFO, | 120 | IFLA_BRIDGE_VLAN_INFO, |
| 121 | IFLA_BRIDGE_VLAN_TUNNEL_INFO, | ||
| 121 | __IFLA_BRIDGE_MAX, | 122 | __IFLA_BRIDGE_MAX, |
| 122 | }; | 123 | }; |
| 123 | #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) | 124 | #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) |
| @@ -134,6 +135,16 @@ struct bridge_vlan_info { · 10 unmodified lines | |||
| 134 | __u16 vid; | 135 | __u16 vid; |
| 135 | }; | 136 | }; |
| 136 | 137 | ||
| 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 | struct bridge_vlan_xstats { | 148 | struct bridge_vlan_xstats { |
| 138 | __u64 rx_bytes; | 149 | __u64 rx_bytes; |
| 139 | __u64 rx_packets; | 150 | __u64 rx_packets; |
| @@ -93,6 +93,7 @@ · 92 unmodified lines | |||
| 93 | #define ETH_P_NCSI 0x88F8 /* NCSI protocol */ | 93 | #define ETH_P_NCSI 0x88F8 /* NCSI protocol */ |
| 94 | #define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */ | 94 | #define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */ |
| 95 | #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ | 95 | #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */ |
| 96 | #define ETH_P_IBOE 0x8915 /* Infiniband over Ethernet */ | ||
| 96 | #define ETH_P_TDLS 0x890D /* TDLS */ | 97 | #define ETH_P_TDLS 0x890D /* TDLS */ |
| 97 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ | 98 | #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */ |
| 98 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ | 99 | #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */ |
| @@ -321,6 +321,8 @@ enum { · 320 unmodified lines | |||
| 321 | IFLA_BRPORT_MULTICAST_ROUTER, | 321 | IFLA_BRPORT_MULTICAST_ROUTER, |
| 322 | IFLA_BRPORT_PAD, | 322 | IFLA_BRPORT_PAD, |
| 323 | IFLA_BRPORT_MCAST_FLOOD, | 323 | IFLA_BRPORT_MCAST_FLOOD, |
| 324 | IFLA_BRPORT_MCAST_TO_UCAST, | ||
| 325 | IFLA_BRPORT_VLAN_TUNNEL, | ||
| 324 | __IFLA_BRPORT_MAX | 326 | __IFLA_BRPORT_MAX |
| 325 | }; | 327 | }; |
| 326 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) | 328 | #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) |
| @@ -847,6 +849,7 @@ enum { · 520 unmodified lines | |||
| 847 | IFLA_STATS_LINK_XSTATS, | 849 | IFLA_STATS_LINK_XSTATS, |
| 848 | IFLA_STATS_LINK_XSTATS_SLAVE, | 850 | IFLA_STATS_LINK_XSTATS_SLAVE, |
| 849 | IFLA_STATS_LINK_OFFLOAD_XSTATS, | 851 | IFLA_STATS_LINK_OFFLOAD_XSTATS, |
| 852 | IFLA_STATS_AF_SPEC, | ||
| 850 | __IFLA_STATS_MAX, | 853 | __IFLA_STATS_MAX, |
| 851 | }; | 854 | }; |
| 852 | 855 | ||
| @@ -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 | struct igmpv3_report { | 53 | struct igmpv3_report { |
| 54 | __u8 type; | 54 | __u8 type; |
| 55 | __u8 resv1; | 55 | __u8 resv1; |
| 56 | __be16 csum; | 56 | __sum16 csum; |
| 57 | __be16 resv2; | 57 | __be16 resv2; |
| 58 | __be16 ngrec; | 58 | __be16 ngrec; |
| 59 | struct igmpv3_grec grec[0]; | 59 | struct igmpv3_grec grec[0]; |
| @@ -62,7 +62,7 @@ struct igmpv3_report { · 2 unmodified lines | |||
| 62 | struct igmpv3_query { | 62 | struct igmpv3_query { |
| 63 | __u8 type; | 63 | __u8 type; |
| 64 | __u8 code; | 64 | __u8 code; |
| 65 | __be16 csum; | 65 | __sum16 csum; |
| 66 | __be32 group; | 66 | __be32 group; |
| 67 | #if defined(__LITTLE_ENDIAN_BITFIELD) | 67 | #if defined(__LITTLE_ENDIAN_BITFIELD) |
| 68 | __u8 qrv:3, | 68 | __u8 qrv:3, |
| @@ -42,6 +42,7 @@ enum iio_chan_type { · 41 unmodified lines | |||
| 42 | IIO_ELECTRICALCONDUCTIVITY, | 42 | IIO_ELECTRICALCONDUCTIVITY, |
| 43 | IIO_COUNT, | 43 | IIO_COUNT, |
| 44 | IIO_INDEX, | 44 | IIO_INDEX, |
| 45 | IIO_GRAVITY, | ||
| 45 | }; | 46 | }; |
| 46 | 47 | ||
| 47 | enum iio_modifier { | 48 | enum iio_modifier { |
| @@ -2,6 +2,8 @@ · 1 unmodified line | |||
| 2 | #define _IP6_TUNNEL_H | 2 | #define _IP6_TUNNEL_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/if.h> /* For IFNAMSIZ. */ | ||
| 6 | #include <linux/in6.h> /* For struct in6_addr. */ | ||
| 5 | 7 | ||
| 6 | #define IPV6_TLV_TNL_ENCAP_LIMIT 4 | 8 | #define IPV6_TLV_TNL_ENCAP_LIMIT 4 |
| 7 | #define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 | 9 | #define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 |
| @@ -182,6 +182,7 @@ enum { · 181 unmodified lines | |||
| 182 | DEVCONF_SEG6_ENABLED, | 182 | DEVCONF_SEG6_ENABLED, |
| 183 | DEVCONF_SEG6_REQUIRE_HMAC, | 183 | DEVCONF_SEG6_REQUIRE_HMAC, |
| 184 | DEVCONF_ENHANCED_DAD, | 184 | DEVCONF_ENHANCED_DAD, |
| 185 | DEVCONF_ADDR_GEN_MODE, | ||
| 185 | DEVCONF_MAX | 186 | DEVCONF_MAX |
| 186 | }; | 187 | }; |
| 187 | 188 | ||
| @@ -14,6 +14,7 @@ · 13 unmodified lines | |||
| 14 | #define _UAPI_LINUX_IPV6_ROUTE_H | 14 | #define _UAPI_LINUX_IPV6_ROUTE_H |
| 15 | 15 | ||
| 16 | #include <linux/types.h> | 16 | #include <linux/types.h> |
| 17 | #include <linux/in6.h> /* For struct in6_addr. */ | ||
| 17 | 18 | ||
| 18 | #define RTF_DEFAULT 0x00010000 /* default - learned via ND */ | 19 | #define RTF_DEFAULT 0x00010000 /* default - learned via ND */ |
| 19 | #define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) | 20 | #define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) |
| @@ -218,7 +218,8 @@ struct kvm_hyperv_exit { · 217 unmodified lines | |||
| 218 | struct kvm_run { | 218 | struct kvm_run { |
| 219 | /* in */ | 219 | /* in */ |
| 220 | __u8 request_interrupt_window; | 220 | __u8 request_interrupt_window; |
| 221 | __u8 padding1[7]; | 221 | __u8 immediate_exit; |
| 222 | __u8 padding1[6]; | ||
| 222 | 223 | ||
| 223 | /* out */ | 224 | /* out */ |
| 224 | __u32 exit_reason; | 225 | __u32 exit_reason; |
| @@ -685,6 +686,13 @@ struct kvm_ppc_smmu_info { · 460 unmodified lines | |||
| 685 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; | 686 | struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ]; |
| 686 | }; | 687 | }; |
| 687 | 688 | ||
| 689 | /* for KVM_PPC_RESIZE_HPT_{PREPARE,COMMIT} */ | ||
| 690 | struct kvm_ppc_resize_hpt { | ||
| 691 | __u64 flags; | ||
| 692 | __u32 shift; | ||
| 693 | __u32 pad; | ||
| 694 | }; | ||
| 695 | |||
| 688 | #define KVMIO 0xAE | 696 | #define KVMIO 0xAE |
| 689 | 697 | ||
| 690 | /* machine type bits, to be used as argument to KVM_CREATE_VM */ | 698 | /* machine type bits, to be used as argument to KVM_CREATE_VM */ |
| @@ -871,6 +879,10 @@ struct kvm_ppc_smmu_info { · 180 unmodified lines | |||
| 871 | #define KVM_CAP_S390_USER_INSTR0 130 | 879 | #define KVM_CAP_S390_USER_INSTR0 130 |
| 872 | #define KVM_CAP_MSI_DEVID 131 | 880 | #define KVM_CAP_MSI_DEVID 131 |
| 873 | #define KVM_CAP_PPC_HTM 132 | 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 | #ifdef KVM_CAP_IRQ_ROUTING | 887 | #ifdef KVM_CAP_IRQ_ROUTING |
| 876 | 888 | ||
| @@ -1187,6 +1199,13 @@ struct kvm_s390_ucas_mapping { · 310 unmodified lines | |||
| 1187 | #define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr) | 1199 | #define KVM_ARM_SET_DEVICE_ADDR _IOW(KVMIO, 0xab, struct kvm_arm_device_addr) |
| 1188 | /* Available with KVM_CAP_PPC_RTAS */ | 1200 | /* Available with KVM_CAP_PPC_RTAS */ |
| 1189 | #define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args) | 1201 | #define KVM_PPC_RTAS_DEFINE_TOKEN _IOW(KVMIO, 0xac, struct kvm_rtas_token_args) |
| 1202 | /* Available with KVM_CAP_SPAPR_RESIZE_HPT */ | ||
| 1203 | #define KVM_PPC_RESIZE_HPT_PREPARE _IOR(KVMIO, 0xad, struct kvm_ppc_resize_hpt) | ||
| 1204 | #define KVM_PPC_RESIZE_HPT_COMMIT _IOR(KVMIO, 0xae, struct kvm_ppc_resize_hpt) | ||
| 1205 | /* Available with KVM_CAP_PPC_RADIX_MMU or KVM_CAP_PPC_HASH_MMU_V3 */ | ||
| 1206 | #define KVM_PPC_CONFIGURE_V3_MMU _IOW(KVMIO, 0xaf, struct kvm_ppc_mmuv3_cfg) | ||
| 1207 | /* Available with KVM_CAP_PPC_RADIX_MMU */ | ||
| 1208 | #define KVM_PPC_GET_RMMU_INFO _IOW(KVMIO, 0xb0, struct kvm_ppc_rmmu_info) | ||
| 1190 | 1209 | ||
| 1191 | /* ioctl for vm fd */ | 1210 | /* ioctl for vm fd */ |
| 1192 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) | 1211 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) |
| @@ -14,6 +14,7 @@ · 13 unmodified lines | |||
| 14 | #define KVM_EFAULT EFAULT | 14 | #define KVM_EFAULT EFAULT |
| 15 | #define KVM_E2BIG E2BIG | 15 | #define KVM_E2BIG E2BIG |
| 16 | #define KVM_EPERM EPERM | 16 | #define KVM_EPERM EPERM |
| 17 | #define KVM_EOPNOTSUPP 95 | ||
| 17 | 18 | ||
| 18 | #define KVM_HC_VAPIC_POLL_IRQ 1 | 19 | #define KVM_HC_VAPIC_POLL_IRQ 1 |
| 19 | #define KVM_HC_MMU_OP 2 | 20 | #define KVM_HC_MMU_OP 2 |
| @@ -23,6 +24,7 @@ · 3 unmodified lines | |||
| 23 | #define KVM_HC_MIPS_GET_CLOCK_FREQ 6 | 24 | #define KVM_HC_MIPS_GET_CLOCK_FREQ 6 |
| 24 | #define KVM_HC_MIPS_EXIT_VM 7 | 25 | #define KVM_HC_MIPS_EXIT_VM 7 |
| 25 | #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 | 26 | #define KVM_HC_MIPS_CONSOLE_OUTPUT 8 |
| 27 | #define KVM_HC_CLOCK_PAIRING 9 | ||
| 26 | 28 | ||
| 27 | /* | 29 | /* |
| 28 | * hypercalls use architecture specific | 30 | * hypercalls use architecture specific |
| @@ -122,6 +122,44 @@ struct nvm_ioctl_dev_factory { · 121 unmodified lines | |||
| 122 | __u32 flags; | 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 | /* The ioctl type, 'L', 0x20 - 0x2F documented in ioctl-number.txt */ | 163 | /* The ioctl type, 'L', 0x20 - 0x2F documented in ioctl-number.txt */ |
| 126 | enum { | 164 | enum { |
| 127 | /* top level cmds */ | 165 | /* top level cmds */ |
| @@ -137,6 +175,11 @@ enum { · 9 unmodified lines | |||
| 137 | 175 | ||
| 138 | /* Factory reset device */ | 176 | /* Factory reset device */ |
| 139 | NVM_DEV_FACTORY_CMD, | 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 | #define NVM_IOCTL 'L' /* 0x4c */ | 185 | #define NVM_IOCTL 'L' /* 0x4c */ |
| @@ -154,6 +197,13 @@ enum { · 11 unmodified lines | |||
| 154 | #define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, \ | 197 | #define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, \ |
| 155 | struct nvm_ioctl_dev_factory) | 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 | #define NVM_VERSION_MAJOR 1 | 207 | #define NVM_VERSION_MAJOR 1 |
| 158 | #define NVM_VERSION_MINOR 0 | 208 | #define NVM_VERSION_MINOR 0 |
| 159 | #define NVM_VERSION_PATCHLEVEL 0 | 209 | #define NVM_VERSION_PATCHLEVEL 0 |
| @@ -14,6 +14,7 @@ · 13 unmodified lines | |||
| 14 | #define _UAPI__LINUX_LLC_H | 14 | #define _UAPI__LINUX_LLC_H |
| 15 | 15 | ||
| 16 | #include <linux/socket.h> | 16 | #include <linux/socket.h> |
| 17 | #include <linux/if.h> /* For IFHWADDRLEN. */ | ||
| 17 | 18 | ||
| 18 | #define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */ | 19 | #define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */ |
| 19 | struct sockaddr_llc { | 20 | struct sockaddr_llc { |
| @@ -43,4 +43,34 @@ struct mpls_label { · 42 unmodified lines | |||
| 43 | 43 | ||
| 44 | #define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */ | 44 | #define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */ |
| 45 | 45 | ||
| 46 | /* These are embedded into IFLA_STATS_AF_SPEC: | ||
| 47 | * [IFLA_STATS_AF_SPEC] | ||
| 48 | * -> [AF_MPLS] | ||
| 49 | * -> [MPLS_STATS_xxx] | ||
| 50 | * | ||
| 51 | * Attributes: | ||
| 52 | * [MPLS_STATS_LINK] = { | ||
| 53 | * struct mpls_link_stats | ||
| 54 | * } | ||
| 55 | */ | ||
| 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 | #endif /* _UAPI_MPLS_H */ | 76 | #endif /* _UAPI_MPLS_H */ |
| @@ -18,6 +18,8 @@ · 17 unmodified lines | |||
| 18 | #ifndef _LINUX_MQUEUE_H | 18 | #ifndef _LINUX_MQUEUE_H |
| 19 | #define _LINUX_MQUEUE_H | 19 | #define _LINUX_MQUEUE_H |
| 20 | 20 | ||
| 21 | #include <linux/types.h> | ||
| 22 | |||
| 21 | #define MQ_PRIO_MAX 32768 | 23 | #define MQ_PRIO_MAX 32768 |
| 22 | /* per-uid limit of kernel memory used by mqueue, in bytes */ | 24 | /* per-uid limit of kernel memory used by mqueue, in bytes */ |
| 23 | #define MQ_BYTES_MAX 819200 | 25 | #define MQ_BYTES_MAX 819200 |
| @@ -3,6 +3,7 @@ · 2 unmodified lines | |||
| 3 | 3 | ||
| 4 | #include <linux/sockios.h> | 4 | #include <linux/sockios.h> |
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | #include <linux/in.h> /* For struct in_addr. */ | ||
| 6 | 7 | ||
| 7 | /* Based on the MROUTING 3.5 defines primarily to keep | 8 | /* Based on the MROUTING 3.5 defines primarily to keep |
| 8 | * source compatibility with BSD. | 9 | * source compatibility with BSD. |
| @@ -4,6 +4,7 @@ · 3 unmodified lines | |||
| 4 | #include <linux/kernel.h> | 4 | #include <linux/kernel.h> |
| 5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
| 6 | #include <linux/sockios.h> | 6 | #include <linux/sockios.h> |
| 7 | #include <linux/in6.h> /* For struct sockaddr_in6. */ | ||
| 7 | 8 | ||
| 8 | /* | 9 | /* |
| 9 | * Based on the MROUTING 3.5 defines primarily to keep | 10 | * Based on the MROUTING 3.5 defines primarily to keep |
| @@ -26,6 +26,7 @@ enum { · 25 unmodified lines | |||
| 26 | NDA_IFINDEX, | 26 | NDA_IFINDEX, |
| 27 | NDA_MASTER, | 27 | NDA_MASTER, |
| 28 | NDA_LINK_NETNSID, | 28 | NDA_LINK_NETNSID, |
| 29 | NDA_SRC_VNI, | ||
| 29 | __NDA_MAX | 30 | __NDA_MAX |
| 30 | }; | 31 | }; |
| 31 | 32 | ||
| @@ -16,6 +16,7 @@ enum { · 15 unmodified lines | |||
| 16 | NETCONFA_MC_FORWARDING, | 16 | NETCONFA_MC_FORWARDING, |
| 17 | NETCONFA_PROXY_NEIGH, | 17 | NETCONFA_PROXY_NEIGH, |
| 18 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, | 18 | NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, |
| 19 | NETCONFA_INPUT, | ||
| 19 | __NETCONFA_MAX | 20 | __NETCONFA_MAX |
| 20 | }; | 21 | }; |
| 21 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) | 22 | #define NETCONFA_MAX (__NETCONFA_MAX - 1) |
| @@ -3,7 +3,6 @@ · 2 unmodified lines | |||
| 3 | 3 | ||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/compiler.h> | 5 | #include <linux/compiler.h> |
| 6 | #include <linux/sysctl.h> | ||
| 7 | #include <linux/in.h> | 6 | #include <linux/in.h> |
| 8 | #include <linux/in6.h> | 7 | #include <linux/in6.h> |
| 9 | 8 | ||
| @@ -82,6 +82,10 @@ enum ip_conntrack_status { · 81 unmodified lines | |||
| 82 | IPS_DYING_BIT = 9, | 82 | IPS_DYING_BIT = 9, |
| 83 | IPS_DYING = (1 << IPS_DYING_BIT), | 83 | IPS_DYING = (1 << IPS_DYING_BIT), |
| 84 | 84 | ||
| 85 | /* Bits that cannot be altered from userland. */ | ||
| 86 | IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | | ||
| 87 | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING), | ||
| 88 | |||
| 85 | /* Connection has fixed timeout. */ | 89 | /* Connection has fixed timeout. */ |
| 86 | IPS_FIXED_TIMEOUT_BIT = 10, | 90 | IPS_FIXED_TIMEOUT_BIT = 10, |
| 87 | IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT), | 91 | IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT), |
| @@ -207,6 +207,7 @@ enum nft_chain_attributes { · 206 unmodified lines | |||
| 207 | * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes) | 207 | * @NFTA_RULE_COMPAT: compatibility specifications of the rule (NLA_NESTED: nft_rule_compat_attributes) |
| 208 | * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64) | 208 | * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64) |
| 209 | * @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN) | 209 | * @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN) |
| 210 | * @NFTA_RULE_ID: uniquely identifies a rule in a transaction (NLA_U32) | ||
| 210 | */ | 211 | */ |
| 211 | enum nft_rule_attributes { | 212 | enum nft_rule_attributes { |
| 212 | NFTA_RULE_UNSPEC, | 213 | NFTA_RULE_UNSPEC, |
| @@ -218,6 +219,7 @@ enum nft_rule_attributes { · 5 unmodified lines | |||
| 218 | NFTA_RULE_POSITION, | 219 | NFTA_RULE_POSITION, |
| 219 | NFTA_RULE_USERDATA, | 220 | NFTA_RULE_USERDATA, |
| 220 | NFTA_RULE_PAD, | 221 | NFTA_RULE_PAD, |
| 222 | NFTA_RULE_ID, | ||
| 221 | __NFTA_RULE_MAX | 223 | __NFTA_RULE_MAX |
| 222 | }; | 224 | }; |
| 223 | #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) | 225 | #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1) |
| @@ -704,13 +706,32 @@ enum nft_payload_attributes { · 480 unmodified lines | |||
| 704 | }; | 706 | }; |
| 705 | #define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1) | 707 | #define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1) |
| 706 | 708 | ||
| 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 | * @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers) | 729 | * @NFTA_EXTHDR_DREG: destination register (NLA_U32: nft_registers) |
| 711 | * @NFTA_EXTHDR_TYPE: extension header type (NLA_U8) | 730 | * @NFTA_EXTHDR_TYPE: extension header type (NLA_U8) |
| 712 | * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32) | 731 | * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32) |
| 713 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) | 732 | * @NFTA_EXTHDR_LEN: extension header length (NLA_U32) |
| 733 | * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32) | ||
| 734 | * @NFTA_EXTHDR_OP: option match type (NLA_U8) | ||
| 714 | */ | 735 | */ |
| 715 | enum nft_exthdr_attributes { | 736 | enum nft_exthdr_attributes { |
| 716 | NFTA_EXTHDR_UNSPEC, | 737 | NFTA_EXTHDR_UNSPEC, |
| @@ -718,6 +739,8 @@ enum nft_exthdr_attributes { · 1 unmodified line | |||
| 718 | NFTA_EXTHDR_TYPE, | 739 | NFTA_EXTHDR_TYPE, |
| 719 | NFTA_EXTHDR_OFFSET, | 740 | NFTA_EXTHDR_OFFSET, |
| 720 | NFTA_EXTHDR_LEN, | 741 | NFTA_EXTHDR_LEN, |
| 742 | NFTA_EXTHDR_FLAGS, | ||
| 743 | NFTA_EXTHDR_OP, | ||
| 721 | __NFTA_EXTHDR_MAX | 744 | __NFTA_EXTHDR_MAX |
| 722 | }; | 745 | }; |
| 723 | #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) | 746 | #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1) |
| @@ -860,6 +883,11 @@ enum nft_rt_attributes { · 136 unmodified lines | |||
| 860 | * @NFT_CT_PROTOCOL: conntrack layer 4 protocol | 883 | * @NFT_CT_PROTOCOL: conntrack layer 4 protocol |
| 861 | * @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source | 884 | * @NFT_CT_PROTO_SRC: conntrack layer 4 protocol source |
| 862 | * @NFT_CT_PROTO_DST: conntrack layer 4 protocol destination | 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 | enum nft_ct_keys { | 892 | enum nft_ct_keys { |
| 865 | NFT_CT_STATE, | 893 | NFT_CT_STATE, |
| @@ -878,6 +906,8 @@ enum nft_ct_keys { · 12 unmodified lines | |||
| 878 | NFT_CT_LABELS, | 906 | NFT_CT_LABELS, |
| 879 | NFT_CT_PKTS, | 907 | NFT_CT_PKTS, |
| 880 | NFT_CT_BYTES, | 908 | NFT_CT_BYTES, |
| 909 | NFT_CT_AVGPKT, | ||
| 910 | NFT_CT_ZONE, | ||
| 881 | }; | 911 | }; |
| 882 | 912 | ||
| 883 | /** | 913 | /** |
| @@ -65,4 +65,16 @@ struct nfgenmsg { · 64 unmodified lines | |||
| 65 | #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE | 65 | #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE |
| 66 | #define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE+1 | 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 | #endif /* _UAPI_NFNETLINK_H */ | 80 | #endif /* _UAPI_NFNETLINK_H */ |
| @@ -36,7 +36,7 @@ enum nfqnl_vlan_attr { · 35 unmodified lines | |||
| 36 | NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */ | 36 | NFQA_VLAN_TCI, /* __be16 skb htons(vlan_tci) */ |
| 37 | __NFQA_VLAN_MAX, | 37 | __NFQA_VLAN_MAX, |
| 38 | }; | 38 | }; |
| 39 | #define NFQA_VLAN_MAX (__NFQA_VLAN_MAX + 1) | 39 | #define NFQA_VLAN_MAX (__NFQA_VLAN_MAX - 1) |
| 40 | 40 | ||
| 41 | enum nfqnl_attr_type { | 41 | enum nfqnl_attr_type { |
| 42 | NFQA_UNSPEC, | 42 | NFQA_UNSPEC, |
| @@ -2,6 +2,7 @@ · 1 unmodified line | |||
| 2 | #define _UAPI_XT_HASHLIMIT_H | 2 | #define _UAPI_XT_HASHLIMIT_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/limits.h> | ||
| 5 | #include <linux/if.h> | 6 | #include <linux/if.h> |
| 6 | 7 | ||
| 7 | /* timings are in milliseconds. */ | 8 | /* timings are in milliseconds. */ |
| @@ -27,6 +27,7 @@ · 26 unmodified lines | |||
| 27 | #define NETLINK_ECRYPTFS 19 | 27 | #define NETLINK_ECRYPTFS 19 |
| 28 | #define NETLINK_RDMA 20 | 28 | #define NETLINK_RDMA 20 |
| 29 | #define NETLINK_CRYPTO 21 /* Crypto layer */ | 29 | #define NETLINK_CRYPTO 21 /* Crypto layer */ |
| 30 | #define NETLINK_SMC 22 /* SMC monitoring */ | ||
| 30 | 31 | ||
| 31 | #define NETLINK_INET_DIAG NETLINK_SOCK_DIAG | 32 | #define NETLINK_INET_DIAG NETLINK_SOCK_DIAG |
| 32 | 33 | ||
| @@ -32,7 +32,8 @@ · 31 unmodified lines | |||
| 32 | #define NFSEXP_ASYNC 0x0010 | 32 | #define NFSEXP_ASYNC 0x0010 |
| 33 | #define NFSEXP_GATHERED_WRITES 0x0020 | 33 | #define NFSEXP_GATHERED_WRITES 0x0020 |
| 34 | #define NFSEXP_NOREADDIRPLUS 0x0040 | 34 | #define NFSEXP_NOREADDIRPLUS 0x0040 |
| 35 | /* 80 100 currently unused */ | 35 | #define NFSEXP_SECURITY_LABEL 0x0080 |
| 36 | /* 0x100 currently unused */ | ||
| 36 | #define NFSEXP_NOHIDE 0x0200 | 37 | #define NFSEXP_NOHIDE 0x0200 |
| 37 | #define NFSEXP_NOSUBTREECHECK 0x0400 | 38 | #define NFSEXP_NOSUBTREECHECK 0x0400 |
| 38 | #define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */ | 39 | #define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */ |
| @@ -53,7 +54,7 @@ · 14 unmodified lines | |||
| 53 | #define NFSEXP_PNFS 0x20000 | 54 | #define NFSEXP_PNFS 0x20000 |
| 54 | 55 | ||
| 55 | /* All flags that we claim to support. (Note we don't support NOACL.) */ | 56 | /* All flags that we claim to support. (Note we don't support NOACL.) */ |
| 56 | #define NFSEXP_ALLFLAGS 0x3FE7F | 57 | #define NFSEXP_ALLFLAGS 0x3FEFF |
| 57 | 58 | ||
| 58 | /* The flags that may vary depending on security flavor: */ | 59 | /* The flags that may vary depending on security flavor: */ |
| 59 | #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ | 60 | #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ |
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com> | 10 | * Copyright 2008, 2009 Luis R. Rodriguez <lrodriguez@atheros.com> |
| 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> | 11 | * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com> |
| 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> | 12 | * Copyright 2008 Colin McCabe <colin@cozybit.com> |
| 13 | * Copyright 2015 Intel Deutschland GmbH | 13 | * Copyright 2015-2017 Intel Deutschland GmbH |
| 14 | * | 14 | * |
| 15 | * Permission to use, copy, modify, and/or distribute this software for any | 15 | * Permission to use, copy, modify, and/or distribute this software for any |
| 16 | * purpose with or without fee is hereby granted, provided that the above | 16 | * purpose with or without fee is hereby granted, provided that the above |
| @@ -854,12 +854,15 @@ · 837 unmodified lines | |||
| 854 | * cfg80211_scan_done(). | 854 | * cfg80211_scan_done(). |
| 855 | * | 855 | * |
| 856 | * @NL80211_CMD_START_NAN: Start NAN operation, identified by its | 856 | * @NL80211_CMD_START_NAN: Start NAN operation, identified by its |
| 857 | * %NL80211_ATTR_WDEV interface. This interface must have been previously | 857 | * %NL80211_ATTR_WDEV interface. This interface must have been |
| 858 | * created with %NL80211_CMD_NEW_INTERFACE. After it has been started, the | 858 | * previously created with %NL80211_CMD_NEW_INTERFACE. After it |
| 859 | * NAN interface will create or join a cluster. This command must have a | 859 | * has been started, the NAN interface will create or join a |
| 860 | * valid %NL80211_ATTR_NAN_MASTER_PREF attribute and optional | 860 | * cluster. This command must have a valid |
| 861 | * %NL80211_ATTR_NAN_DUAL attributes. | 861 | * %NL80211_ATTR_NAN_MASTER_PREF attribute and optional |
| 862 | * After this command NAN functions can be added. | 862 | * %NL80211_ATTR_BANDS attributes. If %NL80211_ATTR_BANDS is |
| 863 | * omitted or set to 0, it means don't-care and the device will | ||
| 864 | * decide what to use. After this command NAN functions can be | ||
| 865 | * added. | ||
| 863 | * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by | 866 | * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by |
| 864 | * its %NL80211_ATTR_WDEV interface. | 867 | * its %NL80211_ATTR_WDEV interface. |
| 865 | * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined | 868 | * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined |
| @@ -880,10 +883,14 @@ · 14 unmodified lines | |||
| 880 | * This command is also used as a notification sent when a NAN function is | 883 | * This command is also used as a notification sent when a NAN function is |
| 881 | * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID | 884 | * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID |
| 882 | * and %NL80211_ATTR_COOKIE attributes. | 885 | * and %NL80211_ATTR_COOKIE attributes. |
| 883 | * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN configuration. NAN | 886 | * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN |
| 884 | * must be operational (%NL80211_CMD_START_NAN was executed). | 887 | * configuration. NAN must be operational (%NL80211_CMD_START_NAN |
| 885 | * It must contain at least one of the following attributes: | 888 | * was executed). It must contain at least one of the following |
| 886 | * %NL80211_ATTR_NAN_MASTER_PREF, %NL80211_ATTR_NAN_DUAL. | 889 | * attributes: %NL80211_ATTR_NAN_MASTER_PREF, |
| 890 | * %NL80211_ATTR_BANDS. If %NL80211_ATTR_BANDS is omitted, the | ||
| 891 | * current configuration is not changed. If it is present but | ||
| 892 | * set to zero, the configuration is changed to don't-care | ||
| 893 | * (i.e. the device can decide what to do). | ||
| 887 | * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported. | 894 | * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported. |
| 888 | * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and | 895 | * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and |
| 889 | * %NL80211_ATTR_COOKIE. | 896 | * %NL80211_ATTR_COOKIE. |
| @@ -1822,6 +1829,8 @@ enum nl80211_commands { · 932 unmodified lines | |||
| 1822 | * and remove functions. NAN notifications will be sent in unicast to that | 1829 | * and remove functions. NAN notifications will be sent in unicast to that |
| 1823 | * socket. Without this attribute, any socket can add functions and the | 1830 | * socket. Without this attribute, any socket can add functions and the |
| 1824 | * notifications will be sent to the %NL80211_MCGRP_NAN multicast group. | 1831 | * notifications will be sent to the %NL80211_MCGRP_NAN multicast group. |
| 1832 | * If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the | ||
| 1833 | * station will deauthenticate when the socket is closed. | ||
| 1825 | * | 1834 | * |
| 1826 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is | 1835 | * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is |
| 1827 | * the TDLS link initiator. | 1836 | * the TDLS link initiator. |
| @@ -1961,10 +1970,13 @@ enum nl80211_commands { · 133 unmodified lines | |||
| 1961 | * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0. | 1970 | * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0. |
| 1962 | * Also, values 1 and 255 are reserved for certification purposes and | 1971 | * Also, values 1 and 255 are reserved for certification purposes and |
| 1963 | * should not be used during a normal device operation. | 1972 | * should not be used during a normal device operation. |
| 1964 | * @NL80211_ATTR_NAN_DUAL: NAN dual band operation config (see | 1973 | * @NL80211_ATTR_BANDS: operating bands configuration. This is a u32 |
| 1965 | * &enum nl80211_nan_dual_band_conf). This attribute is used with | 1974 | * bitmask of BIT(NL80211_BAND_*) as described in %enum |
| 1966 | * %NL80211_CMD_START_NAN and optionally with | 1975 | * nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0 |
| 1967 | * %NL80211_CMD_CHANGE_NAN_CONFIG. | 1976 | * would be set. This attribute is used with |
| 1977 | * %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG, and | ||
| 1978 | * it is optional. If no bands are set, it means don't-care and | ||
| 1979 | * the device will decide what to use. | ||
| 1968 | * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See | 1980 | * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See |
| 1969 | * &enum nl80211_nan_func_attributes for description of this nested | 1981 | * &enum nl80211_nan_func_attributes for description of this nested |
| 1970 | * attribute. | 1982 | * attribute. |
| @@ -1982,6 +1994,24 @@ enum nl80211_commands { · 11 unmodified lines | |||
| 1982 | * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also | 1994 | * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also |
| 1983 | * used in various commands/events for specifying the BSSID. | 1995 | * used in various commands/events for specifying the BSSID. |
| 1984 | * | 1996 | * |
| 1997 | * @NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI: Relative RSSI threshold by which | ||
| 1998 | * other BSSs has to be better or slightly worse than the current | ||
| 1999 | * connected BSS so that they get reported to user space. | ||
| 2000 | * This will give an opportunity to userspace to consider connecting to | ||
| 2001 | * other matching BSSs which have better or slightly worse RSSI than | ||
| 2002 | * the current connected BSS by using an offloaded operation to avoid | ||
| 2003 | * unnecessary wakeups. | ||
| 2004 | * | ||
| 2005 | * @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in | ||
| 2006 | * the specified band is to be adjusted before doing | ||
| 2007 | * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparision to figure out | ||
| 2008 | * better BSSs. The attribute value is a packed structure | ||
| 2009 | * value as specified by &struct nl80211_bss_select_rssi_adjust. | ||
| 2010 | * | ||
| 2011 | * @NL80211_ATTR_TIMEOUT_REASON: The reason for which an operation timed out. | ||
| 2012 | * u32 attribute with an &enum nl80211_timeout_reason value. This is used, | ||
| 2013 | * e.g., with %NL80211_CMD_CONNECT event. | ||
| 2014 | * | ||
| 1985 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 2015 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 1986 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 2016 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1987 | * @__NL80211_ATTR_AFTER_LAST: internal use | 2017 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| @@ -2377,7 +2407,7 @@ enum nl80211_attrs { · 389 unmodified lines | |||
| 2377 | NL80211_ATTR_MESH_PEER_AID, | 2407 | NL80211_ATTR_MESH_PEER_AID, |
| 2378 | 2408 | ||
| 2379 | NL80211_ATTR_NAN_MASTER_PREF, | 2409 | NL80211_ATTR_NAN_MASTER_PREF, |
| 2380 | NL80211_ATTR_NAN_DUAL, | 2410 | NL80211_ATTR_BANDS, |
| 2381 | NL80211_ATTR_NAN_FUNC, | 2411 | NL80211_ATTR_NAN_FUNC, |
| 2382 | NL80211_ATTR_NAN_MATCH, | 2412 | NL80211_ATTR_NAN_MATCH, |
| 2383 | 2413 | ||
| @@ -2388,6 +2418,11 @@ enum nl80211_attrs { · 4 unmodified lines | |||
| 2388 | 2418 | ||
| 2389 | NL80211_ATTR_BSSID, | 2419 | NL80211_ATTR_BSSID, |
| 2390 | 2420 | ||
| 2421 | NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI, | ||
| 2422 | NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST, | ||
| 2423 | |||
| 2424 | NL80211_ATTR_TIMEOUT_REASON, | ||
| 2425 | |||
| 2391 | /* add attributes here, update the policy in nl80211.c */ | 2426 | /* add attributes here, update the policy in nl80211.c */ |
| 2392 | 2427 | ||
| 2393 | __NL80211_ATTR_AFTER_LAST, | 2428 | __NL80211_ATTR_AFTER_LAST, |
| @@ -3080,6 +3115,13 @@ enum nl80211_reg_rule_attr { · 686 unmodified lines | |||
| 3080 | * how this API was implemented in the past. Also, due to the same problem, | 3115 | * how this API was implemented in the past. Also, due to the same problem, |
| 3081 | * the only way to create a matchset with only an RSSI filter (with this | 3116 | * the only way to create a matchset with only an RSSI filter (with this |
| 3082 | * attribute) is if there's only a single matchset with the RSSI attribute. | 3117 | * attribute) is if there's only a single matchset with the RSSI attribute. |
| 3118 | * @NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI: Flag indicating whether | ||
| 3119 | * %NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to be used as absolute RSSI or | ||
| 3120 | * relative to current bss's RSSI. | ||
| 3121 | * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST: When present the RSSI level for | ||
| 3122 | * BSS-es in the specified band is to be adjusted before doing | ||
| 3123 | * RSSI-based BSS selection. The attribute value is a packed structure | ||
| 3124 | * value as specified by &struct nl80211_bss_select_rssi_adjust. | ||
| 3083 | * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter | 3125 | * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter |
| 3084 | * attribute number currently defined | 3126 | * attribute number currently defined |
| 3085 | * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use | 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 | NL80211_SCHED_SCAN_MATCH_ATTR_SSID, | 3132 | NL80211_SCHED_SCAN_MATCH_ATTR_SSID, |
| 3091 | NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, | 3133 | NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, |
| 3134 | NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI, | ||
| 3135 | NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST, | ||
| 3092 | 3136 | ||
| 3093 | /* keep last */ | 3137 | /* keep last */ |
| 3094 | __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, | 3138 | __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, |
| @@ -3918,6 +3962,8 @@ enum nl80211_ps_state { · 823 unmodified lines | |||
| 3918 | * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. | 3962 | * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. |
| 3919 | * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon | 3963 | * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon |
| 3920 | * loss event | 3964 | * loss event |
| 3965 | * @NL80211_ATTR_CQM_RSSI_LEVEL: the RSSI value in dBm that triggered the | ||
| 3966 | * RSSI threshold event. | ||
| 3921 | * @__NL80211_ATTR_CQM_AFTER_LAST: internal | 3967 | * @__NL80211_ATTR_CQM_AFTER_LAST: internal |
| 3922 | * @NL80211_ATTR_CQM_MAX: highest key attribute | 3968 | * @NL80211_ATTR_CQM_MAX: highest key attribute |
| 3923 | */ | 3969 | */ |
| @@ -3931,6 +3977,7 @@ enum nl80211_attr_cqm { · 7 unmodified lines | |||
| 3931 | NL80211_ATTR_CQM_TXE_PKTS, | 3977 | NL80211_ATTR_CQM_TXE_PKTS, |
| 3932 | NL80211_ATTR_CQM_TXE_INTVL, | 3978 | NL80211_ATTR_CQM_TXE_INTVL, |
| 3933 | NL80211_ATTR_CQM_BEACON_LOSS_EVENT, | 3979 | NL80211_ATTR_CQM_BEACON_LOSS_EVENT, |
| 3980 | NL80211_ATTR_CQM_RSSI_LEVEL, | ||
| 3934 | 3981 | ||
| 3935 | /* keep last */ | 3982 | /* keep last */ |
| 3936 | __NL80211_ATTR_CQM_AFTER_LAST, | 3983 | __NL80211_ATTR_CQM_AFTER_LAST, |
| @@ -4699,6 +4746,13 @@ enum nl80211_feature_flags { · 762 unmodified lines | |||
| 4699 | * configuration (AP/mesh) with VHT rates. | 4746 | * configuration (AP/mesh) with VHT rates. |
| 4700 | * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup | 4747 | * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup |
| 4701 | * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode. | 4748 | * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode. |
| 4749 | * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA: This driver supports randomized TA | ||
| 4750 | * in @NL80211_CMD_FRAME while not associated. | ||
| 4751 | * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED: This driver supports | ||
| 4752 | * randomized TA in @NL80211_CMD_FRAME while associated. | ||
| 4753 | * @NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI: The driver supports sched_scan | ||
| 4754 | * for reporting BSSs with better RSSI than the current connected BSS | ||
| 4755 | * (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI). | ||
| 4702 | * | 4756 | * |
| 4703 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 4757 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 4704 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 4758 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| @@ -4714,6 +4768,9 @@ enum nl80211_ext_feature_index { · 9 unmodified lines | |||
| 4714 | NL80211_EXT_FEATURE_BEACON_RATE_HT, | 4768 | NL80211_EXT_FEATURE_BEACON_RATE_HT, |
| 4715 | NL80211_EXT_FEATURE_BEACON_RATE_VHT, | 4769 | NL80211_EXT_FEATURE_BEACON_RATE_VHT, |
| 4716 | NL80211_EXT_FEATURE_FILS_STA, | 4770 | NL80211_EXT_FEATURE_FILS_STA, |
| 4771 | NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA, | ||
| 4772 | NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED, | ||
| 4773 | NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI, | ||
| 4717 | 4774 | ||
| 4718 | /* add new features before the definition below */ | 4775 | /* add new features before the definition below */ |
| 4719 | NUM_NL80211_EXT_FEATURES, | 4776 | NUM_NL80211_EXT_FEATURES, |
| @@ -4752,6 +4809,21 @@ enum nl80211_connect_failed_reason { · 32 unmodified lines | |||
| 4752 | NL80211_CONN_FAIL_BLOCKED_CLIENT, | 4809 | NL80211_CONN_FAIL_BLOCKED_CLIENT, |
| 4753 | }; | 4810 | }; |
| 4754 | 4811 | ||
| 4812 | /** | ||
| 4813 | * enum nl80211_timeout_reason - timeout reasons | ||
| 4814 | * | ||
| 4815 | * @NL80211_TIMEOUT_UNSPECIFIED: Timeout reason unspecified. | ||
| 4816 | * @NL80211_TIMEOUT_SCAN: Scan (AP discovery) timed out. | ||
| 4817 | * @NL80211_TIMEOUT_AUTH: Authentication timed out. | ||
| 4818 | * @NL80211_TIMEOUT_ASSOC: Association timed out. | ||
| 4819 | */ | ||
| 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 | * enum nl80211_scan_flags - scan request control flags | 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 | * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters. | 5039 | * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters. |
| 4968 | * | 5040 | * |
| 4969 | * @band: band of BSS that must match for RSSI value adjustment. | 5041 | * @band: band of BSS that must match for RSSI value adjustment. The value |
| 4970 | * @delta: value used to adjust the RSSI value of matching BSS. | 5042 | * of this field is according to &enum nl80211_band. |
| 5043 | * @delta: value used to adjust the RSSI value of matching BSS in dB. | ||
| 4971 | */ | 5044 | */ |
| 4972 | struct nl80211_bss_select_rssi_adjust { | 5045 | struct nl80211_bss_select_rssi_adjust { |
| 4973 | __u8 band; | 5046 | __u8 band; |
| @@ -5007,21 +5080,6 @@ enum nl80211_bss_select_attr { · 33 unmodified lines | |||
| 5007 | NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1 | 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 | * enum nl80211_nan_function_type - NAN function type | 5084 | * enum nl80211_nan_function_type - NAN function type |
| 5027 | * | 5085 | * |
| @@ -6,8 +6,13 @@ · 5 unmodified lines | |||
| 6 | #define NSIO 0xb7 | 6 | #define NSIO 0xb7 |
| 7 | 7 | ||
| 8 | /* Returns a file descriptor that refers to an owning user namespace */ | 8 | /* Returns a file descriptor that refers to an owning user namespace */ |
| 9 | #define NS_GET_USERNS _IO(NSIO, 0x1) | 9 | #define NS_GET_USERNS _IO(NSIO, 0x1) |
| 10 | /* Returns a file descriptor that refers to a parent namespace */ | 10 | /* Returns a file descriptor that refers to a parent namespace */ |
| 11 | #define NS_GET_PARENT _IO(NSIO, 0x2) | 11 | #define NS_GET_PARENT _IO(NSIO, 0x2) |
| 12 | /* Returns the type of namespace (CLONE_NEW* value) referred to by | ||
| 13 | file descriptor */ | ||
| 14 | #define NS_GET_NSTYPE _IO(NSIO, 0x3) | ||
| 15 | /* Get owner UID (in the caller's user namespace) for a user namespace */ | ||
| 16 | #define NS_GET_OWNER_UID _IO(NSIO, 0x4) | ||
| 12 | 17 | ||
| 13 | #endif /* __LINUX_NSFS_H */ | 18 | #endif /* __LINUX_NSFS_H */ |
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | ||
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2007-2013 Nicira, Inc. | 3 | * Copyright (c) 2007-2017 Nicira, Inc. |
| 4 | * | 4 | * |
| 5 | * This program is free software; you can redistribute it and/or | 5 | * This program is free software; you can redistribute it and/or |
| 6 | * modify it under the terms of version 2 of the GNU General Public | 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 | OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */ | 331 | OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */ |
| 332 | OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */ | 332 | OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */ |
| 333 | OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */ | 333 | OVS_KEY_ATTR_CT_LABELS, /* 16-octet connection tracking label */ |
| 334 | OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV4, /* struct ovs_key_ct_tuple_ipv4 */ | ||
| 335 | OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV6, /* struct ovs_key_ct_tuple_ipv6 */ | ||
| 334 | 336 | ||
| 335 | #ifdef __KERNEL__ | 337 | #ifdef __KERNEL__ |
| 336 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ | 338 | OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */ |
| @@ -446,9 +448,13 @@ struct ovs_key_nd { · 109 unmodified lines | |||
| 446 | __u8 nd_tll[ETH_ALEN]; | 448 | __u8 nd_tll[ETH_ALEN]; |
| 447 | }; | 449 | }; |
| 448 | 450 | ||
| 449 | #define OVS_CT_LABELS_LEN 16 | 451 | #define OVS_CT_LABELS_LEN_32 4 |
| 452 | #define OVS_CT_LABELS_LEN (OVS_CT_LABELS_LEN_32 * sizeof(__u32)) | ||
| 450 | struct ovs_key_ct_labels { | 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 | /* OVS_KEY_ATTR_CT_STATE flags */ | 460 | /* OVS_KEY_ATTR_CT_STATE flags */ |
| @@ -468,6 +474,22 @@ struct ovs_key_ct_labels { · 13 unmodified lines | |||
| 468 | 474 | ||
| 469 | #define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT) | 475 | #define OVS_CS_F_NAT_MASK (OVS_CS_F_SRC_NAT | OVS_CS_F_DST_NAT) |
| 470 | 476 | ||
| 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 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. | 494 | * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. |
| 473 | * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow | 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 | * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG. | 674 | * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG. |
| 653 | * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address | 675 | * @OVS_CT_ATTR_NAT: Nested OVS_NAT_ATTR_* for performing L3 network address |
| 654 | * translation (NAT) on the packet. | 676 | * translation (NAT) on the packet. |
| 677 | * @OVS_CT_ATTR_FORCE_COMMIT: Like %OVS_CT_ATTR_COMMIT, but instead of doing | ||
| 678 | * nothing if the connection is already committed will check that the current | ||
| 679 | * packet is in conntrack entry's original direction. If directionality does | ||
| 680 | * not match, will delete the existing conntrack entry and commit a new one. | ||
| 655 | */ | 681 | */ |
| 656 | enum ovs_ct_attr { | 682 | enum ovs_ct_attr { |
| 657 | OVS_CT_ATTR_UNSPEC, | 683 | OVS_CT_ATTR_UNSPEC, |
| @@ -662,6 +688,7 @@ enum ovs_ct_attr { · 4 unmodified lines | |||
| 662 | OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of | 688 | OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of |
| 663 | related connections. */ | 689 | related connections. */ |
| 664 | OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */ | 690 | OVS_CT_ATTR_NAT, /* Nested OVS_NAT_ATTR_* */ |
| 691 | OVS_CT_ATTR_FORCE_COMMIT, /* No argument */ | ||
| 665 | __OVS_CT_ATTR_MAX | 692 | __OVS_CT_ATTR_MAX |
| 666 | }; | 693 | }; |
| 667 | 694 | ||
| @@ -682,6 +682,7 @@ · 681 unmodified lines | |||
| 682 | #define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */ | 682 | #define PCI_EXT_CAP_ID_PMUX 0x1A /* Protocol Multiplexing */ |
| 683 | #define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */ | 683 | #define PCI_EXT_CAP_ID_PASID 0x1B /* Process Address Space ID */ |
| 684 | #define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */ | 684 | #define PCI_EXT_CAP_ID_DPC 0x1D /* Downstream Port Containment */ |
| 685 | #define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */ | ||
| 685 | #define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */ | 686 | #define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */ |
| 686 | #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PTM | 687 | #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PTM |
| 687 | 688 | ||
| @@ -973,6 +974,7 @@ · 285 unmodified lines | |||
| 973 | #define PCI_EXP_DPC_STATUS 8 /* DPC Status */ | 974 | #define PCI_EXP_DPC_STATUS 8 /* DPC Status */ |
| 974 | #define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */ | 975 | #define PCI_EXP_DPC_STATUS_TRIGGER 0x01 /* Trigger Status */ |
| 975 | #define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */ | 976 | #define PCI_EXP_DPC_STATUS_INTERRUPT 0x08 /* Interrupt Status */ |
| 977 | #define PCI_EXP_DPC_RP_BUSY 0x10 /* Root Port Busy */ | ||
| 976 | 978 | ||
| 977 | #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ | 979 | #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ |
| 978 | 980 | ||
| @@ -985,4 +987,19 @@ · 6 unmodified lines | |||
| 985 | #define PCI_PTM_CTRL_ENABLE 0x00000001 /* PTM enable */ | 987 | #define PCI_PTM_CTRL_ENABLE 0x00000001 /* PTM enable */ |
| 986 | #define PCI_PTM_CTRL_ROOT 0x00000002 /* Root select */ | 988 | #define PCI_PTM_CTRL_ROOT 0x00000002 /* Root select */ |
| 987 | 989 | ||
| 990 | /* L1 PM Substates */ | ||
| 991 | #define PCI_L1SS_CAP 4 /* capability register */ | ||
| 992 | #define PCI_L1SS_CAP_PCIPM_L1_2 1 /* PCI PM L1.2 Support */ | ||
| 993 | #define PCI_L1SS_CAP_PCIPM_L1_1 2 /* PCI PM L1.1 Support */ | ||
| 994 | #define PCI_L1SS_CAP_ASPM_L1_2 4 /* ASPM L1.2 Support */ | ||
| 995 | #define PCI_L1SS_CAP_ASPM_L1_1 8 /* ASPM L1.1 Support */ | ||
| 996 | #define PCI_L1SS_CAP_L1_PM_SS 16 /* L1 PM Substates Support */ | ||
| 997 | #define PCI_L1SS_CTL1 8 /* Control Register 1 */ | ||
| 998 | #define PCI_L1SS_CTL1_PCIPM_L1_2 1 /* PCI PM L1.2 Enable */ | ||
| 999 | #define PCI_L1SS_CTL1_PCIPM_L1_1 2 /* PCI PM L1.1 Support */ | ||
| 1000 | #define PCI_L1SS_CTL1_ASPM_L1_2 4 /* ASPM L1.2 Support */ | ||
| 1001 | #define PCI_L1SS_CTL1_ASPM_L1_1 8 /* ASPM L1.1 Support */ | ||
| 1002 | #define PCI_L1SS_CTL1_L1SS_MASK 0x0000000F | ||
| 1003 | #define PCI_L1SS_CTL2 0xC /* Control Register 2 */ | ||
| 1004 | |||
| 988 | #endif /* LINUX_PCI_REGS_H */ | 1005 | #endif /* LINUX_PCI_REGS_H */ |
| @@ -4,60 +4,7 @@ · 3 unmodified lines | |||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/pkt_sched.h> | 5 | #include <linux/pkt_sched.h> |
| 6 | 6 | ||
| 7 | #ifdef __KERNEL__ | 7 | #define TC_COOKIE_MAX_SIZE 16 |
| 8 | /* I think i could have done better macros ; for now this is stolen from | ||
| 9 | * some arch/mips code - jhs | ||
| 10 | */ | ||
| 11 | #define _TC_MAKE32(x) ((x)) | ||
| 12 | |||
| 13 | #define _TC_MAKEMASK1(n) (_TC_MAKE32(1) << _TC_MAKE32(n)) | ||
| 14 | #define _TC_MAKEMASK(v,n) (_TC_MAKE32((_TC_MAKE32(1)<<(v))-1) << _TC_MAKE32(n)) | ||
| 15 | #define _TC_MAKEVALUE(v,n) (_TC_MAKE32(v) << _TC_MAKE32(n)) | ||
| 16 | #define _TC_GETVALUE(v,n,m) ((_TC_MAKE32(v) & _TC_MAKE32(m)) >> _TC_MAKE32(n)) | ||
| 17 | |||
| 18 | /* verdict bit breakdown | ||
| 19 | * | ||
| 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 | ||
| 61 | 8 | ||
| 62 | /* Action attributes */ | 9 | /* Action attributes */ |
| 63 | enum { | 10 | enum { |
| @@ -67,6 +14,7 @@ enum { · 3 unmodified lines | |||
| 67 | TCA_ACT_INDEX, | 14 | TCA_ACT_INDEX, |
| 68 | TCA_ACT_STATS, | 15 | TCA_ACT_STATS, |
| 69 | TCA_ACT_PAD, | 16 | TCA_ACT_PAD, |
| 17 | TCA_ACT_COOKIE, | ||
| 70 | __TCA_ACT_MAX | 18 | __TCA_ACT_MAX |
| 71 | }; | 19 | }; |
| 72 | 20 | ||
| @@ -155,8 +103,10 @@ enum { · 82 unmodified lines | |||
| 155 | #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) | 103 | #define TCA_POLICE_MAX (__TCA_POLICE_MAX - 1) |
| 156 | 104 | ||
| 157 | /* tca flags definitions */ | 105 | /* tca flags definitions */ |
| 158 | #define TCA_CLS_FLAGS_SKIP_HW (1 << 0) | 106 | #define TCA_CLS_FLAGS_SKIP_HW (1 << 0) /* don't offload filter to HW */ |
| 159 | #define TCA_CLS_FLAGS_SKIP_SW (1 << 1) | 107 | #define TCA_CLS_FLAGS_SKIP_SW (1 << 1) /* don't use filter in SW */ |
| 108 | #define TCA_CLS_FLAGS_IN_HW (1 << 2) /* filter is offloaded to HW */ | ||
| 109 | #define TCA_CLS_FLAGS_NOT_IN_HW (1 << 3) /* filter isn't offloaded to HW */ | ||
| 160 | 110 | ||
| 161 | /* U32 filters */ | 111 | /* U32 filters */ |
| 162 | 112 | ||
| @@ -471,6 +421,17 @@ enum { · 308 unmodified lines | |||
| 471 | TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */ | 421 | TCA_FLOWER_KEY_ICMPV6_TYPE, /* u8 */ |
| 472 | TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,/* u8 */ | 422 | TCA_FLOWER_KEY_ICMPV6_TYPE_MASK,/* u8 */ |
| 473 | 423 | ||
| 424 | TCA_FLOWER_KEY_ARP_SIP, /* be32 */ | ||
| 425 | TCA_FLOWER_KEY_ARP_SIP_MASK, /* be32 */ | ||
| 426 | TCA_FLOWER_KEY_ARP_TIP, /* be32 */ | ||
| 427 | TCA_FLOWER_KEY_ARP_TIP_MASK, /* be32 */ | ||
| 428 | TCA_FLOWER_KEY_ARP_OP, /* u8 */ | ||
| 429 | TCA_FLOWER_KEY_ARP_OP_MASK, /* u8 */ | ||
| 430 | TCA_FLOWER_KEY_ARP_SHA, /* ETH_ALEN */ | ||
| 431 | TCA_FLOWER_KEY_ARP_SHA_MASK, /* ETH_ALEN */ | ||
| 432 | TCA_FLOWER_KEY_ARP_THA, /* ETH_ALEN */ | ||
| 433 | TCA_FLOWER_KEY_ARP_THA_MASK, /* ETH_ALEN */ | ||
| 434 | |||
| 474 | __TCA_FLOWER_MAX, | 435 | __TCA_FLOWER_MAX, |
| 475 | }; | 436 | }; |
| 476 | 437 | ||
| @@ -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 | #define _LINUX_RDS_H | 35 | #define _LINUX_RDS_H |
| 36 | 36 | ||
| 37 | #include <linux/types.h> | 37 | #include <linux/types.h> |
| 38 | #include <linux/socket.h> /* For __kernel_sockaddr_storage. */ | ||
| 38 | 39 | ||
| 39 | #define RDS_IB_ABI_VERSION 0x301 | 40 | #define RDS_IB_ABI_VERSION 0x301 |
| 40 | 41 | ||
| @@ -52,6 +53,13 @@ · 11 unmodified lines | |||
| 52 | #define RDS_GET_MR_FOR_DEST 7 | 53 | #define RDS_GET_MR_FOR_DEST 7 |
| 53 | #define SO_RDS_TRANSPORT 8 | 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 | /* supported values for SO_RDS_TRANSPORT */ | 63 | /* supported values for SO_RDS_TRANSPORT */ |
| 56 | #define RDS_TRANS_IB 0 | 64 | #define RDS_TRANS_IB 0 |
| 57 | #define RDS_TRANS_IWARP 1 | 65 | #define RDS_TRANS_IWARP 1 |
| @@ -77,6 +85,12 @@ · 19 unmodified lines | |||
| 77 | * the same as for the GET_MR setsockopt. | 85 | * the same as for the GET_MR setsockopt. |
| 78 | * RDS_CMSG_RDMA_STATUS (recvmsg) | 86 | * RDS_CMSG_RDMA_STATUS (recvmsg) |
| 79 | * Returns the status of a completed RDMA operation. | 87 | * Returns the status of a completed RDMA operation. |
| 88 | * RDS_CMSG_RXPATH_LATENCY(recvmsg) | ||
| 89 | * Returns rds message latencies in various stages of receive | ||
| 90 | * path in nS. Its set per socket using SO_RDS_MSG_RXPATH_LATENCY | ||
| 91 | * socket option. Legitimate points are defined in | ||
| 92 | * enum rds_message_rxpath_latency. More points can be added in | ||
| 93 | * future. CSMG format is struct rds_cmsg_rx_trace. | ||
| 80 | */ | 94 | */ |
| 81 | #define RDS_CMSG_RDMA_ARGS 1 | 95 | #define RDS_CMSG_RDMA_ARGS 1 |
| 82 | #define RDS_CMSG_RDMA_DEST 2 | 96 | #define RDS_CMSG_RDMA_DEST 2 |
| @@ -87,6 +101,7 @@ · 4 unmodified lines | |||
| 87 | #define RDS_CMSG_ATOMIC_CSWP 7 | 101 | #define RDS_CMSG_ATOMIC_CSWP 7 |
| 88 | #define RDS_CMSG_MASKED_ATOMIC_FADD 8 | 102 | #define RDS_CMSG_MASKED_ATOMIC_FADD 8 |
| 89 | #define RDS_CMSG_MASKED_ATOMIC_CSWP 9 | 103 | #define RDS_CMSG_MASKED_ATOMIC_CSWP 9 |
| 104 | #define RDS_CMSG_RXPATH_LATENCY 11 | ||
| 90 | 105 | ||
| 91 | #define RDS_INFO_FIRST 10000 | 106 | #define RDS_INFO_FIRST 10000 |
| 92 | #define RDS_INFO_COUNTERS 10000 | 107 | #define RDS_INFO_COUNTERS 10000 |
| @@ -103,8 +118,8 @@ · 10 unmodified lines | |||
| 103 | #define RDS_INFO_LAST 10010 | 118 | #define RDS_INFO_LAST 10010 |
| 104 | 119 | ||
| 105 | struct rds_info_counter { | 120 | struct rds_info_counter { |
| 106 | uint8_t name[32]; | 121 | __u8 name[32]; |
| 107 | uint64_t value; | 122 | __u64 value; |
| 108 | } __attribute__((packed)); | 123 | } __attribute__((packed)); |
| 109 | 124 | ||
| 110 | #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 | 125 | #define RDS_INFO_CONNECTION_FLAG_SENDING 0x01 |
| @@ -114,35 +129,35 @@ struct rds_info_counter { · 3 unmodified lines | |||
| 114 | #define TRANSNAMSIZ 16 | 129 | #define TRANSNAMSIZ 16 |
| 115 | 130 | ||
| 116 | struct rds_info_connection { | 131 | struct rds_info_connection { |
| 117 | uint64_t next_tx_seq; | 132 | __u64 next_tx_seq; |
| 118 | uint64_t next_rx_seq; | 133 | __u64 next_rx_seq; |
| 119 | __be32 laddr; | 134 | __be32 laddr; |
| 120 | __be32 faddr; | 135 | __be32 faddr; |
| 121 | uint8_t transport[TRANSNAMSIZ]; /* null term ascii */ | 136 | __u8 transport[TRANSNAMSIZ]; /* null term ascii */ |
| 122 | uint8_t flags; | 137 | __u8 flags; |
| 123 | } __attribute__((packed)); | 138 | } __attribute__((packed)); |
| 124 | 139 | ||
| 125 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 | 140 | #define RDS_INFO_MESSAGE_FLAG_ACK 0x01 |
| 126 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 | 141 | #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02 |
| 127 | 142 | ||
| 128 | struct rds_info_message { | 143 | struct rds_info_message { |
| 129 | uint64_t seq; | 144 | __u64 seq; |
| 130 | uint32_t len; | 145 | __u32 len; |
| 131 | __be32 laddr; | 146 | __be32 laddr; |
| 132 | __be32 faddr; | 147 | __be32 faddr; |
| 133 | __be16 lport; | 148 | __be16 lport; |
| 134 | __be16 fport; | 149 | __be16 fport; |
| 135 | uint8_t flags; | 150 | __u8 flags; |
| 136 | } __attribute__((packed)); | 151 | } __attribute__((packed)); |
| 137 | 152 | ||
| 138 | struct rds_info_socket { | 153 | struct rds_info_socket { |
| 139 | uint32_t sndbuf; | 154 | __u32 sndbuf; |
| 140 | __be32 bound_addr; | 155 | __be32 bound_addr; |
| 141 | __be32 connected_addr; | 156 | __be32 connected_addr; |
| 142 | __be16 bound_port; | 157 | __be16 bound_port; |
| 143 | __be16 connected_port; | 158 | __be16 connected_port; |
| 144 | uint32_t rcvbuf; | 159 | __u32 rcvbuf; |
| 145 | uint64_t inum; | 160 | __u64 inum; |
| 146 | } __attribute__((packed)); | 161 | } __attribute__((packed)); |
| 147 | 162 | ||
| 148 | struct rds_info_tcp_socket { | 163 | struct rds_info_tcp_socket { |
| @@ -150,25 +165,44 @@ struct rds_info_tcp_socket { · 1 unmodified line | |||
| 150 | __be16 local_port; | 165 | __be16 local_port; |
| 151 | __be32 peer_addr; | 166 | __be32 peer_addr; |
| 152 | __be16 peer_port; | 167 | __be16 peer_port; |
| 153 | uint64_t hdr_rem; | 168 | __u64 hdr_rem; |
| 154 | uint64_t data_rem; | 169 | __u64 data_rem; |
| 155 | uint32_t last_sent_nxt; | 170 | __u32 last_sent_nxt; |
| 156 | uint32_t last_expected_una; | 171 | __u32 last_expected_una; |
| 157 | uint32_t last_seen_una; | 172 | __u32 last_seen_una; |
| 158 | } __attribute__((packed)); | 173 | } __attribute__((packed)); |
| 159 | 174 | ||
| 160 | #define RDS_IB_GID_LEN 16 | 175 | #define RDS_IB_GID_LEN 16 |
| 161 | struct rds_info_rdma_connection { | 176 | struct rds_info_rdma_connection { |
| 162 | __be32 src_addr; | 177 | __be32 src_addr; |
| 163 | __be32 dst_addr; | 178 | __be32 dst_addr; |
| 164 | uint8_t src_gid[RDS_IB_GID_LEN]; | 179 | __u8 src_gid[RDS_IB_GID_LEN]; |
| 165 | uint8_t dst_gid[RDS_IB_GID_LEN]; | 180 | __u8 dst_gid[RDS_IB_GID_LEN]; |
| 166 | 181 | ||
| 167 | uint32_t max_send_wr; | 182 | __u32 max_send_wr; |
| 168 | uint32_t max_recv_wr; | 183 | __u32 max_recv_wr; |
| 169 | uint32_t max_send_sge; | 184 | __u32 max_send_sge; |
| 170 | uint32_t rdma_mr_max; | 185 | __u32 rdma_mr_max; |
| 171 | uint32_t rdma_mr_size; | 186 | __u32 rdma_mr_size; |
| 187 | }; | ||
| 188 | |||
| 189 | /* RDS message Receive Path Latency points */ | ||
| 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 | * (so that the application does not have to worry about | 243 | * (so that the application does not have to worry about |
| 210 | * alignment). | 244 | * alignment). |
| 211 | */ | 245 | */ |
| 212 | typedef uint64_t rds_rdma_cookie_t; | 246 | typedef __u64 rds_rdma_cookie_t; |
| 213 | 247 | ||
| 214 | struct rds_iovec { | 248 | struct rds_iovec { |
| 215 | uint64_t addr; | 249 | __u64 addr; |
| 216 | uint64_t bytes; | 250 | __u64 bytes; |
| 217 | }; | 251 | }; |
| 218 | 252 | ||
| 219 | struct rds_get_mr_args { | 253 | struct rds_get_mr_args { |
| 220 | struct rds_iovec vec; | 254 | struct rds_iovec vec; |
| 221 | uint64_t cookie_addr; | 255 | __u64 cookie_addr; |
| 222 | uint64_t flags; | 256 | __u64 flags; |
| 223 | }; | 257 | }; |
| 224 | 258 | ||
| 225 | struct rds_get_mr_for_dest_args { | 259 | struct rds_get_mr_for_dest_args { |
| 226 | struct sockaddr_storage dest_addr; | 260 | struct __kernel_sockaddr_storage dest_addr; |
| 227 | struct rds_iovec vec; | 261 | struct rds_iovec vec; |
| 228 | uint64_t cookie_addr; | 262 | __u64 cookie_addr; |
| 229 | uint64_t flags; | 263 | __u64 flags; |
| 230 | }; | 264 | }; |
| 231 | 265 | ||
| 232 | struct rds_free_mr_args { | 266 | struct rds_free_mr_args { |
| 233 | rds_rdma_cookie_t cookie; | 267 | rds_rdma_cookie_t cookie; |
| 234 | uint64_t flags; | 268 | __u64 flags; |
| 235 | }; | 269 | }; |
| 236 | 270 | ||
| 237 | struct rds_rdma_args { | 271 | struct rds_rdma_args { |
| 238 | rds_rdma_cookie_t cookie; | 272 | rds_rdma_cookie_t cookie; |
| 239 | struct rds_iovec remote_vec; | 273 | struct rds_iovec remote_vec; |
| 240 | uint64_t local_vec_addr; | 274 | __u64 local_vec_addr; |
| 241 | uint64_t nr_local; | 275 | __u64 nr_local; |
| 242 | uint64_t flags; | 276 | __u64 flags; |
| 243 | uint64_t user_token; | 277 | __u64 user_token; |
| 244 | }; | 278 | }; |
| 245 | 279 | ||
| 246 | struct rds_atomic_args { | 280 | struct rds_atomic_args { |
| 247 | rds_rdma_cookie_t cookie; | 281 | rds_rdma_cookie_t cookie; |
| 248 | uint64_t local_addr; | 282 | __u64 local_addr; |
| 249 | uint64_t remote_addr; | 283 | __u64 remote_addr; |
| 250 | union { | 284 | union { |
| 251 | struct { | 285 | struct { |
| 252 | uint64_t compare; | 286 | __u64 compare; |
| 253 | uint64_t swap; | 287 | __u64 swap; |
| 254 | } cswp; | 288 | } cswp; |
| 255 | struct { | 289 | struct { |
| 256 | uint64_t add; | 290 | __u64 add; |
| 257 | } fadd; | 291 | } fadd; |
| 258 | struct { | 292 | struct { |
| 259 | uint64_t compare; | 293 | __u64 compare; |
| 260 | uint64_t swap; | 294 | __u64 swap; |
| 261 | uint64_t compare_mask; | 295 | __u64 compare_mask; |
| 262 | uint64_t swap_mask; | 296 | __u64 swap_mask; |
| 263 | } m_cswp; | 297 | } m_cswp; |
| 264 | struct { | 298 | struct { |
| 265 | uint64_t add; | 299 | __u64 add; |
| 266 | uint64_t nocarry_mask; | 300 | __u64 nocarry_mask; |
| 267 | } m_fadd; | 301 | } m_fadd; |
| 268 | }; | 302 | }; |
| 269 | uint64_t flags; | 303 | __u64 flags; |
| 270 | uint64_t user_token; | 304 | __u64 user_token; |
| 271 | }; | 305 | }; |
| 272 | 306 | ||
| 273 | struct rds_rdma_notify { | 307 | struct rds_rdma_notify { |
| 274 | uint64_t user_token; | 308 | __u64 user_token; |
| 275 | int32_t status; | 309 | __s32 status; |
| 276 | }; | 310 | }; |
| 277 | 311 | ||
| 278 | #define RDS_RDMA_SUCCESS 0 | 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 | #define RTNH_F_ONLINK 4 /* Gateway is forced on link */ | 350 | #define RTNH_F_ONLINK 4 /* Gateway is forced on link */ |
| 351 | #define RTNH_F_OFFLOAD 8 /* offloaded route */ | 351 | #define RTNH_F_OFFLOAD 8 /* offloaded route */ |
| 352 | #define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */ | 352 | #define RTNH_F_LINKDOWN 16 /* carrier-down on nexthop */ |
| 353 | #define RTNH_F_UNRESOLVED 32 /* The entry is unresolved (ipmr) */ | ||
| 353 | 354 | ||
| 354 | #define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD) | 355 | #define RTNH_COMPARE_MASK (RTNH_F_DEAD | RTNH_F_LINKDOWN | RTNH_F_OFFLOAD) |
| 355 | 356 | ||
| @@ -657,6 +658,8 @@ enum rtnetlink_groups { · 301 unmodified lines | |||
| 657 | #define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE | 658 | #define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE |
| 658 | RTNLGRP_NSID, | 659 | RTNLGRP_NSID, |
| 659 | #define RTNLGRP_NSID RTNLGRP_NSID | 660 | #define RTNLGRP_NSID RTNLGRP_NSID |
| 661 | RTNLGRP_MPLS_NETCONF, | ||
| 662 | #define RTNLGRP_MPLS_NETCONF RTNLGRP_MPLS_NETCONF | ||
| 660 | __RTNLGRP_MAX | 663 | __RTNLGRP_MAX |
| 661 | }; | 664 | }; |
| 662 | #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) | 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 | #define SCTP_PR_SUPPORTED 113 | 115 | #define SCTP_PR_SUPPORTED 113 |
| 116 | #define SCTP_DEFAULT_PRINFO 114 | 116 | #define SCTP_DEFAULT_PRINFO 114 |
| 117 | #define SCTP_PR_ASSOC_STATUS 115 | 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 | /* PR-SCTP policies */ | 123 | /* PR-SCTP policies */ |
| 120 | #define SCTP_PR_SCTP_NONE 0x0000 | 124 | #define SCTP_PR_SCTP_NONE 0x0000 |
| @@ -138,6 +142,15 @@ typedef __s32 sctp_assoc_t; · 17 unmodified lines | |||
| 138 | #define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX) | 142 | #define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX) |
| 139 | #define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO) | 143 | #define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO) |
| 140 | 144 | ||
| 145 | /* For enable stream reset */ | ||
| 146 | #define SCTP_ENABLE_RESET_STREAM_REQ 0x01 | ||
| 147 | #define SCTP_ENABLE_RESET_ASSOC_REQ 0x02 | ||
| 148 | #define SCTP_ENABLE_CHANGE_ASSOC_REQ 0x04 | ||
| 149 | #define SCTP_ENABLE_STRRESET_MASK 0x07 | ||
| 150 | |||
| 151 | #define SCTP_STREAM_RESET_INCOMING 0x01 | ||
| 152 | #define SCTP_STREAM_RESET_OUTGOING 0x02 | ||
| 153 | |||
| 141 | /* These are bit fields for msghdr->msg_flags. See section 5.1. */ | 154 | /* These are bit fields for msghdr->msg_flags. See section 5.1. */ |
| 142 | /* On user space Linux, these live in <bits/socket.h> as an enum. */ | 155 | /* On user space Linux, these live in <bits/socket.h> as an enum. */ |
| 143 | enum sctp_msg_flags { | 156 | enum sctp_msg_flags { |
| @@ -477,6 +490,18 @@ struct sctp_sender_dry_event { · 333 unmodified lines | |||
| 477 | sctp_assoc_t sender_dry_assoc_id; | 490 | sctp_assoc_t sender_dry_assoc_id; |
| 478 | }; | 491 | }; |
| 479 | 492 | ||
| 493 | #define SCTP_STREAM_RESET_INCOMING_SSN 0x0001 | ||
| 494 | #define SCTP_STREAM_RESET_OUTGOING_SSN 0x0002 | ||
| 495 | #define SCTP_STREAM_RESET_DENIED 0x0004 | ||
| 496 | #define SCTP_STREAM_RESET_FAILED 0x0008 | ||
| 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 | * Described in Section 7.3 | 506 | * Described in Section 7.3 |
| 482 | * Ancillary Data and Notification Interest Options | 507 | * Ancillary Data and Notification Interest Options |
| @@ -492,6 +517,7 @@ struct sctp_event_subscribe { · 9 unmodified lines | |||
| 492 | __u8 sctp_adaptation_layer_event; | 517 | __u8 sctp_adaptation_layer_event; |
| 493 | __u8 sctp_authentication_event; | 518 | __u8 sctp_authentication_event; |
| 494 | __u8 sctp_sender_dry_event; | 519 | __u8 sctp_sender_dry_event; |
| 520 | __u8 sctp_stream_reset_event; | ||
| 495 | }; | 521 | }; |
| 496 | 522 | ||
| 497 | /* | 523 | /* |
| @@ -516,6 +542,7 @@ union sctp_notification { · 18 unmodified lines | |||
| 516 | struct sctp_pdapi_event sn_pdapi_event; | 542 | struct sctp_pdapi_event sn_pdapi_event; |
| 517 | struct sctp_authkey_event sn_authkey_event; | 543 | struct sctp_authkey_event sn_authkey_event; |
| 518 | struct sctp_sender_dry_event sn_sender_dry_event; | 544 | struct sctp_sender_dry_event sn_sender_dry_event; |
| 545 | struct sctp_stream_reset_event sn_strreset_event; | ||
| 519 | }; | 546 | }; |
| 520 | 547 | ||
| 521 | /* Section 5.3.1 | 548 | /* Section 5.3.1 |
| @@ -543,6 +570,8 @@ enum sctp_sn_type { · 21 unmodified lines | |||
| 543 | #define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT | 570 | #define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT |
| 544 | SCTP_SENDER_DRY_EVENT, | 571 | SCTP_SENDER_DRY_EVENT, |
| 545 | #define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT | 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 | /* Notification error codes used to fill up the error fields in some | 577 | /* Notification error codes used to fill up the error fields in some |
| @@ -1008,4 +1037,17 @@ struct sctp_info { · 459 unmodified lines | |||
| 1008 | __u32 __reserved3; | 1037 | __u32 __reserved3; |
| 1009 | }; | 1038 | }; |
| 1010 | 1039 | ||
| 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 | #endif /* _UAPI_SCTP_H */ | 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 | #ifndef _UAPI_LINUX_SEG6_H | 14 | #ifndef _UAPI_LINUX_SEG6_H |
| 15 | #define _UAPI_LINUX_SEG6_H | 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 | * SRH | 21 | * SRH |
| 19 | */ | 22 | */ |
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef _UAPI_LINUX_SEG6_HMAC_H | 1 | #ifndef _UAPI_LINUX_SEG6_HMAC_H |
| 2 | #define _UAPI_LINUX_SEG6_HMAC_H | 2 | #define _UAPI_LINUX_SEG6_HMAC_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | ||
| 4 | #include <linux/seg6.h> | 5 | #include <linux/seg6.h> |
| 5 | 6 | ||
| 6 | #define SEG6_HMAC_SECRET_LEN 64 | 7 | #define SEG6_HMAC_SECRET_LEN 64 |
| @@ -14,6 +14,8 @@ · 13 unmodified lines | |||
| 14 | #ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H | 14 | #ifndef _UAPI_LINUX_SEG6_IPTUNNEL_H |
| 15 | #define _UAPI_LINUX_SEG6_IPTUNNEL_H | 15 | #define _UAPI_LINUX_SEG6_IPTUNNEL_H |
| 16 | 16 | ||
| 17 | #include <linux/seg6.h> /* For struct ipv6_sr_hdr. */ | ||
| 18 | |||
| 17 | enum { | 19 | enum { |
| 18 | SEG6_IPTUNNEL_UNSPEC, | 20 | SEG6_IPTUNNEL_UNSPEC, |
| 19 | SEG6_IPTUNNEL_SRH, | 21 | SEG6_IPTUNNEL_SRH, |
| @@ -33,6 +35,8 @@ enum { · 13 unmodified lines | |||
| 33 | SEG6_IPTUN_MODE_ENCAP, | 35 | SEG6_IPTUN_MODE_ENCAP, |
| 34 | }; | 36 | }; |
| 35 | 37 | ||
| 38 | #ifdef __KERNEL__ | ||
| 39 | |||
| 36 | static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) | 40 | static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) |
| 37 | { | 41 | { |
| 38 | int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP); | 42 | int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP); |
| @@ -42,3 +46,5 @@ static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo) · 3 unmodified lines | |||
| 42 | } | 46 | } |
| 43 | 47 | ||
| 44 | #endif | 48 | #endif |
| 49 | |||
| 50 | #endif | ||
| @@ -56,7 +56,8 @@ · 55 unmodified lines | |||
| 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ | 56 | #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */ |
| 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ | 57 | #define PORT_RT2880 29 /* Ralink RT2880 internal UART */ |
| 58 | #define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */ | 58 | #define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */ |
| 59 | #define PORT_MAX_8250 30 /* max port ID */ | 59 | #define PORT_DA830 31 /* TI DA8xx/66AK2x */ |
| 60 | #define PORT_MAX_8250 31 /* max port ID */ | ||
| 60 | 61 | ||
| 61 | /* | 62 | /* |
| 62 | * ARM specific type numbers. These are not currently guaranteed | 63 | * ARM specific type numbers. These are not currently guaranteed |
| @@ -327,6 +327,14 @@ · 326 unmodified lines | |||
| 327 | #define SERIAL_RSA_BAUD_BASE (921600) | 327 | #define SERIAL_RSA_BAUD_BASE (921600) |
| 328 | #define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8) | 328 | #define SERIAL_RSA_BAUD_BASE_LO (SERIAL_RSA_BAUD_BASE / 8) |
| 329 | 329 | ||
| 330 | /* Extra registers for TI DA8xx/66AK2x */ | ||
| 331 | #define UART_DA830_PWREMU_MGMT 12 | ||
| 332 | |||
| 333 | /* PWREMU_MGMT register bits */ | ||
| 334 | #define UART_DA830_PWREMU_MGMT_FREE (1 << 0) /* Free-running mode */ | ||
| 335 | #define UART_DA830_PWREMU_MGMT_URRST (1 << 13) /* Receiver reset/enable */ | ||
| 336 | #define UART_DA830_PWREMU_MGMT_UTRST (1 << 14) /* Transmitter reset/enable */ | ||
| 337 | |||
| 330 | /* | 338 | /* |
| 331 | * Extra serial register definitions for the internal UARTs | 339 | * Extra serial register definitions for the internal UARTs |
| 332 | * in TI OMAP processors. | 340 | * in TI OMAP processors. |
| @@ -358,24 +366,6 @@ · 25 unmodified lines | |||
| 358 | #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ | 366 | #define UART_OMAP_MDR1_CIR_MODE 0x06 /* CIR mode */ |
| 359 | #define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */ | 367 | #define UART_OMAP_MDR1_DISABLE 0x07 /* Disable (default state) */ |
| 360 | 368 | ||
| 361 | /* | ||
| 362 | * These are definitions for the Exar XR17V35X and XR17(C|D)15X | ||
| 363 | */ | ||
| 364 | #define UART_EXAR_8XMODE 0x88 /* 8X sampling rate select */ | ||
| 365 | #define UART_EXAR_SLEEP 0x8b /* Sleep mode */ | ||
| 366 | #define UART_EXAR_DVID 0x8d /* Device identification */ | ||
| 367 | |||
| 368 | #define UART_EXAR_FCTR 0x08 /* Feature Control Register */ | ||
| 369 | #define UART_FCTR_EXAR_IRDA 0x08 /* IrDa data encode select */ | ||
| 370 | #define UART_FCTR_EXAR_485 0x10 /* Auto 485 half duplex dir ctl */ | ||
| 371 | #define UART_FCTR_EXAR_TRGA 0x00 /* FIFO trigger table A */ | ||
| 372 | #define UART_FCTR_EXAR_TRGB 0x60 /* FIFO trigger table B */ | ||
| 373 | #define UART_FCTR_EXAR_TRGC 0x80 /* FIFO trigger table C */ | ||
| 374 | #define UART_FCTR_EXAR_TRGD 0xc0 /* FIFO trigger table D programmable */ | ||
| 375 | |||
| 376 | #define UART_EXAR_TXTRG 0x0a /* Tx FIFO trigger level write-only */ | ||
| 377 | #define UART_EXAR_RXTRG 0x0b /* Rx FIFO trigger level write-only */ | ||
| 378 | |||
| 379 | /* | 369 | /* |
| 380 | * These are definitions for the Altera ALTR_16550_F32/F64/F128 | 370 | * These are definitions for the Altera ALTR_16550_F32/F64/F128 |
| 381 | * Normalized from 0x100 to 0x40 because of shift by 2 (32 bit regs). | 371 | * Normalized from 0x100 to 0x40 because of shift by 2 (32 bit regs). |
| @@ -17,9 +17,10 @@ · 16 unmodified lines | |||
| 17 | /* | 17 | /* |
| 18 | * bit masks for use in "interrupt" flags (3rd argument) | 18 | * bit masks for use in "interrupt" flags (3rd argument) |
| 19 | */ | 19 | */ |
| 20 | #define SERIO_TIMEOUT 1 | 20 | #define SERIO_TIMEOUT BIT(0) |
| 21 | #define SERIO_PARITY 2 | 21 | #define SERIO_PARITY BIT(1) |
| 22 | #define SERIO_FRAME 4 | 22 | #define SERIO_FRAME BIT(2) |
| 23 | #define SERIO_OOB_DATA BIT(3) | ||
| 23 | 24 | ||
| 24 | /* | 25 | /* |
| 25 | * Serio types | 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 | LINUX_MIB_SACKMERGED, | 240 | LINUX_MIB_SACKMERGED, |
| 241 | LINUX_MIB_SACKSHIFTFALLBACK, | 241 | LINUX_MIB_SACKSHIFTFALLBACK, |
| 242 | LINUX_MIB_TCPBACKLOGDROP, | 242 | LINUX_MIB_TCPBACKLOGDROP, |
| 243 | LINUX_MIB_PFMEMALLOCDROP, | ||
| 243 | LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */ | 244 | LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */ |
| 244 | LINUX_MIB_TCPDEFERACCEPTDROP, | 245 | LINUX_MIB_TCPDEFERACCEPTDROP, |
| 245 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ | 246 | LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */ |
| @@ -1,6 +1,7 @@ | |||
| 1 | #ifndef _UAPI_LINUX_STAT_H | 1 | #ifndef _UAPI_LINUX_STAT_H |
| 2 | #define _UAPI_LINUX_STAT_H | 2 | #define _UAPI_LINUX_STAT_H |
| 3 | 3 | ||
| 4 | #include <linux/types.h> | ||
| 4 | 5 | ||
| 5 | #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) | 6 | #if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) |
| 6 | 7 | ||
| @@ -41,5 +42,135 @@ · 34 unmodified lines | |||
| 41 | 42 | ||
| 42 | #endif | 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 | #endif /* _UAPI_LINUX_STAT_H */ | 176 | #endif /* _UAPI_LINUX_STAT_H */ |
| @@ -105,26 +105,26 @@ struct tcmu_cmd_entry { · 104 unmodified lines | |||
| 105 | 105 | ||
| 106 | union { | 106 | union { |
| 107 | struct { | 107 | struct { |
| 108 | uint32_t iov_cnt; | 108 | __u32 iov_cnt; |
| 109 | uint32_t iov_bidi_cnt; | 109 | __u32 iov_bidi_cnt; |
| 110 | uint32_t iov_dif_cnt; | 110 | __u32 iov_dif_cnt; |
| 111 | uint64_t cdb_off; | 111 | __u64 cdb_off; |
| 112 | uint64_t __pad1; | 112 | __u64 __pad1; |
| 113 | uint64_t __pad2; | 113 | __u64 __pad2; |
| 114 | struct iovec iov[0]; | 114 | struct iovec iov[0]; |
| 115 | } req; | 115 | } req; |
| 116 | struct { | 116 | struct { |
| 117 | uint8_t scsi_status; | 117 | __u8 scsi_status; |
| 118 | uint8_t __pad1; | 118 | __u8 __pad1; |
| 119 | uint16_t __pad2; | 119 | __u16 __pad2; |
| 120 | uint32_t __pad3; | 120 | __u32 __pad3; |
| 121 | char sense_buffer[TCMU_SENSE_BUFFERSIZE]; | 121 | char sense_buffer[TCMU_SENSE_BUFFERSIZE]; |
| 122 | } rsp; | 122 | } rsp; |
| 123 | }; | 123 | }; |
| 124 | 124 | ||
| 125 | } __packed; | 125 | } __packed; |
| 126 | 126 | ||
| 127 | #define TCMU_OP_ALIGN_SIZE sizeof(uint64_t) | 127 | #define TCMU_OP_ALIGN_SIZE sizeof(__u64) |
| 128 | 128 | ||
| 129 | enum tcmu_genl_cmd { | 129 | enum tcmu_genl_cmd { |
| 130 | TCMU_CMD_UNSPEC, | 130 | TCMU_CMD_UNSPEC, |
| @@ -4,6 +4,7 @@ header-y += tc_defact.h · 3 unmodified lines | |||
| 4 | header-y += tc_gact.h | 4 | header-y += tc_gact.h |
| 5 | header-y += tc_ipt.h | 5 | header-y += tc_ipt.h |
| 6 | header-y += tc_mirred.h | 6 | header-y += tc_mirred.h |
| 7 | header-y += tc_sample.h | ||
| 7 | header-y += tc_nat.h | 8 | header-y += tc_nat.h |
| 8 | header-y += tc_pedit.h | 9 | header-y += tc_pedit.h |
| 9 | header-y += tc_skbedit.h | 10 | header-y += tc_skbedit.h |
| @@ -21,7 +21,8 @@ enum { · 20 unmodified lines | |||
| 21 | TCA_CSUM_UPDATE_FLAG_IGMP = 4, | 21 | TCA_CSUM_UPDATE_FLAG_IGMP = 4, |
| 22 | TCA_CSUM_UPDATE_FLAG_TCP = 8, | 22 | TCA_CSUM_UPDATE_FLAG_TCP = 8, |
| 23 | TCA_CSUM_UPDATE_FLAG_UDP = 16, | 23 | TCA_CSUM_UPDATE_FLAG_UDP = 16, |
| 24 | TCA_CSUM_UPDATE_FLAG_UDPLITE = 32 | 24 | TCA_CSUM_UPDATE_FLAG_UDPLITE = 32, |
| 25 | TCA_CSUM_UPDATE_FLAG_SCTP = 64, | ||
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 27 | struct tc_csum { | 28 | struct tc_csum { |
| @@ -3,6 +3,7 @@ · 2 unmodified lines | |||
| 3 | 3 | ||
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include <linux/pkt_cls.h> | 5 | #include <linux/pkt_cls.h> |
| 6 | #include <linux/ife.h> | ||
| 6 | 7 | ||
| 7 | #define TCA_ACT_IFE 25 | 8 | #define TCA_ACT_IFE 25 |
| 8 | /* Flag bits for now just encoding/decoding; mutually exclusive */ | 9 | /* Flag bits for now just encoding/decoding; mutually exclusive */ |
| @@ -28,13 +29,4 @@ enum { · 19 unmodified lines | |||
| 28 | }; | 29 | }; |
| 29 | #define TCA_IFE_MAX (__TCA_IFE_MAX - 1) | 30 | #define TCA_IFE_MAX (__TCA_IFE_MAX - 1) |
| 30 | 31 | ||
| 31 | #define IFE_META_SKBMARK 1 | ||
| 32 | #define IFE_META_HASHID 2 | ||
| 33 | #define IFE_META_PRIO 3 | ||
| 34 | #define IFE_META_QMAP 4 | ||
| 35 | #define IFE_META_TCINDEX 5 | ||
| 36 | /*Can be overridden at runtime by module option*/ | ||
| 37 | #define __IFE_META_MAX 6 | ||
| 38 | #define IFE_META_MAX (__IFE_META_MAX - 1) | ||
| 39 | |||
| 40 | #endif | 32 | #endif |
| @@ -11,10 +11,41 @@ enum { · 10 unmodified lines | |||
| 11 | TCA_PEDIT_TM, | 11 | TCA_PEDIT_TM, |
| 12 | TCA_PEDIT_PARMS, | 12 | TCA_PEDIT_PARMS, |
| 13 | TCA_PEDIT_PAD, | 13 | TCA_PEDIT_PAD, |
| 14 | TCA_PEDIT_PARMS_EX, | ||
| 15 | TCA_PEDIT_KEYS_EX, | ||
| 16 | TCA_PEDIT_KEY_EX, | ||
| 14 | __TCA_PEDIT_MAX | 17 | __TCA_PEDIT_MAX |
| 15 | }; | 18 | }; |
| 16 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) | 19 | #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1) |
| 17 | 20 | ||
| 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 | struct tc_pedit_key { | 49 | struct tc_pedit_key { |
| 19 | __u32 mask; /* AND */ | 50 | __u32 mask; /* AND */ |
| 20 | __u32 val; /*XOR */ | 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 | #define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */ | 116 | #define TCP_SAVE_SYN 27 /* Record SYN headers for new connections */ |
| 117 | #define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */ | 117 | #define TCP_SAVED_SYN 28 /* Get SYN headers recorded for connection */ |
| 118 | #define TCP_REPAIR_WINDOW 29 /* Get/set window parameters */ | 118 | #define TCP_REPAIR_WINDOW 29 /* Get/set window parameters */ |
| 119 | #define TCP_FASTOPEN_CONNECT 30 /* Attempt FastOpen with connect */ | ||
| 119 | 120 | ||
| 120 | struct tcp_repair_opt { | 121 | struct tcp_repair_opt { |
| 121 | __u32 opt_code; | 122 | __u32 opt_code; |
| @@ -226,6 +227,8 @@ enum { · 104 unmodified lines | |||
| 226 | TCP_NLA_BUSY, /* Time (usec) busy sending data */ | 227 | TCP_NLA_BUSY, /* Time (usec) busy sending data */ |
| 227 | TCP_NLA_RWND_LIMITED, /* Time (usec) limited by receive window */ | 228 | TCP_NLA_RWND_LIMITED, /* Time (usec) limited by receive window */ |
| 228 | TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */ | 229 | TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */ |
| 230 | TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */ | ||
| 231 | TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */ | ||
| 229 | }; | 232 | }; |
| 230 | 233 | ||
| 231 | /* for TCP_MD5SIG socket option */ | 234 | /* for TCP_MD5SIG socket option */ |
| @@ -1,7 +1,7 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * include/uapi/linux/tipc.h: Header for TIPC socket interface | 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 | * Copyright (c) 2005, 2010-2011, Wind River Systems | 5 | * Copyright (c) 2005, 2010-2011, Wind River Systems |
| 6 | * All rights reserved. | 6 | * All rights reserved. |
| 7 | * | 7 | * |
| @@ -220,7 +220,7 @@ struct sockaddr_tipc { · 212 unmodified lines | |||
| 220 | #define TIPC_DESTNAME 3 /* destination name */ | 220 | #define TIPC_DESTNAME 3 /* destination name */ |
| 221 | 221 | ||
| 222 | /* | 222 | /* |
| 223 | * TIPC-specific socket option values | 223 | * TIPC-specific socket option names |
| 224 | */ | 224 | */ |
| 225 | 225 | ||
| 226 | #define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */ | 226 | #define TIPC_IMPORTANCE 127 /* Default: TIPC_LOW_IMPORTANCE */ |
| @@ -229,6 +229,8 @@ struct sockaddr_tipc { · 2 unmodified lines | |||
| 229 | #define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */ | 229 | #define TIPC_CONN_TIMEOUT 130 /* Default: 8000 (ms) */ |
| 230 | #define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */ | 230 | #define TIPC_NODE_RECVQ_DEPTH 131 /* Default: none (read only) */ |
| 231 | #define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */ | 231 | #define TIPC_SOCK_RECVQ_DEPTH 132 /* Default: none (read only) */ |
| 232 | #define TIPC_MCAST_BROADCAST 133 /* Default: TIPC selects. No arg */ | ||
| 233 | #define TIPC_MCAST_REPLICAST 134 /* Default: TIPC selects. No arg */ | ||
| 232 | 234 | ||
| 233 | /* | 235 | /* |
| 234 | * Maximum sizes of TIPC bearer-related names (including terminating NULL) | 236 | * Maximum sizes of TIPC bearer-related names (including terminating NULL) |
| @@ -10,4 +10,6 @@ struct sockaddr_un { · 9 unmodified lines | |||
| 10 | char sun_path[UNIX_PATH_MAX]; /* pathname */ | 10 | char sun_path[UNIX_PATH_MAX]; /* pathname */ |
| 11 | }; | 11 | }; |
| 12 | 12 | ||
| 13 | #define SIOCUNIXFILE (SIOCPROTOPRIVATE + 0) /* open a socket file with O_PATH */ | ||
| 14 | |||
| 13 | #endif /* _LINUX_UN_H */ | 15 | #endif /* _LINUX_UN_H */ |
| @@ -11,13 +11,20 @@ · 10 unmodified lines | |||
| 11 | 11 | ||
| 12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
| 13 | 13 | ||
| 14 | #define UFFD_API ((__u64)0xAA) | ||
| 15 | /* | 14 | /* |
| 16 | * After implementing the respective features it will become: | 15 | * If the UFFDIO_API is upgraded someday, the UFFDIO_UNREGISTER and |
| 17 | * #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \ | 16 | * UFFDIO_WAKE ioctls should be defined as _IOW and not as _IOR. In |
| 18 | * UFFD_FEATURE_EVENT_FORK) | 17 | * userfaultfd.h we assumed the kernel was reading (instead _IOC_READ |
| 18 | * means the userland is reading). | ||
| 19 | */ | 19 | */ |
| 20 | #define UFFD_API_FEATURES (0) | 20 | #define UFFD_API ((__u64)0xAA) |
| 21 | #define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_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 | #define UFFD_API_IOCTLS \ | 28 | #define UFFD_API_IOCTLS \ |
| 22 | ((__u64)1 << _UFFDIO_REGISTER | \ | 29 | ((__u64)1 << _UFFDIO_REGISTER | \ |
| 23 | (__u64)1 << _UFFDIO_UNREGISTER | \ | 30 | (__u64)1 << _UFFDIO_UNREGISTER | \ |
| @@ -26,6 +33,9 @@ · 2 unmodified lines | |||
| 26 | ((__u64)1 << _UFFDIO_WAKE | \ | 33 | ((__u64)1 << _UFFDIO_WAKE | \ |
| 27 | (__u64)1 << _UFFDIO_COPY | \ | 34 | (__u64)1 << _UFFDIO_COPY | \ |
| 28 | (__u64)1 << _UFFDIO_ZEROPAGE) | 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 | * Valid ioctl command number range with this API is from 0x00 to | 41 | * Valid ioctl command number range with this API is from 0x00 to |
| @@ -71,6 +81,21 @@ struct uffd_msg { · 39 unmodified lines | |||
| 71 | __u64 address; | 81 | __u64 address; |
| 72 | } pagefault; | 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 | struct { | 99 | struct { |
| 75 | /* unused reserved fields */ | 100 | /* unused reserved fields */ |
| 76 | __u64 reserved1; | 101 | __u64 reserved1; |
| @@ -84,9 +109,11 @@ struct uffd_msg { · 7 unmodified lines | |||
| 84 | * Start at 0x12 and not at 0 to be more strict against bugs. | 109 | * Start at 0x12 and not at 0 to be more strict against bugs. |
| 85 | */ | 110 | */ |
| 86 | #define UFFD_EVENT_PAGEFAULT 0x12 | 111 | #define UFFD_EVENT_PAGEFAULT 0x12 |
| 87 | #if 0 /* not available yet */ | ||
| 88 | #define UFFD_EVENT_FORK 0x13 | 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 | /* flags for UFFD_EVENT_PAGEFAULT */ | 118 | /* flags for UFFD_EVENT_PAGEFAULT */ |
| 92 | #define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */ | 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 | * Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE | 131 | * Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE |
| 105 | * are to be considered implicitly always enabled in all kernels as | 132 | * are to be considered implicitly always enabled in all kernels as |
| 106 | * long as the uffdio_api.api requested matches UFFD_API. | 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 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) | 159 | #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0) |
| 110 | #define UFFD_FEATURE_EVENT_FORK (1<<1) | 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 | __u64 features; | 167 | __u64 features; |
| 113 | 168 | ||
| 114 | __u64 ioctls; | 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 | * configuration space */ | 79 | * configuration space */ |
| 80 | #define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20) | 80 | #define VIRTIO_PCI_CONFIG_OFF(msix_enabled) ((msix_enabled) ? 24 : 20) |
| 81 | /* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */ | 81 | /* Deprecated: please use VIRTIO_PCI_CONFIG_OFF instead */ |
| 82 | #define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->msix_enabled) | 82 | #define VIRTIO_PCI_CONFIG(dev) VIRTIO_PCI_CONFIG_OFF((dev)->pci_dev->msix_enabled) |
| 83 | 83 | ||
| 84 | /* Virtio ABI version, this must match exactly */ | 84 | /* Virtio ABI version, this must match exactly */ |
| 85 | #define VIRTIO_PCI_ABI_VERSION 0 | 85 | #define VIRTIO_PCI_ABI_VERSION 0 |