Update to kernel headers to v5.1.3.

Test: Builds and boots taimen.
Test: Ran bionic unit tests.
Change-Id: Ieaca8709d568f075df8cac60c9da2c0ed1916963
diff --git a/libc/kernel/uapi/rdma/bnxt_re-abi.h b/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 4e29624..3e45dc3 100644
--- a/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -20,6 +20,12 @@
 #define __BNXT_RE_UVERBS_ABI_H__
 #include <linux/types.h>
 #define BNXT_RE_ABI_VERSION 1
+#define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
+#define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
+#define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
+enum {
+  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
+};
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
   __u32 max_qp;
@@ -27,6 +33,9 @@
   __u32 cqe_sz;
   __u32 max_cqd;
   __u32 rsvd;
+  __aligned_u64 comp_mask;
+  __u32 chip_id0;
+  __u32 chip_id1;
 };
 struct bnxt_re_pd_resp {
   __u32 pdid;
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index 3154b7a..25df6e2 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -201,6 +201,8 @@
   struct ib_uverbs_tm_caps tm_caps;
   struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
   __aligned_u64 max_dm_size;
+  __u32 xrc_odp_caps;
+  __u32 reserved;
 };
 struct ib_uverbs_query_port {
   __aligned_u64 response;
diff --git a/libc/kernel/uapi/rdma/mlx5-abi.h b/libc/kernel/uapi/rdma/mlx5-abi.h
index 4c85c6c..f1ab147 100644
--- a/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -164,6 +164,7 @@
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
   MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE = 1 << 2,
+  MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT = 1 << 3,
 };
 enum mlx5_ib_tunnel_offloads {
   MLX5_IB_TUNNELED_OFFLOADS_VXLAN = 1 << 0,
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index dcc3d85..88b84c2 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -58,6 +58,13 @@
   MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
   MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
 };
+enum mlx5_ib_devx_obj_query_async_attrs {
+  MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
+  MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
+  MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
+  MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
+};
 enum mlx5_ib_devx_query_eqn_attrs {
   MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
@@ -67,6 +74,7 @@
   MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
   MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
   MLX5_IB_METHOD_DEVX_OBJ_QUERY,
+  MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
 };
 enum mlx5_ib_devx_umem_reg_attrs {
   MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -82,11 +90,18 @@
   MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_METHOD_DEVX_UMEM_DEREG,
 };
+enum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
+  MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_devx_async_cmd_fd_methods {
+  MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
+};
 enum mlx5_ib_objects {
   MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_OBJECT_DEVX_OBJ,
   MLX5_IB_OBJECT_DEVX_UMEM,
   MLX5_IB_OBJECT_FLOW_MATCHER,
+  MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
 };
 enum mlx5_ib_flow_matcher_create_attrs {
   MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index dc246e5..e83b9e2 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -32,4 +32,8 @@
   MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x2,
   MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
 };
+struct mlx5_ib_uapi_devx_async_cmd_hdr {
+  __aligned_u64 wr_id;
+  __u8 out_data[];
+};
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h
index 69805f1..7730edf 100644
--- a/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -20,30 +20,24 @@
 #define _UAPI_RDMA_NETLINK_H
 #include <linux/types.h>
 enum {
-  RDMA_NL_RDMA_CM = 1,
-  RDMA_NL_IWCM,
+  RDMA_NL_IWCM = 2,
   RDMA_NL_RSVD,
   RDMA_NL_LS,
   RDMA_NL_NLDEV,
   RDMA_NL_NUM_CLIENTS
 };
 enum {
-  RDMA_NL_GROUP_CM = 1,
-  RDMA_NL_GROUP_IWPM,
+  RDMA_NL_GROUP_IWPM = 2,
   RDMA_NL_GROUP_LS,
   RDMA_NL_NUM_GROUPS
 };
 #define RDMA_NL_GET_CLIENT(type) ((type & (((1 << 6) - 1) << 10)) >> 10)
 #define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
 #define RDMA_NL_GET_TYPE(client,op) ((client << 10) + op)
+#define IWPM_UABI_VERSION_MIN 3
+#define IWPM_UABI_VERSION 4
 enum {
-  RDMA_NL_RDMA_CM_ID_STATS = 0,
-  RDMA_NL_RDMA_CM_NUM_OPS
-};
-enum {
-  RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
-  RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
-  RDMA_NL_RDMA_CM_NUM_ATTR,
+  IWPM_FLAGS_NO_PORT_MAP = (1 << 0),
 };
 enum {
   RDMA_NL_IWPM_REG_PID = 0,
@@ -54,6 +48,7 @@
   RDMA_NL_IWPM_HANDLE_ERR,
   RDMA_NL_IWPM_MAPINFO,
   RDMA_NL_IWPM_MAPINFO_NUM,
+  RDMA_NL_IWPM_HELLO,
   RDMA_NL_IWPM_NUM_OPS
 };
 struct rdma_cm_id_stats {
@@ -87,18 +82,33 @@
   IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
   IWPM_NLA_MANAGE_MAPPING_SEQ,
   IWPM_NLA_MANAGE_ADDR,
-  IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
+  IWPM_NLA_MANAGE_FLAGS,
+  IWPM_NLA_MANAGE_MAPPING_MAX
+};
+enum {
+  IWPM_NLA_RMANAGE_MAPPING_UNSPEC = 0,
+  IWPM_NLA_RMANAGE_MAPPING_SEQ,
+  IWPM_NLA_RMANAGE_ADDR,
+  IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
+  IWPM_NLA_MANAGE_MAPPED_LOC_ADDR = IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
   IWPM_NLA_RMANAGE_MAPPING_ERR,
   IWPM_NLA_RMANAGE_MAPPING_MAX
 };
-#define IWPM_NLA_MANAGE_MAPPING_MAX 3
-#define IWPM_NLA_QUERY_MAPPING_MAX 4
 #define IWPM_NLA_MAPINFO_SEND_MAX 3
+#define IWPM_NLA_REMOVE_MAPPING_MAX 3
 enum {
   IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
   IWPM_NLA_QUERY_MAPPING_SEQ,
   IWPM_NLA_QUERY_LOCAL_ADDR,
   IWPM_NLA_QUERY_REMOTE_ADDR,
+  IWPM_NLA_QUERY_FLAGS,
+  IWPM_NLA_QUERY_MAPPING_MAX,
+};
+enum {
+  IWPM_NLA_RQUERY_MAPPING_UNSPEC = 0,
+  IWPM_NLA_RQUERY_MAPPING_SEQ,
+  IWPM_NLA_RQUERY_LOCAL_ADDR,
+  IWPM_NLA_RQUERY_REMOTE_ADDR,
   IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
   IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
   IWPM_NLA_RQUERY_MAPPING_ERR,
@@ -114,6 +124,7 @@
   IWPM_NLA_MAPINFO_UNSPEC = 0,
   IWPM_NLA_MAPINFO_LOCAL_ADDR,
   IWPM_NLA_MAPINFO_MAPPED_ADDR,
+  IWPM_NLA_MAPINFO_FLAGS,
   IWPM_NLA_MAPINFO_MAX
 };
 enum {
@@ -130,6 +141,11 @@
   IWPM_NLA_ERR_MAX
 };
 enum {
+  IWPM_NLA_HELLO_UNSPEC = 0,
+  IWPM_NLA_HELLO_ABI_VERSION,
+  IWPM_NLA_HELLO_MAX
+};
+enum {
   RDMA_NL_LS_OP_RESOLVE = 0,
   RDMA_NL_LS_OP_SET_TIMEOUT,
   RDMA_NL_LS_OP_IP_RESOLVE,
@@ -174,7 +190,9 @@
   RDMA_NLDEV_CMD_UNSPEC,
   RDMA_NLDEV_CMD_GET,
   RDMA_NLDEV_CMD_SET,
-  RDMA_NLDEV_CMD_PORT_GET = 5,
+  RDMA_NLDEV_CMD_NEWLINK,
+  RDMA_NLDEV_CMD_DELLINK,
+  RDMA_NLDEV_CMD_PORT_GET,
   RDMA_NLDEV_CMD_RES_GET = 9,
   RDMA_NLDEV_CMD_RES_QP_GET,
   RDMA_NLDEV_CMD_RES_CM_ID_GET,
@@ -252,6 +270,12 @@
   RDMA_NLDEV_ATTR_DRIVER_U32,
   RDMA_NLDEV_ATTR_DRIVER_S64,
   RDMA_NLDEV_ATTR_DRIVER_U64,
+  RDMA_NLDEV_ATTR_RES_PDN,
+  RDMA_NLDEV_ATTR_RES_CQN,
+  RDMA_NLDEV_ATTR_RES_MRN,
+  RDMA_NLDEV_ATTR_RES_CM_IDN,
+  RDMA_NLDEV_ATTR_RES_CTXN,
+  RDMA_NLDEV_ATTR_LINK_TYPE,
   RDMA_NLDEV_ATTR_MAX
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/rdma_user_cm.h b/libc/kernel/uapi/rdma/rdma_user_cm.h
index b200491..9042b6f 100644
--- a/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -238,6 +238,9 @@
   RDMA_OPTION_ID_TOS = 0,
   RDMA_OPTION_ID_REUSEADDR = 1,
   RDMA_OPTION_ID_AFONLY = 2,
+  RDMA_OPTION_ID_ACK_TIMEOUT = 3
+};
+enum {
   RDMA_OPTION_IB_PATH = 1
 };
 struct rdma_ucm_set_option {
diff --git a/libc/kernel/uapi/rdma/rdma_user_rxe.h b/libc/kernel/uapi/rdma/rdma_user_rxe.h
index a57ed1a..e4a2f40 100644
--- a/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -39,8 +39,7 @@
 struct rxe_av {
   __u8 port_num;
   __u8 network_type;
-  __u16 reserved1;
-  __u32 reserved2;
+  __u8 dmac[6];
   struct rxe_global_route grh;
   union {
     struct sockaddr_in _sockaddr_in;