]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers to 4.15-rc8
authorDavid Ahern <dsahern@gmail.com>
Fri, 19 Jan 2018 20:33:41 +0000 (12:33 -0800)
committerDavid Ahern <dsahern@gmail.com>
Fri, 19 Jan 2018 20:33:41 +0000 (12:33 -0800)
Update kernel headers to commit 30c3e9d47035
("l2tp: remove switch block in l2tp_nl_cmd_session_create()")

Signed-off-by: David Ahern <dsahern@gmail.com>
12 files changed:
include/uapi/linux/bpf.h
include/uapi/linux/can/netlink.h
include/uapi/linux/devlink.h
include/uapi/linux/if_ether.h
include/uapi/linux/if_link.h
include/uapi/linux/if_macsec.h
include/uapi/linux/if_tun.h
include/uapi/linux/inet_diag.h
include/uapi/linux/l2tp.h
include/uapi/linux/libc-compat.h
include/uapi/linux/rtnetlink.h
include/uapi/linux/tipc.h

index ff544fe5911b85f3aacbd70c920d79e1f5a5b843..a902a490bc19cd275064c8bab4019fe27295c9e1 100644 (file)
@@ -245,6 +245,7 @@ union bpf_attr {
                                         * BPF_F_NUMA_NODE is set).
                                         */
                char    map_name[BPF_OBJ_NAME_LEN];
+               __u32   map_ifindex;    /* ifindex of netdev to create on */
        };
 
        struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
@@ -899,6 +900,9 @@ struct xdp_md {
        __u32 data;
        __u32 data_end;
        __u32 data_meta;
+       /* Below access go through struct xdp_rxq_info */
+       __u32 ingress_ifindex; /* rxq->dev->ifindex */
+       __u32 rx_queue_index;  /* rxq->queue_index  */
 };
 
 enum sk_action {
@@ -921,6 +925,9 @@ struct bpf_prog_info {
        __u32 nr_map_ids;
        __aligned_u64 map_ids;
        char name[BPF_OBJ_NAME_LEN];
+       __u32 ifindex;
+       __u64 netns_dev;
+       __u64 netns_ino;
 } __attribute__((aligned(8)));
 
 struct bpf_map_info {
@@ -1012,7 +1019,8 @@ struct bpf_perf_event_value {
 #define BPF_DEVCG_DEV_CHAR     (1ULL << 1)
 
 struct bpf_cgroup_dev_ctx {
-       __u32 access_type; /* (access << 16) | type */
+       /* access_type encoded as (BPF_DEVCG_ACC_* << 16) | BPF_DEVCG_DEV_* */
+       __u32 access_type;
        __u32 major;
        __u32 minor;
 };
index c12e9bf088ef666c52e3adf528b45063fa04a468..f0c5e58b8ee7652d25920c193145021a9adac3e2 100644 (file)
@@ -132,6 +132,7 @@ enum {
        IFLA_CAN_TERMINATION_CONST,
        IFLA_CAN_BITRATE_CONST,
        IFLA_CAN_DATA_BITRATE_CONST,
+       IFLA_CAN_BITRATE_MAX,
        __IFLA_CAN_MAX
 };
 
index 0c44d09daeb5582c6f4e74b736fa7be3948a28a0..9f17286ec89f76a469d1457be8ebbd7ba75c67dc 100644 (file)
@@ -70,6 +70,13 @@ enum devlink_command {
        DEVLINK_CMD_DPIPE_ENTRIES_GET,
        DEVLINK_CMD_DPIPE_HEADERS_GET,
        DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET,
+       DEVLINK_CMD_RESOURCE_SET,
+       DEVLINK_CMD_RESOURCE_DUMP,
+
+       /* Hot driver reload, makes configuration changes take place. The
+        * devlink instance is not released during the process.
+        */
+       DEVLINK_CMD_RELOAD,
 
        /* add new commands above here */
        __DEVLINK_CMD_MAX,
@@ -202,6 +209,20 @@ enum devlink_attr {
        DEVLINK_ATTR_PAD,
 
        DEVLINK_ATTR_ESWITCH_ENCAP_MODE,        /* u8 */
+       DEVLINK_ATTR_RESOURCE_LIST,             /* nested */
+       DEVLINK_ATTR_RESOURCE,                  /* nested */
+       DEVLINK_ATTR_RESOURCE_NAME,             /* string */
+       DEVLINK_ATTR_RESOURCE_ID,               /* u64 */
+       DEVLINK_ATTR_RESOURCE_SIZE,             /* u64 */
+       DEVLINK_ATTR_RESOURCE_SIZE_NEW,         /* u64 */
+       DEVLINK_ATTR_RESOURCE_SIZE_VALID,       /* u8 */
+       DEVLINK_ATTR_RESOURCE_SIZE_MIN,         /* u64 */
+       DEVLINK_ATTR_RESOURCE_SIZE_MAX,         /* u64 */
+       DEVLINK_ATTR_RESOURCE_SIZE_GRAN,        /* u64 */
+       DEVLINK_ATTR_RESOURCE_UNIT,             /* u8 */
+       DEVLINK_ATTR_RESOURCE_OCC,              /* u64 */
+       DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID,   /* u64 */
+       DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,/* u64 */
 
        /* add new attributes above here, update the policy in devlink.c */
 
@@ -245,4 +266,8 @@ enum devlink_dpipe_header_id {
        DEVLINK_DPIPE_HEADER_IPV6,
 };
 
+enum devlink_resource_unit {
+       DEVLINK_RESOURCE_UNIT_ENTRY,
+};
+
 #endif /* _LINUX_DEVLINK_H_ */
index 133567bf2e040744835fd2bb13c1d936848e3f38..5f1d4af33a111423b61b712a8969da67d86a298f 100644 (file)
@@ -23,6 +23,7 @@
 #define _LINUX_IF_ETHER_H
 
 #include <linux/types.h>
+#include <linux/libc-compat.h>
 
 /*
  *     IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
  *     This is an Ethernet frame header.
  */
 
+#if __UAPI_DEF_ETHHDR
 struct ethhdr {
        unsigned char   h_dest[ETH_ALEN];       /* destination eth addr */
        unsigned char   h_source[ETH_ALEN];     /* source ether addr    */
        __be16          h_proto;                /* packet type ID field */
 } __attribute__((packed));
+#endif
 
 
 #endif /* _LINUX_IF_ETHER_H */
index dab52465bd5f8f451da25abece2b34b7058cacfe..1726e49fbc6b8482a8a1a1165b7f80988f410709 100644 (file)
@@ -730,6 +730,8 @@ enum {
        IFLA_VF_STATS_BROADCAST,
        IFLA_VF_STATS_MULTICAST,
        IFLA_VF_STATS_PAD,
+       IFLA_VF_STATS_RX_DROPPED,
+       IFLA_VF_STATS_TX_DROPPED,
        __IFLA_VF_STATS_MAX,
 };
 
index 560ab0070d2e0b0b69a8d9d2681097bd04f468ad..0cfb902a09acc64dab1fdcae0a0346138f33d4a3 100644 (file)
 #define MACSEC_GENL_NAME "macsec"
 #define MACSEC_GENL_VERSION 1
 
-#define MACSEC_MAX_KEY_LEN 128
+#define MACSEC_MAX_KEY_LEN 256
 
 #define MACSEC_KEYID_LEN 16
 
-#define MACSEC_DEFAULT_CIPHER_ID   0x0080020001000001ULL
-#define MACSEC_DEFAULT_CIPHER_ALT  0x0080C20001000001ULL
+/* cipher IDs as per IEEE802.1AEbn-2011 */
+#define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
+#define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
+
+#define MACSEC_DEFAULT_CIPHER_ID     MACSEC_CIPHER_ID_GCM_AES_128
+/* deprecated cipher ID for GCM-AES-128 */
+#define MACSEC_DEFAULT_CIPHER_ALT    0x0080020001000001ULL
 
 #define MACSEC_MIN_ICV_LEN 8
 #define MACSEC_MAX_ICV_LEN 32
index d176cb432ab12ee404d095a18816171e98d0752a..be9b744a164589541e89c57c2d5cdada7dc0743e 100644 (file)
@@ -58,6 +58,7 @@
 #define TUNSETVNETBE _IOW('T', 222, int)
 #define TUNGETVNETBE _IOR('T', 223, int)
 #define TUNSETSTEERINGEBPF _IOR('T', 224, int)
+#define TUNSETFILTEREBPF _IOR('T', 225, int)
 
 /* TUNSETIFF ifr flags */
 #define IFF_TUN                0x0001
index 8a22e17e46685e5dd1c3f2aadadbf9828f5f131e..f98d82d4b2c033b5fdc74d525db08360131c1408 100644 (file)
@@ -92,6 +92,8 @@ enum {
        INET_DIAG_BC_D_COND,
        INET_DIAG_BC_DEV_COND,   /* u32 ifindex */
        INET_DIAG_BC_MARK_COND,
+       INET_DIAG_BC_S_EQ,
+       INET_DIAG_BC_D_EQ,
 };
 
 struct inet_diag_hostcond {
index 472e992471be8132c31b86e6ae35beb157ef3798..1fe52a7dd4a94c04cdb8a64c3ee4a8b66cbad9c6 100644 (file)
@@ -65,7 +65,7 @@ struct sockaddr_l2tpip6 {
  * TUNNEL_MODIFY       - CONN_ID, udpcsum
  * TUNNEL_GETSTATS     - CONN_ID, (stats)
  * TUNNEL_GET          - CONN_ID, (...)
- * SESSION_CREATE      - SESSION_ID, PW_TYPE, offset, data_seq, cookie, peer_cookie, offset, l2spec
+ * SESSION_CREATE      - SESSION_ID, PW_TYPE, data_seq, cookie, peer_cookie, l2spec
  * SESSION_DELETE      - SESSION_ID
  * SESSION_MODIFY      - SESSION_ID, data_seq
  * SESSION_GET         - SESSION_ID, (...)
@@ -94,10 +94,10 @@ enum {
        L2TP_ATTR_NONE,                 /* no data */
        L2TP_ATTR_PW_TYPE,              /* u16, enum l2tp_pwtype */
        L2TP_ATTR_ENCAP_TYPE,           /* u16, enum l2tp_encap_type */
-       L2TP_ATTR_OFFSET,               /* u16 */
+       L2TP_ATTR_OFFSET,               /* u16 (not used) */
        L2TP_ATTR_DATA_SEQ,             /* u16 */
        L2TP_ATTR_L2SPEC_TYPE,          /* u8, enum l2tp_l2spec_type */
-       L2TP_ATTR_L2SPEC_LEN,           /* u8, enum l2tp_l2spec_type */
+       L2TP_ATTR_L2SPEC_LEN,           /* u8 (not used) */
        L2TP_ATTR_PROTO_VERSION,        /* u8 */
        L2TP_ATTR_IFNAME,               /* string */
        L2TP_ATTR_CONN_ID,              /* u32 */
index 9ab3ace08e2b3ebd7ddc5a80c4cb4f70d7e40f51..5668ec3dc61af22a1e76e6226aa5969a6ff542a6 100644 (file)
 
 /* If we did not see any headers from any supported C libraries,
  * or we are being included in the kernel, then define everything
- * that we need. */
+ * that we need. Check for previous __UAPI_* definitions to give
+ * unsupported C libraries a way to opt out of any kernel definition. */
 #else /* !defined(__GLIBC__) */
 
 /* Definitions for if.h */
+#ifndef __UAPI_DEF_IF_IFCONF
 #define __UAPI_DEF_IF_IFCONF 1
+#endif
+#ifndef __UAPI_DEF_IF_IFMAP
 #define __UAPI_DEF_IF_IFMAP 1
+#endif
+#ifndef __UAPI_DEF_IF_IFNAMSIZ
 #define __UAPI_DEF_IF_IFNAMSIZ 1
+#endif
+#ifndef __UAPI_DEF_IF_IFREQ
 #define __UAPI_DEF_IF_IFREQ 1
+#endif
 /* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS
 #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
+#endif
 /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
 #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
+#endif
 
 /* Definitions for in.h */
+#ifndef __UAPI_DEF_IN_ADDR
 #define __UAPI_DEF_IN_ADDR             1
+#endif
+#ifndef __UAPI_DEF_IN_IPPROTO
 #define __UAPI_DEF_IN_IPPROTO          1
+#endif
+#ifndef __UAPI_DEF_IN_PKTINFO
 #define __UAPI_DEF_IN_PKTINFO          1
+#endif
+#ifndef __UAPI_DEF_IP_MREQ
 #define __UAPI_DEF_IP_MREQ             1
+#endif
+#ifndef __UAPI_DEF_SOCKADDR_IN
 #define __UAPI_DEF_SOCKADDR_IN         1
+#endif
+#ifndef __UAPI_DEF_IN_CLASS
 #define __UAPI_DEF_IN_CLASS            1
+#endif
 
 /* Definitions for in6.h */
+#ifndef __UAPI_DEF_IN6_ADDR
 #define __UAPI_DEF_IN6_ADDR            1
+#endif
+#ifndef __UAPI_DEF_IN6_ADDR_ALT
 #define __UAPI_DEF_IN6_ADDR_ALT                1
+#endif
+#ifndef __UAPI_DEF_SOCKADDR_IN6
 #define __UAPI_DEF_SOCKADDR_IN6                1
+#endif
+#ifndef __UAPI_DEF_IPV6_MREQ
 #define __UAPI_DEF_IPV6_MREQ           1
+#endif
+#ifndef __UAPI_DEF_IPPROTO_V6
 #define __UAPI_DEF_IPPROTO_V6          1
+#endif
+#ifndef __UAPI_DEF_IPV6_OPTIONS
 #define __UAPI_DEF_IPV6_OPTIONS                1
+#endif
+#ifndef __UAPI_DEF_IN6_PKTINFO
 #define __UAPI_DEF_IN6_PKTINFO         1
+#endif
+#ifndef __UAPI_DEF_IP6_MTUINFO
 #define __UAPI_DEF_IP6_MTUINFO         1
+#endif
 
 /* Definitions for ipx.h */
+#ifndef __UAPI_DEF_SOCKADDR_IPX
 #define __UAPI_DEF_SOCKADDR_IPX                        1
+#endif
+#ifndef __UAPI_DEF_IPX_ROUTE_DEFINITION
 #define __UAPI_DEF_IPX_ROUTE_DEFINITION                1
+#endif
+#ifndef __UAPI_DEF_IPX_INTERFACE_DEFINITION
 #define __UAPI_DEF_IPX_INTERFACE_DEFINITION    1
+#endif
+#ifndef __UAPI_DEF_IPX_CONFIG_DATA
 #define __UAPI_DEF_IPX_CONFIG_DATA             1
+#endif
+#ifndef __UAPI_DEF_IPX_ROUTE_DEF
 #define __UAPI_DEF_IPX_ROUTE_DEF               1
+#endif
 
 /* Definitions for xattr.h */
+#ifndef __UAPI_DEF_XATTR
 #define __UAPI_DEF_XATTR               1
+#endif
 
 #endif /* __GLIBC__ */
 
+/* Definitions for if_ether.h */
+/* allow libcs like musl to deactivate this, glibc does not implement this. */
+#ifndef __UAPI_DEF_ETHHDR
+#define __UAPI_DEF_ETHHDR              1
+#endif
+
 #endif /* _LIBC_COMPAT_H */
index 13bf56fcf8c7826b6bd9f8e41db34d28574f5b14..aba8b18e4ed684417c740fdb9527dd8a6b9cbc18 100644 (file)
@@ -541,9 +541,19 @@ struct tcmsg {
        int             tcm_ifindex;
        __u32           tcm_handle;
        __u32           tcm_parent;
+/* tcm_block_index is used instead of tcm_parent
+ * in case tcm_ifindex == TCM_IFINDEX_MAGIC_BLOCK
+ */
+#define tcm_block_index tcm_parent
        __u32           tcm_info;
 };
 
+/* For manipulation of filters in shared block, tcm_ifindex is set to
+ * TCM_IFINDEX_MAGIC_BLOCK, and tcm_parent is aliased to tcm_block_index
+ * which is the block index.
+ */
+#define TCM_IFINDEX_MAGIC_BLOCK (0xFFFFFFFFU)
+
 enum {
        TCA_UNSPEC,
        TCA_KIND,
@@ -558,6 +568,8 @@ enum {
        TCA_DUMP_INVISIBLE,
        TCA_CHAIN,
        TCA_HW_OFFLOAD,
+       TCA_INGRESS_BLOCK,
+       TCA_EGRESS_BLOCK,
        __TCA_MAX
 };
 
index f43ddaf39c0cf419ce89c2610908cbff78240992..cd22b9b2f77963dc99fd2ee5013d8a7a0c22eddc 100644 (file)
@@ -117,10 +117,9 @@ 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
+#define TIPC_ZONE_SCOPE         1
+#define TIPC_CLUSTER_SCOPE      2
+#define TIPC_NODE_SCOPE         3
 
 /*
  * Limiting values for messages