]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@gmail.com>
Thu, 29 Mar 2018 03:26:25 +0000 (20:26 -0700)
committerDavid Ahern <dsahern@gmail.com>
Thu, 29 Mar 2018 03:26:25 +0000 (20:26 -0700)
Update kernel headers to commit 5d22d47b9ed9
("Merge branch 'sfc-filter-locking'")

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

index 19817e3d52e8f5bf9926190e0f25bb8e77c30fdf..24bd85fc8a5fd2e411ee5e4e6ac53ee4c2c379d9 100644 (file)
@@ -133,6 +133,7 @@ enum bpf_prog_type {
        BPF_PROG_TYPE_SOCK_OPS,
        BPF_PROG_TYPE_SK_SKB,
        BPF_PROG_TYPE_CGROUP_DEVICE,
+       BPF_PROG_TYPE_SK_MSG,
 };
 
 enum bpf_attach_type {
@@ -143,6 +144,7 @@ enum bpf_attach_type {
        BPF_SK_SKB_STREAM_PARSER,
        BPF_SK_SKB_STREAM_VERDICT,
        BPF_CGROUP_DEVICE,
+       BPF_SK_MSG_VERDICT,
        __MAX_BPF_ATTACH_TYPE
 };
 
@@ -231,6 +233,28 @@ enum bpf_attach_type {
 #define BPF_F_RDONLY           (1U << 3)
 #define BPF_F_WRONLY           (1U << 4)
 
+/* Flag for stack_map, store build_id+offset instead of pointer */
+#define BPF_F_STACK_BUILD_ID   (1U << 5)
+
+enum bpf_stack_build_id_status {
+       /* user space need an empty entry to identify end of a trace */
+       BPF_STACK_BUILD_ID_EMPTY = 0,
+       /* with valid build_id and offset */
+       BPF_STACK_BUILD_ID_VALID = 1,
+       /* couldn't get build_id, fallback to ip */
+       BPF_STACK_BUILD_ID_IP = 2,
+};
+
+#define BPF_BUILD_ID_SIZE 20
+struct bpf_stack_build_id {
+       __s32           status;
+       unsigned char   build_id[BPF_BUILD_ID_SIZE];
+       union {
+               __u64   offset;
+               __u64   ip;
+       };
+};
+
 union bpf_attr {
        struct { /* anonymous struct used by BPF_MAP_CREATE command */
                __u32   map_type;       /* one of enum bpf_map_type */
@@ -696,6 +720,15 @@ union bpf_attr {
  * int bpf_override_return(pt_regs, rc)
  *     @pt_regs: pointer to struct pt_regs
  *     @rc: the return value to set
+ *
+ * int bpf_msg_redirect_map(map, key, flags)
+ *     Redirect msg to a sock in map using key as a lookup key for the
+ *     sock in map.
+ *     @map: pointer to sockmap
+ *     @key: key to lookup sock in map
+ *     @flags: reserved for future use
+ *     Return: SK_PASS
+ *
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -757,7 +790,11 @@ union bpf_attr {
        FN(perf_prog_read_value),       \
        FN(getsockopt),                 \
        FN(override_return),            \
-       FN(sock_ops_cb_flags_set),
+       FN(sock_ops_cb_flags_set),      \
+       FN(msg_redirect_map),           \
+       FN(msg_apply_bytes),            \
+       FN(msg_cork_bytes),             \
+       FN(msg_pull_data),
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call
@@ -920,6 +957,14 @@ enum sk_action {
        SK_PASS,
 };
 
+/* user accessible metadata for SK_MSG packet hook, new fields must
+ * be added to the end of this structure
+ */
+struct sk_msg_md {
+       void *data;
+       void *data_end;
+};
+
 #define BPF_TAG_SIZE   8
 
 struct bpf_prog_info {
index c3fafe295f62ad6b6821ed2e84430f1a6f8631c2..8c36f63e6a38f9117504098a3676d3b1653af962 100644 (file)
@@ -30,6 +30,7 @@
  */
 
 #define ETH_ALEN       6               /* Octets in one ethernet addr   */
+#define ETH_TLEN       2               /* Octets in ethernet type field */
 #define ETH_HLEN       14              /* Total octets in header.       */
 #define ETH_ZLEN       60              /* Min. octets in frame sans FCS */
 #define ETH_DATA_LEN   1500            /* Max. octets in payload        */
index 9c6cedabc91821f3f039607b22e0a11b85ccbca9..23cd82f3e6958e5c48d070b8af6c2ef34be90a80 100644 (file)
@@ -957,4 +957,25 @@ enum {
 
 #define IFLA_TUN_MAX (__IFLA_TUN_MAX - 1)
 
+/* rmnet section */
+
+#define RMNET_FLAGS_INGRESS_DEAGGREGATION         (1U << 0)
+#define RMNET_FLAGS_INGRESS_MAP_COMMANDS          (1U << 1)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4           (1U << 2)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4            (1U << 3)
+
+enum {
+       IFLA_RMNET_UNSPEC,
+       IFLA_RMNET_MUX_ID,
+       IFLA_RMNET_FLAGS,
+       __IFLA_RMNET_MAX,
+};
+
+#define IFLA_RMNET_MAX (__IFLA_RMNET_MAX - 1)
+
+struct ifla_rmnet_flags {
+       __u32   flags;
+       __u32   mask;
+};
+
 #endif /* _LINUX_IF_LINK_H */
index 1e1ed65ccad88a60d0bf8cffe67e01bcbd8ab599..30076fd12386ee8eb4b9c38371a23dc546e113fe 100644 (file)
@@ -99,6 +99,7 @@ typedef __s32 sctp_assoc_t;
 #define SCTP_RECVRCVINFO       32
 #define SCTP_RECVNXTINFO       33
 #define SCTP_DEFAULT_SNDINFO   34
+#define SCTP_AUTH_DEACTIVATE_KEY       35
 
 /* Internal Socket Options. Some of the sctp library functions are
  * implemented using these socket options.
@@ -273,6 +274,18 @@ struct sctp_prinfo {
        __u32 pr_value;
 };
 
+/* 5.3.8 SCTP AUTH Information Structure (SCTP_AUTHINFO)
+ *
+ *   This cmsghdr structure specifies SCTP options for sendmsg().
+ *
+ *   cmsg_level    cmsg_type      cmsg_data[]
+ *   ------------  ------------   -------------------
+ *   IPPROTO_SCTP  SCTP_AUTHINFO  struct sctp_authinfo
+ */
+struct sctp_authinfo {
+       __u16 auth_keynumber;
+};
+
 /*
  *  sinfo_flags: 16 bits (unsigned integer)
  *
@@ -310,7 +323,7 @@ typedef enum sctp_cmsg_type {
 #define SCTP_NXTINFO   SCTP_NXTINFO
        SCTP_PRINFO,            /* 5.3.7 SCTP PR-SCTP Information Structure */
 #define SCTP_PRINFO    SCTP_PRINFO
-       SCTP_AUTHINFO,          /* 5.3.8 SCTP AUTH Information Structure (RESERVED) */
+       SCTP_AUTHINFO,          /* 5.3.8 SCTP AUTH Information Structure */
 #define SCTP_AUTHINFO  SCTP_AUTHINFO
        SCTP_DSTADDRV4,         /* 5.3.9 SCTP Destination IPv4 Address Structure */
 #define SCTP_DSTADDRV4 SCTP_DSTADDRV4
@@ -505,7 +518,12 @@ struct sctp_authkey_event {
        sctp_assoc_t auth_assoc_id;
 };
 
-enum { SCTP_AUTH_NEWKEY = 0, };
+enum {
+       SCTP_AUTH_NEW_KEY,
+#define        SCTP_AUTH_NEWKEY        SCTP_AUTH_NEW_KEY /* compatible with before */
+       SCTP_AUTH_FREE_KEY,
+       SCTP_AUTH_NO_AUTH,
+};
 
 /*
  * 6.1.9. SCTP_SENDER_DRY_EVENT
index 6bf453cf08296e6f7a4da7391bd016e599e76896..5e1e6f3facbaf567c4fd0d967b4891124317d869 100644 (file)
@@ -243,6 +243,7 @@ enum {
        TCP_NLA_DELIVERY_RATE_APP_LMT, /* delivery rate application limited ? */
        TCP_NLA_SNDQ_SIZE,      /* Data (bytes) pending in send queue */
        TCP_NLA_CA_STATE,       /* ca_state of socket */
+       TCP_NLA_SND_SSTHRESH,   /* Slow start size threshold */
 
 };
 
index cd22b9b2f77963dc99fd2ee5013d8a7a0c22eddc..1d92ccb05519d9ead5418b95048dac4a524864a2 100644 (file)
@@ -61,50 +61,6 @@ struct tipc_name_seq {
        __u32 upper;
 };
 
-/* TIPC Address Size, Offset, Mask specification for Z.C.N
- */
-#define TIPC_NODE_BITS          12
-#define TIPC_CLUSTER_BITS       12
-#define TIPC_ZONE_BITS          8
-
-#define TIPC_NODE_OFFSET        0
-#define TIPC_CLUSTER_OFFSET     TIPC_NODE_BITS
-#define TIPC_ZONE_OFFSET        (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
-
-#define TIPC_NODE_SIZE          ((1UL << TIPC_NODE_BITS) - 1)
-#define TIPC_CLUSTER_SIZE       ((1UL << TIPC_CLUSTER_BITS) - 1)
-#define TIPC_ZONE_SIZE          ((1UL << TIPC_ZONE_BITS) - 1)
-
-#define TIPC_NODE_MASK         (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
-#define TIPC_CLUSTER_MASK      (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
-#define TIPC_ZONE_MASK         (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
-
-#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
-
-static __inline__ __u32 tipc_addr(unsigned int zone,
-                             unsigned int cluster,
-                             unsigned int node)
-{
-       return (zone << TIPC_ZONE_OFFSET) |
-               (cluster << TIPC_CLUSTER_OFFSET) |
-               node;
-}
-
-static __inline__ unsigned int tipc_zone(__u32 addr)
-{
-       return addr >> TIPC_ZONE_OFFSET;
-}
-
-static __inline__ unsigned int tipc_cluster(__u32 addr)
-{
-       return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
-}
-
-static __inline__ unsigned int tipc_node(__u32 addr)
-{
-       return addr & TIPC_NODE_MASK;
-}
-
 /*
  * Application-accessible port name types
  */
@@ -117,9 +73,10 @@ static __inline__ unsigned int tipc_node(__u32 addr)
 /*
  * Publication scopes when binding port names and port name sequences
  */
-#define TIPC_ZONE_SCOPE         1
-#define TIPC_CLUSTER_SCOPE      2
-#define TIPC_NODE_SCOPE         3
+enum tipc_scope {
+       TIPC_CLUSTER_SCOPE = 2, /* 0 can also be used */
+       TIPC_NODE_SCOPE    = 3
+};
 
 /*
  * Limiting values for messages
@@ -243,7 +200,7 @@ struct sockaddr_tipc {
 struct tipc_group_req {
        __u32 type;      /* group id */
        __u32 instance;  /* member id */
-       __u32 scope;     /* zone/cluster/node */
+       __u32 scope;     /* cluster/node */
        __u32 flags;
 };
 
@@ -268,4 +225,53 @@ struct tipc_sioc_ln_req {
        __u32 bearer_id;
        char linkname[TIPC_MAX_LINK_NAME];
 };
+
+
+/* The macros and functions below are deprecated:
+ */
+
+#define TIPC_ZONE_SCOPE         1
+
+#define TIPC_NODE_BITS          12
+#define TIPC_CLUSTER_BITS       12
+#define TIPC_ZONE_BITS          8
+
+#define TIPC_NODE_OFFSET        0
+#define TIPC_CLUSTER_OFFSET     TIPC_NODE_BITS
+#define TIPC_ZONE_OFFSET        (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS)
+
+#define TIPC_NODE_SIZE          ((1UL << TIPC_NODE_BITS) - 1)
+#define TIPC_CLUSTER_SIZE       ((1UL << TIPC_CLUSTER_BITS) - 1)
+#define TIPC_ZONE_SIZE          ((1UL << TIPC_ZONE_BITS) - 1)
+
+#define TIPC_NODE_MASK         (TIPC_NODE_SIZE << TIPC_NODE_OFFSET)
+#define TIPC_CLUSTER_MASK      (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET)
+#define TIPC_ZONE_MASK         (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET)
+
+#define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
+
+static __inline__ __u32 tipc_addr(unsigned int zone,
+                             unsigned int cluster,
+                             unsigned int node)
+{
+       return (zone << TIPC_ZONE_OFFSET) |
+               (cluster << TIPC_CLUSTER_OFFSET) |
+               node;
+}
+
+static __inline__ unsigned int tipc_zone(__u32 addr)
+{
+       return addr >> TIPC_ZONE_OFFSET;
+}
+
+static __inline__ unsigned int tipc_cluster(__u32 addr)
+{
+       return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET;
+}
+
+static __inline__ unsigned int tipc_node(__u32 addr)
+{
+       return addr & TIPC_NODE_MASK;
+}
+
 #endif
index 469aa67a5ecbdbae5671379bfb3180a17ec7cb30..0affb682e5e398c7d6fa3f9169c6c803b19f6257 100644 (file)
@@ -114,6 +114,13 @@ enum {
        TIPC_NLA_SOCK_REF,              /* u32 */
        TIPC_NLA_SOCK_CON,              /* nest */
        TIPC_NLA_SOCK_HAS_PUBL,         /* flag */
+       TIPC_NLA_SOCK_STAT,             /* nest */
+       TIPC_NLA_SOCK_TYPE,             /* u32 */
+       TIPC_NLA_SOCK_INO,              /* u32 */
+       TIPC_NLA_SOCK_UID,              /* u32 */
+       TIPC_NLA_SOCK_TIPC_STATE,       /* u32 */
+       TIPC_NLA_SOCK_COOKIE,           /* u64 */
+       TIPC_NLA_SOCK_PAD,              /* flag */
 
        __TIPC_NLA_SOCK_MAX,
        TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
@@ -162,6 +169,8 @@ enum {
        TIPC_NLA_NET_UNSPEC,
        TIPC_NLA_NET_ID,                /* u32 */
        TIPC_NLA_NET_ADDR,              /* u32 */
+       TIPC_NLA_NET_NODEID,            /* u64 */
+       TIPC_NLA_NET_NODEID_W1,         /* u64 */
 
        __TIPC_NLA_NET_MAX,
        TIPC_NLA_NET_MAX = __TIPC_NLA_NET_MAX - 1
@@ -238,6 +247,18 @@ enum {
        TIPC_NLA_CON_MAX = __TIPC_NLA_CON_MAX - 1
 };
 
+/* Nest, socket statistics info */
+enum {
+       TIPC_NLA_SOCK_STAT_RCVQ,        /* u32 */
+       TIPC_NLA_SOCK_STAT_SENDQ,       /* u32 */
+       TIPC_NLA_SOCK_STAT_LINK_CONG,   /* flag */
+       TIPC_NLA_SOCK_STAT_CONN_CONG,   /* flag */
+       TIPC_NLA_SOCK_STAT_DROP,        /* u32 */
+
+       __TIPC_NLA_SOCK_STAT_MAX,
+       TIPC_NLA_SOCK_STAT_MAX = __TIPC_NLA_SOCK_STAT_MAX - 1
+};
+
 /* Nest, link propreties. Valid for link, media and bearer */
 enum {
        TIPC_NLA_PROP_UNSPEC,
diff --git a/include/uapi/linux/tipc_sockets_diag.h b/include/uapi/linux/tipc_sockets_diag.h
new file mode 100644 (file)
index 0000000..21b766e
--- /dev/null
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* AF_TIPC sock_diag interface for querying open sockets */
+
+#ifndef __TIPC_SOCKETS_DIAG_H__
+#define __TIPC_SOCKETS_DIAG_H__
+
+#include <linux/types.h>
+#include <linux/sock_diag.h>
+
+/* Request */
+struct tipc_sock_diag_req {
+       __u8    sdiag_family;   /* must be AF_TIPC */
+       __u8    sdiag_protocol; /* must be 0 */
+       __u16   pad;            /* must be 0 */
+       __u32   tidiag_states;  /* query*/
+};
+#endif /* __TIPC_SOCKETS_DIAG_H__ */