]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
Update kernel headers and import tls.h
authorDavid Ahern <dsahern@gmail.com>
Tue, 15 Oct 2019 02:54:12 +0000 (19:54 -0700)
committerDavid Ahern <dsahern@gmail.com>
Tue, 15 Oct 2019 03:07:20 +0000 (20:07 -0700)
Update kernel headers to commit:
    85a83a8fca7f ("Merge branch 'PTP-driver-refactoring-for-SJA1105-DSA'")

and add tls.h.

Signed-off-by: David Ahern <dsahern@gmail.com>
include/uapi/linux/bpf.h
include/uapi/linux/sctp.h
include/uapi/linux/tls.h [new file with mode: 0644]

index f7a7553005ab2cc48468d3bdf52399673e55dfb6..d2d960a2cee5384505612af66caa9f0c9197c4f9 100644 (file)
@@ -794,7 +794,7 @@ union bpf_attr {
  *             A 64-bit integer containing the current GID and UID, and
  *             created as such: *current_gid* **<< 32 \|** *current_uid*.
  *
- * int bpf_get_current_comm(char *buf, u32 size_of_buf)
+ * int bpf_get_current_comm(void *buf, u32 size_of_buf)
  *     Description
  *             Copy the **comm** attribute of the current task into *buf* of
  *             *size_of_buf*. The **comm** attribute contains the name of
@@ -1023,7 +1023,7 @@ union bpf_attr {
  *             The realm of the route for the packet associated to *skb*, or 0
  *             if none was found.
  *
- * int bpf_perf_event_output(struct pt_regs *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
  *     Description
  *             Write raw *data* blob into a special BPF perf event held by
  *             *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -1068,7 +1068,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_load_bytes(const struct sk_buff *skb, u32 offset, void *to, u32 len)
+ * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
  *     Description
  *             This helper was provided as an easy way to load data from a
  *             packet. It can be used to load *len* bytes from *offset* from
@@ -1085,7 +1085,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_get_stackid(struct pt_regs *ctx, struct bpf_map *map, u64 flags)
+ * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
  *     Description
  *             Walk a user or a kernel stack and return its id. To achieve
  *             this, the helper needs *ctx*, which is a pointer to the context
@@ -1154,7 +1154,7 @@ union bpf_attr {
  *             The checksum result, or a negative error code in case of
  *             failure.
  *
- * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)
+ * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
  *     Description
  *             Retrieve tunnel options metadata for the packet associated to
  *             *skb*, and store the raw tunnel option data to the buffer *opt*
@@ -1172,7 +1172,7 @@ union bpf_attr {
  *     Return
  *             The size of the option data retrieved.
  *
- * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)
+ * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
  *     Description
  *             Set tunnel options metadata for the packet associated to *skb*
  *             to the option data contained in the raw buffer *opt* of *size*.
@@ -1511,7 +1511,7 @@ union bpf_attr {
  *     Return
  *             0
  *
- * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)
+ * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
  *     Description
  *             Emulate a call to **setsockopt()** on the socket associated to
  *             *bpf_socket*, which must be a full socket. The *level* at
@@ -1595,7 +1595,7 @@ union bpf_attr {
  *     Return
  *             **XDP_REDIRECT** on success, or **XDP_ABORTED** on error.
  *
- * int bpf_sk_redirect_map(struct bpf_map *map, u32 key, u64 flags)
+ * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
  *     Description
  *             Redirect the packet to the socket referenced by *map* (of type
  *             **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@@ -1715,7 +1715,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)
+ * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
  *     Description
  *             Emulate a call to **getsockopt()** on the socket associated to
  *             *bpf_socket*, which must be a full socket. The *level* at
@@ -1947,7 +1947,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_get_stack(struct pt_regs *regs, void *buf, u32 size, u64 flags)
+ * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
  *     Description
  *             Return a user or a kernel stack in bpf program provided buffer.
  *             To achieve this, the helper needs *ctx*, which is a pointer
@@ -1980,7 +1980,7 @@ union bpf_attr {
  *             A non-negative value equal to or less than *size* on success,
  *             or a negative error in case of failure.
  *
- * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
+ * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
  *     Description
  *             This helper is similar to **bpf_skb_load_bytes**\ () in that
  *             it provides an easy way to load *len* bytes from *offset*
@@ -2033,7 +2033,7 @@ union bpf_attr {
  *             * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
  *               packet is not forwarded or needs assist from full stack
  *
- * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
  *     Description
  *             Add an entry to, or update a sockhash *map* referencing sockets.
  *             The *skops* is used as a new value for the entry associated to
@@ -2392,7 +2392,7 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
+ * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
  *     Description
  *             For socket policies, insert *len* bytes into *msg* at offset
  *             *start*.
@@ -2408,9 +2408,9 @@ union bpf_attr {
  *     Return
  *             0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags)
+ * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
  *     Description
- *             Will remove *pop* bytes from a *msg* starting at byte *start*.
+ *             Will remove *len* bytes from a *msg* starting at byte *start*.
  *             This may result in **ENOMEM** errors under certain situations if
  *             an allocation and copy are required due to a full ring buffer.
  *             However, the helper will try to avoid doing the allocation
@@ -2505,7 +2505,7 @@ union bpf_attr {
  *             A **struct bpf_tcp_sock** pointer on success, or **NULL** in
  *             case of failure.
  *
- * int bpf_skb_ecn_set_ce(struct sk_buf *skb)
+ * int bpf_skb_ecn_set_ce(struct sk_buff *skb)
  *     Description
  *             Set ECN (Explicit Congestion Notification) field of IP header
  *             to **CE** (Congestion Encountered) if current value is **ECT**
index 0d4c1507a169da28065ef5e9ef6edcc2a4101a42..0537a582926a98a37f46c0a4ee0d3776d78dbe2f 100644 (file)
@@ -449,6 +449,16 @@ struct sctp_send_failed {
        __u8 ssf_data[0];
 };
 
+struct sctp_send_failed_event {
+       __u16 ssf_type;
+       __u16 ssf_flags;
+       __u32 ssf_length;
+       __u32 ssf_error;
+       struct sctp_sndinfo ssfe_info;
+       sctp_assoc_t ssf_assoc_id;
+       __u8 ssf_data[0];
+};
+
 /*
  *   ssf_flags: 16 bits (unsigned integer)
  *
@@ -605,6 +615,7 @@ struct sctp_event_subscribe {
        __u8 sctp_stream_reset_event;
        __u8 sctp_assoc_reset_event;
        __u8 sctp_stream_change_event;
+       __u8 sctp_send_failure_event_event;
 };
 
 /*
@@ -632,6 +643,7 @@ union sctp_notification {
        struct sctp_stream_reset_event sn_strreset_event;
        struct sctp_assoc_reset_event sn_assocreset_event;
        struct sctp_stream_change_event sn_strchange_event;
+       struct sctp_send_failed_event sn_send_failed_event;
 };
 
 /* Section 5.3.1
@@ -667,7 +679,9 @@ enum sctp_sn_type {
 #define SCTP_ASSOC_RESET_EVENT         SCTP_ASSOC_RESET_EVENT
        SCTP_STREAM_CHANGE_EVENT,
 #define SCTP_STREAM_CHANGE_EVENT       SCTP_STREAM_CHANGE_EVENT
-       SCTP_SN_TYPE_MAX        = SCTP_STREAM_CHANGE_EVENT,
+       SCTP_SEND_FAILED_EVENT,
+#define SCTP_SEND_FAILED_EVENT         SCTP_SEND_FAILED_EVENT
+       SCTP_SN_TYPE_MAX        = SCTP_SEND_FAILED_EVENT,
 #define SCTP_SN_TYPE_MAX               SCTP_SN_TYPE_MAX
 };
 
diff --git a/include/uapi/linux/tls.h b/include/uapi/linux/tls.h
new file mode 100644 (file)
index 0000000..3b67540
--- /dev/null
@@ -0,0 +1,127 @@
+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
+/*
+ * Copyright (c) 2016-2017, Mellanox Technologies. All rights reserved.
+ *
+ * This software is available to you under a choice of one of two
+ * licenses.  You may choose to be licensed under the terms of the GNU
+ * General Public License (GPL) Version 2, available from the file
+ * COPYING in the main directory of this source tree, or the
+ * OpenIB.org BSD license below:
+ *
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted provided that the following
+ *     conditions are met:
+ *
+ *      - Redistributions of source code must retain the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer.
+ *
+ *      - Redistributions in binary form must reproduce the above
+ *        copyright notice, this list of conditions and the following
+ *        disclaimer in the documentation and/or other materials
+ *        provided with the distribution.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef _LINUX_TLS_H
+#define _LINUX_TLS_H
+
+#include <linux/types.h>
+
+/* TLS socket options */
+#define TLS_TX                 1       /* Set transmit parameters */
+#define TLS_RX                 2       /* Set receive parameters */
+
+/* Supported versions */
+#define TLS_VERSION_MINOR(ver) ((ver) & 0xFF)
+#define TLS_VERSION_MAJOR(ver) (((ver) >> 8) & 0xFF)
+
+#define TLS_VERSION_NUMBER(id) ((((id##_VERSION_MAJOR) & 0xFF) << 8) | \
+                                ((id##_VERSION_MINOR) & 0xFF))
+
+#define TLS_1_2_VERSION_MAJOR  0x3
+#define TLS_1_2_VERSION_MINOR  0x3
+#define TLS_1_2_VERSION                TLS_VERSION_NUMBER(TLS_1_2)
+
+#define TLS_1_3_VERSION_MAJOR  0x3
+#define TLS_1_3_VERSION_MINOR  0x4
+#define TLS_1_3_VERSION                TLS_VERSION_NUMBER(TLS_1_3)
+
+/* Supported ciphers */
+#define TLS_CIPHER_AES_GCM_128                         51
+#define TLS_CIPHER_AES_GCM_128_IV_SIZE                 8
+#define TLS_CIPHER_AES_GCM_128_KEY_SIZE                16
+#define TLS_CIPHER_AES_GCM_128_SALT_SIZE               4
+#define TLS_CIPHER_AES_GCM_128_TAG_SIZE                16
+#define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE            8
+
+#define TLS_CIPHER_AES_GCM_256                         52
+#define TLS_CIPHER_AES_GCM_256_IV_SIZE                 8
+#define TLS_CIPHER_AES_GCM_256_KEY_SIZE                32
+#define TLS_CIPHER_AES_GCM_256_SALT_SIZE               4
+#define TLS_CIPHER_AES_GCM_256_TAG_SIZE                16
+#define TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE            8
+
+#define TLS_CIPHER_AES_CCM_128                         53
+#define TLS_CIPHER_AES_CCM_128_IV_SIZE                 8
+#define TLS_CIPHER_AES_CCM_128_KEY_SIZE                16
+#define TLS_CIPHER_AES_CCM_128_SALT_SIZE               4
+#define TLS_CIPHER_AES_CCM_128_TAG_SIZE                16
+#define TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE            8
+
+#define TLS_SET_RECORD_TYPE    1
+#define TLS_GET_RECORD_TYPE    2
+
+struct tls_crypto_info {
+       __u16 version;
+       __u16 cipher_type;
+};
+
+struct tls12_crypto_info_aes_gcm_128 {
+       struct tls_crypto_info info;
+       unsigned char iv[TLS_CIPHER_AES_GCM_128_IV_SIZE];
+       unsigned char key[TLS_CIPHER_AES_GCM_128_KEY_SIZE];
+       unsigned char salt[TLS_CIPHER_AES_GCM_128_SALT_SIZE];
+       unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE];
+};
+
+struct tls12_crypto_info_aes_gcm_256 {
+       struct tls_crypto_info info;
+       unsigned char iv[TLS_CIPHER_AES_GCM_256_IV_SIZE];
+       unsigned char key[TLS_CIPHER_AES_GCM_256_KEY_SIZE];
+       unsigned char salt[TLS_CIPHER_AES_GCM_256_SALT_SIZE];
+       unsigned char rec_seq[TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE];
+};
+
+struct tls12_crypto_info_aes_ccm_128 {
+       struct tls_crypto_info info;
+       unsigned char iv[TLS_CIPHER_AES_CCM_128_IV_SIZE];
+       unsigned char key[TLS_CIPHER_AES_CCM_128_KEY_SIZE];
+       unsigned char salt[TLS_CIPHER_AES_CCM_128_SALT_SIZE];
+       unsigned char rec_seq[TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE];
+};
+
+enum {
+       TLS_INFO_UNSPEC,
+       TLS_INFO_VERSION,
+       TLS_INFO_CIPHER,
+       TLS_INFO_TXCONF,
+       TLS_INFO_RXCONF,
+       __TLS_INFO_MAX,
+};
+#define TLS_INFO_MAX (__TLS_INFO_MAX - 1)
+
+#define TLS_CONF_BASE 1
+#define TLS_CONF_SW 2
+#define TLS_CONF_HW 3
+#define TLS_CONF_HW_RECORD 4
+
+#endif /* _LINUX_TLS_H */