]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@gmail.com>
Thu, 19 Apr 2018 18:10:27 +0000 (11:10 -0700)
committerDavid Ahern <dsahern@gmail.com>
Thu, 19 Apr 2018 18:10:27 +0000 (11:10 -0700)
Update kernel headers to commit 292eba02dbb4
("net-next/hinic: add arm64 support")

Signed-off-by: David Ahern <dsahern@gmail.com>
include/uapi/linux/bpf.h
include/uapi/linux/if_link.h
include/uapi/linux/sctp.h
include/uapi/linux/tcp.h
include/uapi/linux/tipc.h

index 24bd85fc8a5fd2e411ee5e4e6ac53ee4c2c379d9..02b96cba9b6a88819a6ff0920acc367b5704ab91 100644 (file)
@@ -94,6 +94,7 @@ enum bpf_cmd {
        BPF_MAP_GET_FD_BY_ID,
        BPF_OBJ_GET_INFO_BY_FD,
        BPF_PROG_QUERY,
+       BPF_RAW_TRACEPOINT_OPEN,
 };
 
 enum bpf_map_type {
@@ -134,6 +135,8 @@ enum bpf_prog_type {
        BPF_PROG_TYPE_SK_SKB,
        BPF_PROG_TYPE_CGROUP_DEVICE,
        BPF_PROG_TYPE_SK_MSG,
+       BPF_PROG_TYPE_RAW_TRACEPOINT,
+       BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
 };
 
 enum bpf_attach_type {
@@ -145,6 +148,12 @@ enum bpf_attach_type {
        BPF_SK_SKB_STREAM_VERDICT,
        BPF_CGROUP_DEVICE,
        BPF_SK_MSG_VERDICT,
+       BPF_CGROUP_INET4_BIND,
+       BPF_CGROUP_INET6_BIND,
+       BPF_CGROUP_INET4_CONNECT,
+       BPF_CGROUP_INET6_CONNECT,
+       BPF_CGROUP_INET4_POST_BIND,
+       BPF_CGROUP_INET6_POST_BIND,
        __MAX_BPF_ATTACH_TYPE
 };
 
@@ -294,6 +303,11 @@ union bpf_attr {
                __u32           prog_flags;
                char            prog_name[BPF_OBJ_NAME_LEN];
                __u32           prog_ifindex;   /* ifindex of netdev to prep for */
+               /* For some prog types expected attach type must be known at
+                * load time to verify attach type specific parts of prog
+                * (context accesses, allowed helpers, etc).
+                */
+               __u32           expected_attach_type;
        };
 
        struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -344,6 +358,11 @@ union bpf_attr {
                __aligned_u64   prog_ids;
                __u32           prog_cnt;
        } query;
+
+       struct {
+               __u64 name;
+               __u32 prog_fd;
+       } raw_tracepoint;
 } __attribute__((aligned(8)));
 
 /* BPF helper function descriptions:
@@ -729,6 +748,13 @@ union bpf_attr {
  *     @flags: reserved for future use
  *     Return: SK_PASS
  *
+ * int bpf_bind(ctx, addr, addr_len)
+ *     Bind socket to address. Only binding to IP is supported, no port can be
+ *     set in addr.
+ *     @ctx: pointer to context of type bpf_sock_addr
+ *     @addr: pointer to struct sockaddr to bind socket to
+ *     @addr_len: length of sockaddr structure
+ *     Return: 0 on success or negative error code
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -794,7 +820,8 @@ union bpf_attr {
        FN(msg_redirect_map),           \
        FN(msg_apply_bytes),            \
        FN(msg_cork_bytes),             \
-       FN(msg_pull_data),
+       FN(msg_pull_data),              \
+       FN(bind),
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call
@@ -923,6 +950,15 @@ struct bpf_sock {
        __u32 protocol;
        __u32 mark;
        __u32 priority;
+       __u32 src_ip4;          /* Allows 1,2,4-byte read.
+                                * Stored in network byte order.
+                                */
+       __u32 src_ip6[4];       /* Allows 1,2,4-byte read.
+                                * Stored in network byte order.
+                                */
+       __u32 src_port;         /* Allows 4-byte read.
+                                * Stored in host byte order
+                                */
 };
 
 #define XDP_PACKET_HEADROOM 256
@@ -998,6 +1034,26 @@ struct bpf_map_info {
        __u64 netns_ino;
 } __attribute__((aligned(8)));
 
+/* User bpf_sock_addr struct to access socket fields and sockaddr struct passed
+ * by user and intended to be used by socket (e.g. to bind to, depends on
+ * attach attach type).
+ */
+struct bpf_sock_addr {
+       __u32 user_family;      /* Allows 4-byte read, but no write. */
+       __u32 user_ip4;         /* Allows 1,2,4-byte read and 4-byte write.
+                                * Stored in network byte order.
+                                */
+       __u32 user_ip6[4];      /* Allows 1,2,4-byte read an 4-byte write.
+                                * Stored in network byte order.
+                                */
+       __u32 user_port;        /* Allows 4-byte read and write.
+                                * Stored in network byte order
+                                */
+       __u32 family;           /* Allows 4-byte read, but no write */
+       __u32 type;             /* Allows 4-byte read, but no write */
+       __u32 protocol;         /* Allows 4-byte read, but no write */
+};
+
 /* User bpf_sock_ops struct to access socket values and specify request ops
  * and their replies.
  * Some of this fields are in network (bigendian) byte order and may need
@@ -1152,4 +1208,8 @@ struct bpf_cgroup_dev_ctx {
        __u32 minor;
 };
 
+struct bpf_raw_tracepoint_args {
+       __u64 args[0];
+};
+
 #endif /* __LINUX_BPF_H__ */
index 23cd82f3e6958e5c48d070b8af6c2ef34be90a80..9318ecd0c462eca0dd02a412c3b0f6c65790ae54 100644 (file)
@@ -514,6 +514,7 @@ enum {
        IFLA_VXLAN_COLLECT_METADATA,
        IFLA_VXLAN_LABEL,
        IFLA_VXLAN_GPE,
+       IFLA_VXLAN_TTL_INHERIT,
        __IFLA_VXLAN_MAX
 };
 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
index 30076fd12386ee8eb4b9c38371a23dc546e113fe..2d95ddc1bdcf7f2068117406964c71618f831976 100644 (file)
@@ -127,6 +127,7 @@ typedef __s32 sctp_assoc_t;
 #define SCTP_STREAM_SCHEDULER  123
 #define SCTP_STREAM_SCHEDULER_VALUE    124
 #define SCTP_INTERLEAVING_SUPPORTED    125
+#define SCTP_SENDMSG_CONNECT   126
 
 /* PR-SCTP policies */
 #define SCTP_PR_SCTP_NONE      0x0000
index 5e1e6f3facbaf567c4fd0d967b4891124317d869..fc0e26509d0ec92dbfb15261d544f91102b729e3 100644 (file)
@@ -224,6 +224,9 @@ struct tcp_info {
        __u64   tcpi_busy_time;      /* Time (usec) busy sending data */
        __u64   tcpi_rwnd_limited;   /* Time (usec) limited by receive window */
        __u64   tcpi_sndbuf_limited; /* Time (usec) limited by send buffer */
+
+       __u32   tcpi_delivered;
+       __u32   tcpi_delivered_ce;
 };
 
 /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
@@ -244,6 +247,8 @@ enum {
        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 */
+       TCP_NLA_DELIVERED,      /* Data pkts delivered incl. out-of-order */
+       TCP_NLA_DELIVERED_CE,   /* Like above but only ones w/ CE marks */
 
 };
 
index 1d92ccb05519d9ead5418b95048dac4a524864a2..88a7251bcbf7c63fe62d60c4094a6306edca9770 100644 (file)
  * TIPC addressing primitives
  */
 
-struct tipc_portid {
+struct tipc_socket_addr {
        __u32 ref;
        __u32 node;
 };
 
-struct tipc_name {
+struct tipc_service_addr {
        __u32 type;
        __u32 instance;
 };
 
-struct tipc_name_seq {
+struct tipc_service_range {
        __u32 type;
        __u32 lower;
        __u32 upper;
 };
 
 /*
- * Application-accessible port name types
+ * Application-accessible service types
  */
 
-#define TIPC_CFG_SRV           0       /* configuration service name type */
-#define TIPC_TOP_SRV           1       /* topology service name type */
-#define TIPC_LINK_STATE                2       /* link state name type */
-#define TIPC_RESERVED_TYPES    64      /* lowest user-publishable name type */
+#define TIPC_NODE_STATE                0       /* node state service type */
+#define TIPC_TOP_SRV           1       /* topology server service type */
+#define TIPC_LINK_STATE                2       /* link state service type */
+#define TIPC_RESERVED_TYPES    64      /* lowest user-allowed service type */
 
 /*
- * Publication scopes when binding port names and port name sequences
+ * Publication scopes when binding service / service range
  */
 enum tipc_scope {
        TIPC_CLUSTER_SCOPE = 2, /* 0 can also be used */
@@ -108,28 +108,28 @@ enum tipc_scope {
  * TIPC topology subscription service definitions
  */
 
-#define TIPC_SUB_PORTS         0x01    /* filter for port availability */
-#define TIPC_SUB_SERVICE       0x02    /* filter for service availability */
-#define TIPC_SUB_CANCEL                0x04    /* cancel a subscription */
+#define TIPC_SUB_PORTS          0x01    /* filter: evt at each match */
+#define TIPC_SUB_SERVICE        0x02    /* filter: evt at first up/last down */
+#define TIPC_SUB_CANCEL         0x04    /* filter: cancel a subscription */
 
 #define TIPC_WAIT_FOREVER      (~0)    /* timeout for permanent subscription */
 
 struct tipc_subscr {
-       struct tipc_name_seq seq;       /* name sequence of interest */
+       struct tipc_service_range seq;  /* range of interest */
        __u32 timeout;                  /* subscription duration (in ms) */
        __u32 filter;                   /* bitmask of filter options */
        char usr_handle[8];             /* available for subscriber use */
 };
 
 #define TIPC_PUBLISHED         1       /* publication event */
-#define TIPC_WITHDRAWN         2       /* withdraw event */
+#define TIPC_WITHDRAWN         2       /* withdrawal event */
 #define TIPC_SUBSCR_TIMEOUT    3       /* subscription timeout event */
 
 struct tipc_event {
        __u32 event;                    /* event type */
-       __u32 found_lower;              /* matching name seq instances */
-       __u32 found_upper;              /*    "      "    "     "      */
-       struct tipc_portid port;        /* associated port */
+       __u32 found_lower;              /* matching range */
+       __u32 found_upper;              /*    "      "    */
+       struct tipc_socket_addr port;   /* associated socket */
        struct tipc_subscr s;           /* associated subscription */
 };
 
@@ -149,20 +149,20 @@ struct tipc_event {
 #define SOL_TIPC       271
 #endif
 
-#define TIPC_ADDR_NAMESEQ      1
-#define TIPC_ADDR_MCAST                1
-#define TIPC_ADDR_NAME         2
-#define TIPC_ADDR_ID           3
+#define TIPC_ADDR_MCAST         1
+#define TIPC_SERVICE_RANGE      1
+#define TIPC_SERVICE_ADDR       2
+#define TIPC_SOCKET_ADDR        3
 
 struct sockaddr_tipc {
        unsigned short family;
        unsigned char  addrtype;
        signed   char  scope;
        union {
-               struct tipc_portid id;
-               struct tipc_name_seq nameseq;
+               struct tipc_socket_addr id;
+               struct tipc_service_range nameseq;
                struct {
-                       struct tipc_name name;
+                       struct tipc_service_addr name;
                        __u32 domain;
                } name;
        } addr;
@@ -216,7 +216,7 @@ struct tipc_group_req {
 #define TIPC_MAX_MEDIA_NAME    16
 #define TIPC_MAX_IF_NAME       16
 #define TIPC_MAX_BEARER_NAME   32
-#define TIPC_MAX_LINK_NAME     60
+#define TIPC_MAX_LINK_NAME     68
 
 #define SIOCGETLINKNAME                SIOCPROTOPRIVATE
 
@@ -230,8 +230,13 @@ struct tipc_sioc_ln_req {
 /* The macros and functions below are deprecated:
  */
 
+#define TIPC_CFG_SRV           0
 #define TIPC_ZONE_SCOPE         1
 
+#define TIPC_ADDR_NAMESEQ      1
+#define TIPC_ADDR_NAME         2
+#define TIPC_ADDR_ID           3
+
 #define TIPC_NODE_BITS          12
 #define TIPC_CLUSTER_BITS       12
 #define TIPC_ZONE_BITS          8
@@ -250,6 +255,10 @@ struct tipc_sioc_ln_req {
 
 #define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK)
 
+#define tipc_portid tipc_socket_addr
+#define tipc_name tipc_service_addr
+#define tipc_name_seq tipc_service_range
+
 static __inline__ __u32 tipc_addr(unsigned int zone,
                              unsigned int cluster,
                              unsigned int node)