]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@gmail.com>
Sat, 22 Dec 2018 15:36:52 +0000 (07:36 -0800)
committerDavid Ahern <dsahern@gmail.com>
Sat, 22 Dec 2018 15:36:52 +0000 (07:36 -0800)
Update kernel headers to commit
ce28bb445388 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net")

Signed-off-by: David Ahern <dsahern@gmail.com>
include/uapi/linux/bpf.h
include/uapi/linux/btf.h
include/uapi/linux/if_tunnel.h
include/uapi/linux/in.h
include/uapi/linux/netfilter.h
include/uapi/linux/netfilter/ipset/ip_set.h
include/uapi/linux/netfilter_ipv4.h
include/uapi/linux/netfilter_ipv6.h
include/uapi/linux/netlink.h

index 960a7f0a4d99b1e816151b1723c544b7ec6e93ff..fb541e160509331ee4b79f34502bb9aa27d13e72 100644 (file)
@@ -133,6 +133,14 @@ enum bpf_map_type {
        BPF_MAP_TYPE_STACK,
 };
 
+/* Note that tracing related programs such as
+ * BPF_PROG_TYPE_{KPROBE,TRACEPOINT,PERF_EVENT,RAW_TRACEPOINT}
+ * are not subject to a stable API since kernel internal data
+ * structures can change from release to release and may
+ * therefore break existing tracing BPF programs. Tracing BPF
+ * programs correspond to /a/ specific kernel which is to be
+ * analyzed, and not /a/ specific kernel /and/ all future ones.
+ */
 enum bpf_prog_type {
        BPF_PROG_TYPE_UNSPEC,
        BPF_PROG_TYPE_SOCKET_FILTER,
@@ -343,7 +351,7 @@ union bpf_attr {
                __u32           log_level;      /* verbosity level of verifier */
                __u32           log_size;       /* size of user buffer */
                __aligned_u64   log_buf;        /* user supplied buffer */
-               __u32           kern_version;   /* checked when prog_type=kprobe */
+               __u32           kern_version;   /* not used */
                __u32           prog_flags;
                char            prog_name[BPF_OBJ_NAME_LEN];
                __u32           prog_ifindex;   /* ifindex of netdev to prep for */
@@ -2657,6 +2665,7 @@ struct sk_msg_md {
        __u32 local_ip6[4];     /* Stored in network byte order */
        __u32 remote_port;      /* Stored in network byte order */
        __u32 local_port;       /* stored in host byte order */
+       __u32 size;             /* Total size of sk_msg */
 };
 
 struct sk_reuseport_md {
@@ -2717,6 +2726,8 @@ struct bpf_prog_info {
        __u32 nr_jited_line_info;
        __u32 line_info_rec_size;
        __u32 jited_line_info_rec_size;
+       __u32 nr_prog_tags;
+       __aligned_u64 prog_tags;
 } __attribute__((aligned(8)));
 
 struct bpf_map_info {
index f43d5a8e13d319fd5750dec885aa6c79a8068e96..cb4cf8cc7c84f01ad5afc915acdb60ad0dd21005 100644 (file)
@@ -34,7 +34,9 @@ struct btf_type {
         * bits  0-15: vlen (e.g. # of struct's members)
         * bits 16-23: unused
         * bits 24-27: kind (e.g. int, ptr, array...etc)
-        * bits 28-31: unused
+        * bits 28-30: unused
+        * bit     31: kind_flag, currently used by
+        *             struct, union and fwd
         */
        __u32 info;
        /* "size" is used by INT, ENUM, STRUCT and UNION.
@@ -52,6 +54,7 @@ struct btf_type {
 
 #define BTF_INFO_KIND(info)    (((info) >> 24) & 0x0f)
 #define BTF_INFO_VLEN(info)    ((info) & 0xffff)
+#define BTF_INFO_KFLAG(info)   ((info) >> 31)
 
 #define BTF_KIND_UNKN          0       /* Unknown      */
 #define BTF_KIND_INT           1       /* Integer      */
@@ -110,9 +113,22 @@ struct btf_array {
 struct btf_member {
        __u32   name_off;
        __u32   type;
-       __u32   offset; /* offset in bits */
+       /* If the type info kind_flag is set, the btf_member offset
+        * contains both member bitfield size and bit offset. The
+        * bitfield size is set for bitfield members. If the type
+        * info kind_flag is not set, the offset contains only bit
+        * offset.
+        */
+       __u32   offset;
 };
 
+/* If the struct/union type info kind_flag is set, the
+ * following two macros are used to access bitfield_size
+ * and bit_offset from btf_member.offset.
+ */
+#define BTF_MEMBER_BITFIELD_SIZE(val)  ((val) >> 24)
+#define BTF_MEMBER_BIT_OFFSET(val)     ((val) & 0xffffff)
+
 /* BTF_KIND_FUNC_PROTO is followed by multiple "struct btf_param".
  * The exact number of btf_param is stored in the vlen (of the
  * info in "struct btf_type").
index ecdc76669cfdde02f37158cbec5fbc681b3fc6ba..c7f0a5e6adf15996efcaecc951ebb448e9a1acc6 100644 (file)
@@ -160,4 +160,24 @@ enum {
 };
 
 #define IFLA_VTI_MAX   (__IFLA_VTI_MAX - 1)
+
+#define TUNNEL_CSUM            __cpu_to_be16(0x01)
+#define TUNNEL_ROUTING         __cpu_to_be16(0x02)
+#define TUNNEL_KEY             __cpu_to_be16(0x04)
+#define TUNNEL_SEQ             __cpu_to_be16(0x08)
+#define TUNNEL_STRICT          __cpu_to_be16(0x10)
+#define TUNNEL_REC             __cpu_to_be16(0x20)
+#define TUNNEL_VERSION         __cpu_to_be16(0x40)
+#define TUNNEL_NO_KEY          __cpu_to_be16(0x80)
+#define TUNNEL_DONT_FRAGMENT    __cpu_to_be16(0x0100)
+#define TUNNEL_OAM             __cpu_to_be16(0x0200)
+#define TUNNEL_CRIT_OPT                __cpu_to_be16(0x0400)
+#define TUNNEL_GENEVE_OPT      __cpu_to_be16(0x0800)
+#define TUNNEL_VXLAN_OPT       __cpu_to_be16(0x1000)
+#define TUNNEL_NOCACHE         __cpu_to_be16(0x2000)
+#define TUNNEL_ERSPAN_OPT      __cpu_to_be16(0x4000)
+
+#define TUNNEL_OPTIONS_PRESENT \
+               (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT)
+
 #endif /* _IF_TUNNEL_H_ */
index a4f143b301582440914561504c630ca2d3d2c7fe..92242d20f9d0634a2ffcc9c5cf81ad1d273c95ef 100644 (file)
@@ -266,10 +266,14 @@ struct sockaddr_in {
 
 #define        IN_CLASSD(a)            ((((long int) (a)) & 0xf0000000) == 0xe0000000)
 #define        IN_MULTICAST(a)         IN_CLASSD(a)
-#define IN_MULTICAST_NET       0xF0000000
+#define        IN_MULTICAST_NET        0xe0000000
 
-#define        IN_EXPERIMENTAL(a)      ((((long int) (a)) & 0xf0000000) == 0xf0000000)
-#define        IN_BADCLASS(a)          IN_EXPERIMENTAL((a))
+#define        IN_BADCLASS(a)          ((((long int) (a) ) == 0xffffffff)
+#define        IN_EXPERIMENTAL(a)      IN_BADCLASS((a))
+
+#define        IN_CLASSE(a)            ((((long int) (a)) & 0xf0000000) == 0xf0000000)
+#define        IN_CLASSE_NET           0xffffffff
+#define        IN_CLASSE_NSHIFT        0
 
 /* Address to accept any incoming messages. */
 #define        INADDR_ANY              ((unsigned long int) 0x00000000)
index 36378a0a8139979f8208cc96bedfcb7cd53a99bf..899be98623683bb4e42333de326446f25a54ba19 100644 (file)
 #define NF_DROP_ERR(x) (((-x) << 16) | NF_DROP)
 
 /* only for userspace compatibility */
-/* Generic cache responses from hook functions.
-   <= 0x2000 is used for protocol-flags. */
-#define NFC_UNKNOWN 0x4000
-#define NFC_ALTERED 0x8000
 
 /* NF_VERDICT_BITS should be 8 now, but userspace might break if this changes */
 #define NF_VERDICT_BITS 16
index 13eeada594dbb751df7acc819ea9777cefdeb559..153c517a5430844648ed5fca97663154ad181aa8 100644 (file)
@@ -13,8 +13,9 @@
 
 #include <linux/types.h>
 
-/* The protocol version */
-#define IPSET_PROTOCOL         6
+/* The protocol versions */
+#define IPSET_PROTOCOL         7
+#define IPSET_PROTOCOL_MIN     6
 
 /* The max length of strings including NUL: set and type identifiers */
 #define IPSET_MAXNAMELEN       32
@@ -38,17 +39,19 @@ enum ipset_cmd {
        IPSET_CMD_TEST,         /* 11: Test an element in a set */
        IPSET_CMD_HEADER,       /* 12: Get set header data only */
        IPSET_CMD_TYPE,         /* 13: Get set type */
+       IPSET_CMD_GET_BYNAME,   /* 14: Get set index by name */
+       IPSET_CMD_GET_BYINDEX,  /* 15: Get set name by index */
        IPSET_MSG_MAX,          /* Netlink message commands */
 
        /* Commands in userspace: */
-       IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 14: Enter restore mode */
-       IPSET_CMD_HELP,         /* 15: Get help */
-       IPSET_CMD_VERSION,      /* 16: Get program version */
-       IPSET_CMD_QUIT,         /* 17: Quit from interactive mode */
+       IPSET_CMD_RESTORE = IPSET_MSG_MAX, /* 16: Enter restore mode */
+       IPSET_CMD_HELP,         /* 17: Get help */
+       IPSET_CMD_VERSION,      /* 18: Get program version */
+       IPSET_CMD_QUIT,         /* 19: Quit from interactive mode */
 
        IPSET_CMD_MAX,
 
-       IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 18: Commit buffered commands */
+       IPSET_CMD_COMMIT = IPSET_CMD_MAX, /* 20: Commit buffered commands */
 };
 
 /* Attributes at command level */
@@ -66,6 +69,7 @@ enum {
        IPSET_ATTR_LINENO,      /* 9: Restore lineno */
        IPSET_ATTR_PROTOCOL_MIN, /* 10: Minimal supported version number */
        IPSET_ATTR_REVISION_MIN = IPSET_ATTR_PROTOCOL_MIN, /* type rev min */
+       IPSET_ATTR_INDEX,       /* 11: Kernel index of set */
        __IPSET_ATTR_CMD_MAX,
 };
 #define IPSET_ATTR_CMD_MAX     (__IPSET_ATTR_CMD_MAX - 1)
@@ -223,6 +227,7 @@ enum ipset_adt {
 
 /* Sets are identified by an index in kernel space. Tweak with ip_set_id_t
  * and IPSET_INVALID_ID if you want to increase the max number of sets.
+ * Also, IPSET_ATTR_INDEX must be changed.
  */
 typedef __u16 ip_set_id_t;
 
index 074e2c8b923adbfbf7fabd586d2d95fe81791192..96979e37849995a1074ab534c606a4082f6a9d40 100644 (file)
 
 #include <limits.h> /* for INT_MIN, INT_MAX */
 
-/* IP Cache bits. */
-/* Src IP address. */
-#define NFC_IP_SRC             0x0001
-/* Dest IP address. */
-#define NFC_IP_DST             0x0002
-/* Input device. */
-#define NFC_IP_IF_IN           0x0004
-/* Output device. */
-#define NFC_IP_IF_OUT          0x0008
-/* TOS. */
-#define NFC_IP_TOS             0x0010
-/* Protocol. */
-#define NFC_IP_PROTO           0x0020
-/* IP options. */
-#define NFC_IP_OPTIONS         0x0040
-/* Frag & flags. */
-#define NFC_IP_FRAG            0x0080
-
-/* Per-protocol information: only matters if proto match. */
-/* TCP flags. */
-#define NFC_IP_TCPFLAGS                0x0100
-/* Source port. */
-#define NFC_IP_SRC_PT          0x0200
-/* Dest port. */
-#define NFC_IP_DST_PT          0x0400
-/* Something else about the proto */
-#define NFC_IP_PROTO_UNKNOWN   0x2000
-
 /* IP Hooks */
 /* After promisc drops, checksum checks. */
 #define NF_IP_PRE_ROUTING      0
index 92701fe853ada40cf0c64a54c1a35783704bb86d..eedf7a2d54af8ce7f754af64b5b6a97777cb163f 100644 (file)
 
 #include <limits.h> /* for INT_MIN, INT_MAX */
 
-/* IP Cache bits. */
-/* Src IP address. */
-#define NFC_IP6_SRC              0x0001
-/* Dest IP address. */
-#define NFC_IP6_DST              0x0002
-/* Input device. */
-#define NFC_IP6_IF_IN            0x0004
-/* Output device. */
-#define NFC_IP6_IF_OUT           0x0008
-/* TOS. */
-#define NFC_IP6_TOS              0x0010
-/* Protocol. */
-#define NFC_IP6_PROTO            0x0020
-/* IP options. */
-#define NFC_IP6_OPTIONS          0x0040
-/* Frag & flags. */
-#define NFC_IP6_FRAG             0x0080
-
-
-/* Per-protocol information: only matters if proto match. */
-/* TCP flags. */
-#define NFC_IP6_TCPFLAGS         0x0100
-/* Source port. */
-#define NFC_IP6_SRC_PT           0x0200
-/* Dest port. */
-#define NFC_IP6_DST_PT           0x0400
-/* Something else about the proto */
-#define NFC_IP6_PROTO_UNKNOWN    0x2000
-
 /* IP6 Hooks */
 /* After promisc drops, checksum checks. */
 #define NF_IP6_PRE_ROUTING     0
index 2966171b9b95ce279f90f754c4863d43a9957061..2c28d329e5955f71000cfc2951f06c0d882352a8 100644 (file)
@@ -153,7 +153,7 @@ enum nlmsgerr_attrs {
 #define NETLINK_LIST_MEMBERSHIPS       9
 #define NETLINK_CAP_ACK                        10
 #define NETLINK_EXT_ACK                        11
-#define NETLINK_DUMP_STRICT_CHK                12
+#define NETLINK_GET_STRICT_CHK         12
 
 struct nl_pktinfo {
        __u32   group;