]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
Update kernel headers
authorDavid Ahern <dsahern@gmail.com>
Sun, 18 Aug 2019 18:48:02 +0000 (11:48 -0700)
committerDavid Ahern <dsahern@gmail.com>
Sun, 18 Aug 2019 18:48:02 +0000 (11:48 -0700)
Update kernel headers to commit:
    d83d508b74c4 ("Merge branch 'stmmac-next'")

Signed-off-by: David Ahern <dsahern@gmail.com>
include/uapi/linux/bpf.h
include/uapi/linux/can/netlink.h
include/uapi/linux/devlink.h
include/uapi/linux/if_bridge.h

index e75f97cfb00aee5ff5830eb30ba7e9ab42e5e97a..1e462a53b79350376d727f28ad142d03c6efbaa7 100644 (file)
@@ -134,6 +134,7 @@ enum bpf_map_type {
        BPF_MAP_TYPE_QUEUE,
        BPF_MAP_TYPE_STACK,
        BPF_MAP_TYPE_SK_STORAGE,
+       BPF_MAP_TYPE_DEVMAP_HASH,
 };
 
 /* Note that tracing related programs such as
@@ -2713,6 +2714,33 @@ union bpf_attr {
  *             **-EPERM** if no permission to send the *sig*.
  *
  *             **-EAGAIN** if bpf program can try again.
+ *
+ * s64 bpf_tcp_gen_syncookie(struct bpf_sock *sk, void *iph, u32 iph_len, struct tcphdr *th, u32 th_len)
+ *     Description
+ *             Try to issue a SYN cookie for the packet with corresponding
+ *             IP/TCP headers, *iph* and *th*, on the listening socket in *sk*.
+ *
+ *             *iph* points to the start of the IPv4 or IPv6 header, while
+ *             *iph_len* contains **sizeof**\ (**struct iphdr**) or
+ *             **sizeof**\ (**struct ip6hdr**).
+ *
+ *             *th* points to the start of the TCP header, while *th_len*
+ *             contains the length of the TCP header.
+ *
+ *     Return
+ *             On success, lower 32 bits hold the generated SYN cookie in
+ *             followed by 16 bits which hold the MSS value for that cookie,
+ *             and the top 16 bits are unused.
+ *
+ *             On failure, the returned value is one of the following:
+ *
+ *             **-EINVAL** SYN cookie cannot be issued due to error
+ *
+ *             **-ENOENT** SYN cookie should not be issued (no SYN flood)
+ *
+ *             **-EOPNOTSUPP** kernel configuration does not enable SYN cookies
+ *
+ *             **-EPROTONOSUPPORT** IP packet version is not 4 or 6
  */
 #define __BPF_FUNC_MAPPER(FN)          \
        FN(unspec),                     \
@@ -2824,7 +2852,8 @@ union bpf_attr {
        FN(strtoul),                    \
        FN(sk_storage_get),             \
        FN(sk_storage_delete),          \
-       FN(send_signal),
+       FN(send_signal),                \
+       FN(tcp_gen_syncookie),
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call
@@ -3507,6 +3536,10 @@ enum bpf_task_fd_type {
        BPF_FD_TYPE_URETPROBE,          /* filename + offset */
 };
 
+#define BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG            (1U << 0)
+#define BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL                (1U << 1)
+#define BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP             (1U << 2)
+
 struct bpf_flow_keys {
        __u16   nhoff;
        __u16   thoff;
@@ -3528,6 +3561,8 @@ struct bpf_flow_keys {
                        __u32   ipv6_dst[4];    /* in6_addr; network order */
                };
        };
+       __u32   flags;
+       __be32  flow_label;
 };
 
 struct bpf_func_info {
index f0c5e58b8ee7652d25920c193145021a9adac3e2..c1f62640e87bc8d16bd6e7e22d29c7002657ff39 100644 (file)
@@ -40,15 +40,15 @@ struct can_bittiming {
 };
 
 /*
- * CAN harware-dependent bit-timing constant
+ * CAN hardware-dependent bit-timing constant
  *
  * Used for calculating and checking bit-timing parameters
  */
 struct can_bittiming_const {
        char name[16];          /* Name of the CAN controller hardware */
-       __u32 tseg1_min;        /* Time segement 1 = prop_seg + phase_seg1 */
+       __u32 tseg1_min;        /* Time segment 1 = prop_seg + phase_seg1 */
        __u32 tseg1_max;
-       __u32 tseg2_min;        /* Time segement 2 = phase_seg2 */
+       __u32 tseg2_min;        /* Time segment 2 = phase_seg2 */
        __u32 tseg2_max;
        __u32 sjw_max;          /* Synchronisation jump width */
        __u32 brp_min;          /* Bit-rate prescaler */
index fc195cbd66f45ef6f8e3c4dd545c03b528cb729b..3fb683bee6ba16df7aeb9687e134c74c3551fdcc 100644 (file)
@@ -107,6 +107,16 @@ enum devlink_command {
        DEVLINK_CMD_FLASH_UPDATE_END,           /* notification only */
        DEVLINK_CMD_FLASH_UPDATE_STATUS,        /* notification only */
 
+       DEVLINK_CMD_TRAP_GET,           /* can dump */
+       DEVLINK_CMD_TRAP_SET,
+       DEVLINK_CMD_TRAP_NEW,
+       DEVLINK_CMD_TRAP_DEL,
+
+       DEVLINK_CMD_TRAP_GROUP_GET,     /* can dump */
+       DEVLINK_CMD_TRAP_GROUP_SET,
+       DEVLINK_CMD_TRAP_GROUP_NEW,
+       DEVLINK_CMD_TRAP_GROUP_DEL,
+
        /* add new commands above here */
        __DEVLINK_CMD_MAX,
        DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -194,6 +204,47 @@ enum devlink_param_fw_load_policy_value {
        DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH,
 };
 
+enum {
+       DEVLINK_ATTR_STATS_RX_PACKETS,          /* u64 */
+       DEVLINK_ATTR_STATS_RX_BYTES,            /* u64 */
+
+       __DEVLINK_ATTR_STATS_MAX,
+       DEVLINK_ATTR_STATS_MAX = __DEVLINK_ATTR_STATS_MAX - 1
+};
+
+/**
+ * enum devlink_trap_action - Packet trap action.
+ * @DEVLINK_TRAP_ACTION_DROP: Packet is dropped by the device and a copy is not
+ *                            sent to the CPU.
+ * @DEVLINK_TRAP_ACTION_TRAP: The sole copy of the packet is sent to the CPU.
+ */
+enum devlink_trap_action {
+       DEVLINK_TRAP_ACTION_DROP,
+       DEVLINK_TRAP_ACTION_TRAP,
+};
+
+/**
+ * enum devlink_trap_type - Packet trap type.
+ * @DEVLINK_TRAP_TYPE_DROP: Trap reason is a drop. Trapped packets are only
+ *                          processed by devlink and not injected to the
+ *                          kernel's Rx path.
+ * @DEVLINK_TRAP_TYPE_EXCEPTION: Trap reason is an exception. Packet was not
+ *                               forwarded as intended due to an exception
+ *                               (e.g., missing neighbour entry) and trapped to
+ *                               control plane for resolution. Trapped packets
+ *                               are processed by devlink and injected to
+ *                               the kernel's Rx path.
+ */
+enum devlink_trap_type {
+       DEVLINK_TRAP_TYPE_DROP,
+       DEVLINK_TRAP_TYPE_EXCEPTION,
+};
+
+enum {
+       /* Trap can report input port as metadata */
+       DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT,
+};
+
 enum devlink_attr {
        /* don't change the order or add anything between, this is ABI! */
        DEVLINK_ATTR_UNSPEC,
@@ -348,6 +399,17 @@ enum devlink_attr {
        DEVLINK_ATTR_PORT_PCI_PF_NUMBER,        /* u16 */
        DEVLINK_ATTR_PORT_PCI_VF_NUMBER,        /* u16 */
 
+       DEVLINK_ATTR_STATS,                             /* nested */
+
+       DEVLINK_ATTR_TRAP_NAME,                         /* string */
+       /* enum devlink_trap_action */
+       DEVLINK_ATTR_TRAP_ACTION,                       /* u8 */
+       /* enum devlink_trap_type */
+       DEVLINK_ATTR_TRAP_TYPE,                         /* u8 */
+       DEVLINK_ATTR_TRAP_GENERIC,                      /* flag */
+       DEVLINK_ATTR_TRAP_METADATA,                     /* nested */
+       DEVLINK_ATTR_TRAP_GROUP_NAME,                   /* string */
+
        /* add new attributes above here, update the policy in devlink.c */
 
        __DEVLINK_ATTR_MAX,
index 04f763cf530290510716e08360b967a651a091de..31fc51bdedb3ce8c4265ecc00b6bd02e53ef1a70 100644 (file)
@@ -237,6 +237,7 @@ struct br_mdb_entry {
 #define MDB_PERMANENT 1
        __u8 state;
 #define MDB_FLAGS_OFFLOAD      (1 << 0)
+#define MDB_FLAGS_FAST_LEAVE   (1 << 1)
        __u8 flags;
        __u16 vid;
        struct {