diff options
Diffstat (limited to 'include/linux/mlx5')
| -rw-r--r-- | include/linux/mlx5/cq.h | 1 | ||||
| -rw-r--r-- | include/linux/mlx5/device.h | 10 | ||||
| -rw-r--r-- | include/linux/mlx5/driver.h | 71 | ||||
| -rw-r--r-- | include/linux/mlx5/fs.h | 40 | ||||
| -rw-r--r-- | include/linux/mlx5/mlx5_ifc.h | 264 | ||||
| -rw-r--r-- | include/linux/mlx5/qp.h | 1 | ||||
| -rw-r--r-- | include/linux/mlx5/srq.h | 1 | ||||
| -rw-r--r-- | include/linux/mlx5/transobj.h | 2 | ||||
| -rw-r--r-- | include/linux/mlx5/vport.h | 2 | 
9 files changed, 246 insertions, 146 deletions
| diff --git a/include/linux/mlx5/cq.h b/include/linux/mlx5/cq.h index 0ef6138eca49..31a750570c38 100644 --- a/include/linux/mlx5/cq.h +++ b/include/linux/mlx5/cq.h @@ -61,6 +61,7 @@ struct mlx5_core_cq {  	int			reset_notify_added;  	struct list_head	reset_notify;  	struct mlx5_eq		*eq; +	u16 uid;  }; diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index 11fa4e66afc5..b4c0457fbebd 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h @@ -504,6 +504,10 @@ struct health_buffer {  	__be16		ext_synd;  }; +enum mlx5_cmd_addr_l_sz_offset { +	MLX5_NIC_IFC_OFFSET = 8, +}; +  struct mlx5_init_seg {  	__be32			fw_rev;  	__be32			cmdif_rev_fw_sub; @@ -1120,6 +1124,12 @@ enum mlx5_qcam_feature_groups {  #define MLX5_CAP_FLOWTABLE_NIC_RX_MAX(mdev, cap) \  	MLX5_CAP_FLOWTABLE_MAX(mdev, flow_table_properties_nic_receive.cap) +#define MLX5_CAP_FLOWTABLE_NIC_TX(mdev, cap) \ +		MLX5_CAP_FLOWTABLE(mdev, flow_table_properties_nic_transmit.cap) + +#define MLX5_CAP_FLOWTABLE_NIC_TX_MAX(mdev, cap) \ +	MLX5_CAP_FLOWTABLE_MAX(mdev, flow_table_properties_nic_transmit.cap) +  #define MLX5_CAP_FLOWTABLE_SNIFFER_RX(mdev, cap) \  	MLX5_CAP_FLOWTABLE(mdev, flow_table_properties_nic_receive_sniffer.cap) diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 7a452716de4b..31460eeb6fe0 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -133,6 +133,7 @@ enum {  	MLX5_REG_PVLC		 = 0x500f,  	MLX5_REG_PCMR		 = 0x5041,  	MLX5_REG_PMLP		 = 0x5002, +	MLX5_REG_PPLM		 = 0x5023,  	MLX5_REG_PCAM		 = 0x507f,  	MLX5_REG_NODE_DESC	 = 0x6001,  	MLX5_REG_HOST_ENDIANNESS = 0x7004, @@ -163,10 +164,7 @@ enum mlx5_dcbx_oper_mode {  };  enum mlx5_dct_atomic_mode { -	MLX5_ATOMIC_MODE_DCT_OFF        = 20, -	MLX5_ATOMIC_MODE_DCT_NONE       = 0 << MLX5_ATOMIC_MODE_DCT_OFF, -	MLX5_ATOMIC_MODE_DCT_IB_COMP    = 1 << MLX5_ATOMIC_MODE_DCT_OFF, -	MLX5_ATOMIC_MODE_DCT_CX         = 2 << MLX5_ATOMIC_MODE_DCT_OFF, +	MLX5_ATOMIC_MODE_DCT_CX         = 2,  };  enum { @@ -360,10 +358,10 @@ struct mlx5_frag_buf {  };  struct mlx5_frag_buf_ctrl { -	struct mlx5_frag_buf	frag_buf; +	struct mlx5_buf_list   *frags;  	u32			sz_m1; -	u32			frag_sz_m1; -	u32			strides_offset; +	u16			frag_sz_m1; +	u16			strides_offset;  	u8			log_sz;  	u8			log_stride;  	u8			log_frag_strides; @@ -477,6 +475,7 @@ struct mlx5_core_srq {  	atomic_t		refcount;  	struct completion	free; +	u16		uid;  };  struct mlx5_eq_table { @@ -583,10 +582,11 @@ struct mlx5_irq_info {  };  struct mlx5_fc_stats { -	struct rb_root counters; -	struct list_head addlist; -	/* protect addlist add/splice operations */ -	spinlock_t addlist_lock; +	spinlock_t counters_idr_lock; /* protects counters_idr */ +	struct idr counters_idr; +	struct list_head counters; +	struct llist_head addlist; +	struct llist_head dellist;  	struct workqueue_struct *wq;  	struct delayed_work work; @@ -804,7 +804,7 @@ struct mlx5_pps {  };  struct mlx5_clock { -	rwlock_t                   lock; +	seqlock_t                  lock;  	struct cyclecounter        cycles;  	struct timecounter         tc;  	struct hwtstamp_config     hwtstamp_config; @@ -837,6 +837,7 @@ struct mlx5_core_dev {  		u32 fpga[MLX5_ST_SZ_DW(fpga_cap)];  		u32 qcam[MLX5_ST_SZ_DW(qcam_reg)];  	} caps; +	u64			sys_image_guid;  	phys_addr_t		iseg_base;  	struct mlx5_init_seg __iomem *iseg;  	enum mlx5_device_state	state; @@ -994,10 +995,12 @@ static inline u32 mlx5_base_mkey(const u32 key)  	return key & 0xffffff00u;  } -static inline void mlx5_fill_fbc_offset(u8 log_stride, u8 log_sz, -					u32 strides_offset, +static inline void mlx5_init_fbc_offset(struct mlx5_buf_list *frags, +					u8 log_stride, u8 log_sz, +					u16 strides_offset,  					struct mlx5_frag_buf_ctrl *fbc)  { +	fbc->frags      = frags;  	fbc->log_stride = log_stride;  	fbc->log_sz     = log_sz;  	fbc->sz_m1	= (1 << fbc->log_sz) - 1; @@ -1006,18 +1009,11 @@ static inline void mlx5_fill_fbc_offset(u8 log_stride, u8 log_sz,  	fbc->strides_offset = strides_offset;  } -static inline void mlx5_fill_fbc(u8 log_stride, u8 log_sz, +static inline void mlx5_init_fbc(struct mlx5_buf_list *frags, +				 u8 log_stride, u8 log_sz,  				 struct mlx5_frag_buf_ctrl *fbc)  { -	mlx5_fill_fbc_offset(log_stride, log_sz, 0, fbc); -} - -static inline void mlx5_core_init_cq_frag_buf(struct mlx5_frag_buf_ctrl *fbc, -					      void *cqc) -{ -	mlx5_fill_fbc(6 + MLX5_GET(cqc, cqc, cqe_sz), -		      MLX5_GET(cqc, cqc, log_cq_size), -		      fbc); +	mlx5_init_fbc_offset(frags, log_stride, log_sz, 0, fbc);  }  static inline void *mlx5_frag_buf_get_wqe(struct mlx5_frag_buf_ctrl *fbc, @@ -1028,8 +1024,15 @@ static inline void *mlx5_frag_buf_get_wqe(struct mlx5_frag_buf_ctrl *fbc,  	ix  += fbc->strides_offset;  	frag = ix >> fbc->log_frag_strides; -	return fbc->frag_buf.frags[frag].buf + -		((fbc->frag_sz_m1 & ix) << fbc->log_stride); +	return fbc->frags[frag].buf + ((fbc->frag_sz_m1 & ix) << fbc->log_stride); +} + +static inline u32 +mlx5_frag_buf_get_idx_last_contig_stride(struct mlx5_frag_buf_ctrl *fbc, u32 ix) +{ +	u32 last_frag_stride_idx = (ix + fbc->strides_offset) | fbc->frag_sz_m1; + +	return min_t(u32, last_frag_stride_idx - fbc->strides_offset, fbc->sz_m1);  }  int mlx5_cmd_init(struct mlx5_core_dev *dev); @@ -1052,7 +1055,7 @@ int mlx5_cmd_free_uar(struct mlx5_core_dev *dev, u32 uarn);  void mlx5_health_cleanup(struct mlx5_core_dev *dev);  int mlx5_health_init(struct mlx5_core_dev *dev);  void mlx5_start_health_poll(struct mlx5_core_dev *dev); -void mlx5_stop_health_poll(struct mlx5_core_dev *dev); +void mlx5_stop_health_poll(struct mlx5_core_dev *dev, bool disable_health);  void mlx5_drain_health_wq(struct mlx5_core_dev *dev);  void mlx5_trigger_health_work(struct mlx5_core_dev *dev);  void mlx5_drain_health_recovery(struct mlx5_core_dev *dev); @@ -1226,21 +1229,15 @@ int mlx5_lag_query_cong_counters(struct mlx5_core_dev *dev,  struct mlx5_uars_page *mlx5_get_uars_page(struct mlx5_core_dev *mdev);  void mlx5_put_uars_page(struct mlx5_core_dev *mdev, struct mlx5_uars_page *up); -#ifndef CONFIG_MLX5_CORE_IPOIB -static inline -struct net_device *mlx5_rdma_netdev_alloc(struct mlx5_core_dev *mdev, -					  struct ib_device *ibdev, -					  const char *name, -					  void (*setup)(struct net_device *)) -{ -	return ERR_PTR(-EOPNOTSUPP); -} -#else +#ifdef CONFIG_MLX5_CORE_IPOIB  struct net_device *mlx5_rdma_netdev_alloc(struct mlx5_core_dev *mdev,  					  struct ib_device *ibdev,  					  const char *name,  					  void (*setup)(struct net_device *));  #endif /* CONFIG_MLX5_CORE_IPOIB */ +int mlx5_rdma_rn_get_params(struct mlx5_core_dev *mdev, +			    struct ib_device *device, +			    struct rdma_netdev_alloc_params *params);  struct mlx5_profile {  	u64	mask; diff --git a/include/linux/mlx5/fs.h b/include/linux/mlx5/fs.h index 804516e4f483..5660f07d3be0 100644 --- a/include/linux/mlx5/fs.h +++ b/include/linux/mlx5/fs.h @@ -45,7 +45,8 @@ enum {  };  enum { -	MLX5_FLOW_TABLE_TUNNEL_EN = BIT(0), +	MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT = BIT(0), +	MLX5_FLOW_TABLE_TUNNEL_EN_DECAP = BIT(1),  };  #define LEFTOVERS_RULE_NUM	 2 @@ -91,7 +92,7 @@ struct mlx5_flow_destination {  		u32			tir_num;  		u32			ft_num;  		struct mlx5_flow_table	*ft; -		struct mlx5_fc		*counter; +		u32			counter_id;  		struct {  			u16		num;  			u16		vhca_id; @@ -101,6 +102,8 @@ struct mlx5_flow_destination {  };  struct mlx5_flow_namespace * +mlx5_get_fdb_sub_ns(struct mlx5_core_dev *dev, int n); +struct mlx5_flow_namespace *  mlx5_get_flow_namespace(struct mlx5_core_dev *dev,  			enum mlx5_flow_namespace_type type);  struct mlx5_flow_namespace * @@ -155,20 +158,28 @@ struct mlx5_fs_vlan {  #define MLX5_FS_VLAN_DEPTH	2 +enum { +	FLOW_ACT_HAS_TAG   = BIT(0), +	FLOW_ACT_NO_APPEND = BIT(1), +}; +  struct mlx5_flow_act {  	u32 action; -	bool has_flow_tag;  	u32 flow_tag; -	u32 encap_id; +	u32 reformat_id;  	u32 modify_id;  	uintptr_t esp_id; +	u32 flags;  	struct mlx5_fs_vlan vlan[MLX5_FS_VLAN_DEPTH];  	struct ib_counters *counters;  };  #define MLX5_DECLARE_FLOW_ACT(name) \ -	struct mlx5_flow_act name = {MLX5_FLOW_CONTEXT_ACTION_FWD_DEST,\ -				     MLX5_FS_DEFAULT_FLOW_TAG, 0, 0} +	struct mlx5_flow_act name = { .action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST,\ +				      .flow_tag = MLX5_FS_DEFAULT_FLOW_TAG, \ +				      .reformat_id = 0, \ +				      .modify_id = 0, \ +				      .flags =  0, }  /* Single destination per rule.   * Group ID is implied by the match criteria. @@ -185,15 +196,30 @@ int mlx5_modify_rule_destination(struct mlx5_flow_handle *handler,  				 struct mlx5_flow_destination *new_dest,  				 struct mlx5_flow_destination *old_dest); -struct mlx5_fc *mlx5_flow_rule_counter(struct mlx5_flow_handle *handler);  struct mlx5_fc *mlx5_fc_create(struct mlx5_core_dev *dev, bool aging);  void mlx5_fc_destroy(struct mlx5_core_dev *dev, struct mlx5_fc *counter);  void mlx5_fc_query_cached(struct mlx5_fc *counter,  			  u64 *bytes, u64 *packets, u64 *lastuse);  int mlx5_fc_query(struct mlx5_core_dev *dev, struct mlx5_fc *counter,  		  u64 *packets, u64 *bytes); +u32 mlx5_fc_id(struct mlx5_fc *counter);  int mlx5_fs_add_rx_underlay_qpn(struct mlx5_core_dev *dev, u32 underlay_qpn);  int mlx5_fs_remove_rx_underlay_qpn(struct mlx5_core_dev *dev, u32 underlay_qpn); +int mlx5_modify_header_alloc(struct mlx5_core_dev *dev, +			     u8 namespace, u8 num_actions, +			     void *modify_actions, u32 *modify_header_id); +void mlx5_modify_header_dealloc(struct mlx5_core_dev *dev, +				u32 modify_header_id); + +int mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev, +			       int reformat_type, +			       size_t size, +			       void *reformat_data, +			       enum mlx5_flow_namespace_type namespace, +			       u32 *packet_reformat_id); +void mlx5_packet_reformat_dealloc(struct mlx5_core_dev *dev, +				  u32 packet_reformat_id); +  #endif diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h index f043d65b9bac..dbff9ff28f2c 100644 --- a/include/linux/mlx5/mlx5_ifc.h +++ b/include/linux/mlx5/mlx5_ifc.h @@ -243,8 +243,8 @@ enum {  	MLX5_CMD_OP_DEALLOC_FLOW_COUNTER          = 0x93a,  	MLX5_CMD_OP_QUERY_FLOW_COUNTER            = 0x93b,  	MLX5_CMD_OP_MODIFY_FLOW_TABLE             = 0x93c, -	MLX5_CMD_OP_ALLOC_ENCAP_HEADER            = 0x93d, -	MLX5_CMD_OP_DEALLOC_ENCAP_HEADER          = 0x93e, +	MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT = 0x93d, +	MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT = 0x93e,  	MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT   = 0x940,  	MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT = 0x941,  	MLX5_CMD_OP_QUERY_MODIFY_HEADER_CONTEXT   = 0x942, @@ -336,7 +336,7 @@ struct mlx5_ifc_flow_table_prop_layout_bits {  	u8         modify_root[0x1];  	u8         identified_miss_table_mode[0x1];  	u8         flow_table_modify[0x1]; -	u8         encap[0x1]; +	u8         reformat[0x1];  	u8         decap[0x1];  	u8         reserved_at_9[0x1];  	u8         pop_vlan[0x1]; @@ -344,8 +344,12 @@ struct mlx5_ifc_flow_table_prop_layout_bits {  	u8         reserved_at_c[0x1];  	u8         pop_vlan_2[0x1];  	u8         push_vlan_2[0x1]; -	u8         reserved_at_f[0x11]; - +	u8	   reformat_and_vlan_action[0x1]; +	u8	   reserved_at_10[0x2]; +	u8	   reformat_l3_tunnel_to_l2[0x1]; +	u8	   reformat_l2_to_l3_tunnel[0x1]; +	u8	   reformat_and_modify_action[0x1]; +	u8         reserved_at_14[0xb];  	u8         reserved_at_20[0x2];  	u8         log_max_ft_size[0x6];  	u8         log_max_modify_header_context[0x8]; @@ -554,7 +558,13 @@ struct mlx5_ifc_flow_table_nic_cap_bits {  	u8         nic_rx_multi_path_tirs[0x1];  	u8         nic_rx_multi_path_tirs_fts[0x1];  	u8         allow_sniffer_and_nic_rx_shared_tir[0x1]; -	u8         reserved_at_3[0x1fd]; +	u8	   reserved_at_3[0x1d]; +	u8	   encap_general_header[0x1]; +	u8	   reserved_at_21[0xa]; +	u8	   log_max_packet_reformat_context[0x5]; +	u8	   reserved_at_30[0x6]; +	u8	   max_encap_header_size[0xa]; +	u8	   reserved_at_40[0x1c0];  	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive; @@ -574,7 +584,9 @@ struct mlx5_ifc_flow_table_nic_cap_bits {  struct mlx5_ifc_flow_table_eswitch_cap_bits {  	u8      reserved_at_0[0x1c];  	u8      fdb_multi_path_to_table[0x1]; -	u8      reserved_at_1d[0x1e3]; +	u8      reserved_at_1d[0x1]; +	u8      multi_fdb_encap[0x1]; +	u8      reserved_at_1e[0x1e1];  	struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_esw_fdb; @@ -599,7 +611,7 @@ struct mlx5_ifc_e_switch_cap_bits {  	u8         vxlan_encap_decap[0x1];  	u8         nvgre_encap_decap[0x1];  	u8         reserved_at_22[0x9]; -	u8         log_max_encap_headers[0x5]; +	u8         log_max_packet_reformat_context[0x5];  	u8         reserved_2b[0x6];  	u8         max_encap_header_size[0xa]; @@ -896,7 +908,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {  	u8         log_max_mkey[0x6];  	u8         reserved_at_f0[0x8];  	u8         dump_fill_mkey[0x1]; -	u8         reserved_at_f9[0x3]; +	u8         reserved_at_f9[0x2]; +	u8         fast_teardown[0x1];  	u8         log_max_eq[0x4];  	u8         max_indirection[0x8]; @@ -995,7 +1008,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {  	u8         umr_modify_atomic_disabled[0x1];  	u8         umr_indirect_mkey_disabled[0x1];  	u8         umr_fence[0x2]; -	u8         reserved_at_20c[0x3]; +	u8         dc_req_scat_data_cqe[0x1]; +	u8         reserved_at_20d[0x2];  	u8         drain_sigerr[0x1];  	u8         cmdif_checksum[0x2];  	u8         sigerr_cqe[0x1]; @@ -1280,7 +1294,9 @@ struct mlx5_ifc_wq_bits {  	u8         reserved_at_118[0x3];  	u8         log_wq_sz[0x5]; -	u8         reserved_at_120[0x3]; +	u8         dbr_umem_valid[0x1]; +	u8         wq_umem_valid[0x1]; +	u8         reserved_at_122[0x1];  	u8         log_hairpin_num_packets[0x5];  	u8         reserved_at_128[0x3];  	u8         log_hairpin_data_sz[0x5]; @@ -2354,7 +2370,10 @@ struct mlx5_ifc_qpc_bits {  	u8         dc_access_key[0x40]; -	u8         reserved_at_680[0xc0]; +	u8         reserved_at_680[0x3]; +	u8         dbr_umem_valid[0x1]; + +	u8         reserved_at_684[0xbc];  };  struct mlx5_ifc_roce_addr_layout_bits { @@ -2394,7 +2413,7 @@ enum {  	MLX5_FLOW_CONTEXT_ACTION_DROP      = 0x2,  	MLX5_FLOW_CONTEXT_ACTION_FWD_DEST  = 0x4,  	MLX5_FLOW_CONTEXT_ACTION_COUNT     = 0x8, -	MLX5_FLOW_CONTEXT_ACTION_ENCAP     = 0x10, +	MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT = 0x10,  	MLX5_FLOW_CONTEXT_ACTION_DECAP     = 0x20,  	MLX5_FLOW_CONTEXT_ACTION_MOD_HDR   = 0x40,  	MLX5_FLOW_CONTEXT_ACTION_VLAN_POP  = 0x80, @@ -2427,7 +2446,7 @@ struct mlx5_ifc_flow_context_bits {  	u8         reserved_at_a0[0x8];  	u8         flow_counter_list_size[0x18]; -	u8         encap_id[0x20]; +	u8         packet_reformat_id[0x20];  	u8         modify_header_id[0x20]; @@ -2454,7 +2473,7 @@ struct mlx5_ifc_xrc_srqc_bits {  	u8         wq_signature[0x1];  	u8         cont_srq[0x1]; -	u8         reserved_at_22[0x1]; +	u8         dbr_umem_valid[0x1];  	u8         rlky[0x1];  	u8         basic_cyclic_rcv_wqe[0x1];  	u8         log_rq_stride[0x3]; @@ -2549,8 +2568,8 @@ enum {  };  enum { -	MLX5_TIRC_SELF_LB_BLOCK_BLOCK_UNICAST_    = 0x1, -	MLX5_TIRC_SELF_LB_BLOCK_BLOCK_MULTICAST_  = 0x2, +	MLX5_TIRC_SELF_LB_BLOCK_BLOCK_UNICAST    = 0x1, +	MLX5_TIRC_SELF_LB_BLOCK_BLOCK_MULTICAST  = 0x2,  };  struct mlx5_ifc_tirc_bits { @@ -3118,7 +3137,9 @@ enum {  struct mlx5_ifc_cqc_bits {  	u8         status[0x4]; -	u8         reserved_at_4[0x4]; +	u8         reserved_at_4[0x2]; +	u8         dbr_umem_valid[0x1]; +	u8         reserved_at_7[0x1];  	u8         cqe_sz[0x3];  	u8         cc[0x1];  	u8         reserved_at_c[0x1]; @@ -3352,12 +3373,13 @@ struct mlx5_ifc_teardown_hca_out_bits {  	u8         reserved_at_40[0x3f]; -	u8         force_state[0x1]; +	u8         state[0x1];  };  enum {  	MLX5_TEARDOWN_HCA_IN_PROFILE_GRACEFUL_CLOSE  = 0x0,  	MLX5_TEARDOWN_HCA_IN_PROFILE_FORCE_CLOSE     = 0x1, +	MLX5_TEARDOWN_HCA_IN_PROFILE_PREPARE_FAST_TEARDOWN = 0x2,  };  struct mlx5_ifc_teardown_hca_in_bits { @@ -3384,7 +3406,7 @@ struct mlx5_ifc_sqerr2rts_qp_out_bits {  struct mlx5_ifc_sqerr2rts_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -3414,7 +3436,7 @@ struct mlx5_ifc_sqd2rts_qp_out_bits {  struct mlx5_ifc_sqd2rts_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -3619,7 +3641,7 @@ struct mlx5_ifc_rts2rts_qp_out_bits {  struct mlx5_ifc_rts2rts_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -3649,7 +3671,7 @@ struct mlx5_ifc_rtr2rts_qp_out_bits {  struct mlx5_ifc_rtr2rts_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -3679,7 +3701,7 @@ struct mlx5_ifc_rst2init_qp_out_bits {  struct mlx5_ifc_rst2init_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -4802,19 +4824,19 @@ struct mlx5_ifc_query_eq_in_bits {  	u8         reserved_at_60[0x20];  }; -struct mlx5_ifc_encap_header_in_bits { +struct mlx5_ifc_packet_reformat_context_in_bits {  	u8         reserved_at_0[0x5]; -	u8         header_type[0x3]; +	u8         reformat_type[0x3];  	u8         reserved_at_8[0xe]; -	u8         encap_header_size[0xa]; +	u8         reformat_data_size[0xa];  	u8         reserved_at_20[0x10]; -	u8         encap_header[2][0x8]; +	u8         reformat_data[2][0x8]; -	u8         more_encap_header[0][0x8]; +	u8         more_reformat_data[0][0x8];  }; -struct mlx5_ifc_query_encap_header_out_bits { +struct mlx5_ifc_query_packet_reformat_context_out_bits {  	u8         status[0x8];  	u8         reserved_at_8[0x18]; @@ -4822,33 +4844,41 @@ struct mlx5_ifc_query_encap_header_out_bits {  	u8         reserved_at_40[0xa0]; -	struct mlx5_ifc_encap_header_in_bits encap_header[0]; +	struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context[0];  }; -struct mlx5_ifc_query_encap_header_in_bits { +struct mlx5_ifc_query_packet_reformat_context_in_bits {  	u8         opcode[0x10];  	u8         reserved_at_10[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; -	u8         encap_id[0x20]; +	u8         packet_reformat_id[0x20];  	u8         reserved_at_60[0xa0];  }; -struct mlx5_ifc_alloc_encap_header_out_bits { +struct mlx5_ifc_alloc_packet_reformat_context_out_bits {  	u8         status[0x8];  	u8         reserved_at_8[0x18];  	u8         syndrome[0x20]; -	u8         encap_id[0x20]; +	u8         packet_reformat_id[0x20];  	u8         reserved_at_60[0x20];  }; -struct mlx5_ifc_alloc_encap_header_in_bits { +enum { +	MLX5_REFORMAT_TYPE_L2_TO_VXLAN = 0x0, +	MLX5_REFORMAT_TYPE_L2_TO_NVGRE = 0x1, +	MLX5_REFORMAT_TYPE_L2_TO_L2_TUNNEL = 0x2, +	MLX5_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x3, +	MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x4, +}; + +struct mlx5_ifc_alloc_packet_reformat_context_in_bits {  	u8         opcode[0x10];  	u8         reserved_at_10[0x10]; @@ -4857,10 +4887,10 @@ struct mlx5_ifc_alloc_encap_header_in_bits {  	u8         reserved_at_40[0xa0]; -	struct mlx5_ifc_encap_header_in_bits encap_header; +	struct mlx5_ifc_packet_reformat_context_in_bits packet_reformat_context;  }; -struct mlx5_ifc_dealloc_encap_header_out_bits { +struct mlx5_ifc_dealloc_packet_reformat_context_out_bits {  	u8         status[0x8];  	u8         reserved_at_8[0x18]; @@ -4869,14 +4899,14 @@ struct mlx5_ifc_dealloc_encap_header_out_bits {  	u8         reserved_at_40[0x40];  }; -struct mlx5_ifc_dealloc_encap_header_in_bits { +struct mlx5_ifc_dealloc_packet_reformat_context_in_bits {  	u8         opcode[0x10];  	u8         reserved_at_10[0x10];  	u8         reserved_20[0x10];  	u8         op_mod[0x10]; -	u8         encap_id[0x20]; +	u8         packet_reformat_id[0x20];  	u8         reserved_60[0x20];  }; @@ -5174,7 +5204,7 @@ struct mlx5_ifc_qp_2rst_out_bits {  struct mlx5_ifc_qp_2rst_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5196,7 +5226,7 @@ struct mlx5_ifc_qp_2err_out_bits {  struct mlx5_ifc_qp_2err_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5296,7 +5326,7 @@ struct mlx5_ifc_modify_tis_bitmask_bits {  struct mlx5_ifc_modify_tis_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5335,7 +5365,7 @@ struct mlx5_ifc_modify_tir_out_bits {  struct mlx5_ifc_modify_tir_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5363,7 +5393,7 @@ struct mlx5_ifc_modify_sq_out_bits {  struct mlx5_ifc_modify_sq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5436,7 +5466,7 @@ struct mlx5_ifc_rqt_bitmask_bits {  struct mlx5_ifc_modify_rqt_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5470,7 +5500,7 @@ enum {  struct mlx5_ifc_modify_rq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5506,7 +5536,7 @@ struct mlx5_ifc_rmp_bitmask_bits {  struct mlx5_ifc_modify_rmp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5611,7 +5641,7 @@ enum {  struct mlx5_ifc_modify_cq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5623,7 +5653,10 @@ struct mlx5_ifc_modify_cq_in_bits {  	struct mlx5_ifc_cqc_bits cq_context; -	u8         reserved_at_280[0x600]; +	u8         reserved_at_280[0x40]; + +	u8         cq_umem_valid[0x1]; +	u8         reserved_at_2c1[0x5bf];  	u8         pas[0][0x40];  }; @@ -5771,7 +5804,7 @@ struct mlx5_ifc_init2rtr_qp_out_bits {  struct mlx5_ifc_init2rtr_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5801,7 +5834,7 @@ struct mlx5_ifc_init2init_qp_out_bits {  struct mlx5_ifc_init2init_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5900,7 +5933,7 @@ struct mlx5_ifc_drain_dct_out_bits {  struct mlx5_ifc_drain_dct_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5944,7 +5977,7 @@ struct mlx5_ifc_detach_from_mcg_out_bits {  struct mlx5_ifc_detach_from_mcg_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5968,7 +6001,7 @@ struct mlx5_ifc_destroy_xrq_out_bits {  struct mlx5_ifc_destroy_xrq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -5990,7 +6023,7 @@ struct mlx5_ifc_destroy_xrc_srq_out_bits {  struct mlx5_ifc_destroy_xrc_srq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6012,7 +6045,7 @@ struct mlx5_ifc_destroy_tis_out_bits {  struct mlx5_ifc_destroy_tis_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6034,7 +6067,7 @@ struct mlx5_ifc_destroy_tir_out_bits {  struct mlx5_ifc_destroy_tir_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6056,7 +6089,7 @@ struct mlx5_ifc_destroy_srq_out_bits {  struct mlx5_ifc_destroy_srq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6078,7 +6111,7 @@ struct mlx5_ifc_destroy_sq_out_bits {  struct mlx5_ifc_destroy_sq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6124,7 +6157,7 @@ struct mlx5_ifc_destroy_rqt_out_bits {  struct mlx5_ifc_destroy_rqt_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6146,7 +6179,7 @@ struct mlx5_ifc_destroy_rq_out_bits {  struct mlx5_ifc_destroy_rq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6190,7 +6223,7 @@ struct mlx5_ifc_destroy_rmp_out_bits {  struct mlx5_ifc_destroy_rmp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6212,7 +6245,7 @@ struct mlx5_ifc_destroy_qp_out_bits {  struct mlx5_ifc_destroy_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6364,7 +6397,7 @@ struct mlx5_ifc_destroy_dct_out_bits {  struct mlx5_ifc_destroy_dct_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6386,7 +6419,7 @@ struct mlx5_ifc_destroy_cq_out_bits {  struct mlx5_ifc_destroy_cq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6489,7 +6522,7 @@ struct mlx5_ifc_dealloc_xrcd_out_bits {  struct mlx5_ifc_dealloc_xrcd_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6577,7 +6610,7 @@ struct mlx5_ifc_dealloc_pd_out_bits {  struct mlx5_ifc_dealloc_pd_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6623,7 +6656,7 @@ struct mlx5_ifc_create_xrq_out_bits {  struct mlx5_ifc_create_xrq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6647,7 +6680,7 @@ struct mlx5_ifc_create_xrc_srq_out_bits {  struct mlx5_ifc_create_xrc_srq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6656,7 +6689,9 @@ struct mlx5_ifc_create_xrc_srq_in_bits {  	struct mlx5_ifc_xrc_srqc_bits xrc_srq_context_entry; -	u8         reserved_at_280[0x600]; +	u8         reserved_at_280[0x40]; +	u8         xrc_srq_umem_valid[0x1]; +	u8         reserved_at_2c1[0x5bf];  	u8         pas[0][0x40];  }; @@ -6675,7 +6710,7 @@ struct mlx5_ifc_create_tis_out_bits {  struct mlx5_ifc_create_tis_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6699,7 +6734,7 @@ struct mlx5_ifc_create_tir_out_bits {  struct mlx5_ifc_create_tir_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6723,7 +6758,7 @@ struct mlx5_ifc_create_srq_out_bits {  struct mlx5_ifc_create_srq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6751,7 +6786,7 @@ struct mlx5_ifc_create_sq_out_bits {  struct mlx5_ifc_create_sq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6805,7 +6840,7 @@ struct mlx5_ifc_create_rqt_out_bits {  struct mlx5_ifc_create_rqt_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6829,7 +6864,7 @@ struct mlx5_ifc_create_rq_out_bits {  struct mlx5_ifc_create_rq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6853,7 +6888,7 @@ struct mlx5_ifc_create_rmp_out_bits {  struct mlx5_ifc_create_rmp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6877,7 +6912,7 @@ struct mlx5_ifc_create_qp_out_bits {  struct mlx5_ifc_create_qp_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -6890,7 +6925,10 @@ struct mlx5_ifc_create_qp_in_bits {  	struct mlx5_ifc_qpc_bits qpc; -	u8         reserved_at_800[0x80]; +	u8         reserved_at_800[0x60]; + +	u8         wq_umem_valid[0x1]; +	u8         reserved_at_861[0x1f];  	u8         pas[0][0x40];  }; @@ -6952,7 +6990,8 @@ struct mlx5_ifc_create_mkey_in_bits {  	u8         reserved_at_40[0x20];  	u8         pg_access[0x1]; -	u8         reserved_at_61[0x1f]; +	u8         mkey_umem_valid[0x1]; +	u8         reserved_at_62[0x1e];  	struct mlx5_ifc_mkc_bits memory_key_mkey_entry; @@ -6978,7 +7017,7 @@ struct mlx5_ifc_create_flow_table_out_bits {  };  struct mlx5_ifc_flow_table_context_bits { -	u8         encap_en[0x1]; +	u8         reformat_en[0x1];  	u8         decap_en[0x1];  	u8         reserved_at_2[0x2];  	u8         table_miss_action[0x4]; @@ -7120,7 +7159,7 @@ struct mlx5_ifc_create_dct_out_bits {  struct mlx5_ifc_create_dct_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7146,7 +7185,7 @@ struct mlx5_ifc_create_cq_out_bits {  struct mlx5_ifc_create_cq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7155,7 +7194,10 @@ struct mlx5_ifc_create_cq_in_bits {  	struct mlx5_ifc_cqc_bits cq_context; -	u8         reserved_at_280[0x600]; +	u8         reserved_at_280[0x60]; + +	u8         cq_umem_valid[0x1]; +	u8         reserved_at_2e1[0x59f];  	u8         pas[0][0x40];  }; @@ -7203,7 +7245,7 @@ struct mlx5_ifc_attach_to_mcg_out_bits {  struct mlx5_ifc_attach_to_mcg_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7254,7 +7296,7 @@ enum {  struct mlx5_ifc_arm_xrc_srq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7282,7 +7324,7 @@ enum {  struct mlx5_ifc_arm_rq_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7330,7 +7372,7 @@ struct mlx5_ifc_alloc_xrcd_out_bits {  struct mlx5_ifc_alloc_xrcd_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7418,7 +7460,7 @@ struct mlx5_ifc_alloc_pd_out_bits {  struct mlx5_ifc_alloc_pd_in_bits {  	u8         opcode[0x10]; -	u8         reserved_at_10[0x10]; +	u8         uid[0x10];  	u8         reserved_at_20[0x10];  	u8         op_mod[0x10]; @@ -7786,20 +7828,34 @@ struct mlx5_ifc_pplr_reg_bits {  struct mlx5_ifc_pplm_reg_bits {  	u8         reserved_at_0[0x8]; -	u8         local_port[0x8]; -	u8         reserved_at_10[0x10]; +	u8	   local_port[0x8]; +	u8	   reserved_at_10[0x10]; -	u8         reserved_at_20[0x20]; +	u8	   reserved_at_20[0x20]; -	u8         port_profile_mode[0x8]; -	u8         static_port_profile[0x8]; -	u8         active_port_profile[0x8]; -	u8         reserved_at_58[0x8]; +	u8	   port_profile_mode[0x8]; +	u8	   static_port_profile[0x8]; +	u8	   active_port_profile[0x8]; +	u8	   reserved_at_58[0x8]; -	u8         retransmission_active[0x8]; -	u8         fec_mode_active[0x18]; +	u8	   retransmission_active[0x8]; +	u8	   fec_mode_active[0x18]; -	u8         reserved_at_80[0x20]; +	u8	   rs_fec_correction_bypass_cap[0x4]; +	u8	   reserved_at_84[0x8]; +	u8	   fec_override_cap_56g[0x4]; +	u8	   fec_override_cap_100g[0x4]; +	u8	   fec_override_cap_50g[0x4]; +	u8	   fec_override_cap_25g[0x4]; +	u8	   fec_override_cap_10g_40g[0x4]; + +	u8	   rs_fec_correction_bypass_admin[0x4]; +	u8	   reserved_at_a4[0x8]; +	u8	   fec_override_admin_56g[0x4]; +	u8	   fec_override_admin_100g[0x4]; +	u8	   fec_override_admin_50g[0x4]; +	u8	   fec_override_admin_25g[0x4]; +	u8	   fec_override_admin_10g_40g[0x4];  };  struct mlx5_ifc_ppcnt_reg_bits { @@ -8084,7 +8140,8 @@ struct mlx5_ifc_pcam_enhanced_features_bits {  	u8         rx_icrc_encapsulated_counter[0x1];  	u8	   reserved_at_6e[0x8];  	u8         pfcc_mask[0x1]; -	u8         reserved_at_77[0x4]; +	u8         reserved_at_77[0x3]; +	u8         per_lane_error_counters[0x1];  	u8         rx_buffer_fullness_counters[0x1];  	u8         ptys_connector_type[0x1];  	u8         reserved_at_7d[0x1]; @@ -8095,7 +8152,10 @@ struct mlx5_ifc_pcam_enhanced_features_bits {  struct mlx5_ifc_pcam_regs_5000_to_507f_bits {  	u8         port_access_reg_cap_mask_127_to_96[0x20];  	u8         port_access_reg_cap_mask_95_to_64[0x20]; -	u8         port_access_reg_cap_mask_63_to_32[0x20]; + +	u8         port_access_reg_cap_mask_63_to_36[0x1c]; +	u8         pplm[0x1]; +	u8         port_access_reg_cap_mask_34_to_32[0x3];  	u8         port_access_reg_cap_mask_31_to_13[0x13];  	u8         pbmc[0x1]; diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index 4778d41085d4..fbe322c966bc 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h @@ -471,6 +471,7 @@ struct mlx5_core_qp {  	int			qpn;  	struct mlx5_rsc_debug	*dbg;  	int			pid; +	u16			uid;  };  struct mlx5_core_dct { diff --git a/include/linux/mlx5/srq.h b/include/linux/mlx5/srq.h index 24ff23e27c8a..1b1f3c20c6a3 100644 --- a/include/linux/mlx5/srq.h +++ b/include/linux/mlx5/srq.h @@ -61,6 +61,7 @@ struct mlx5_srq_attr {  	u32 tm_next_tag;  	u32 tm_hw_phase_cnt;  	u32 tm_sw_phase_cnt; +	u16 uid;  };  struct mlx5_core_dev; diff --git a/include/linux/mlx5/transobj.h b/include/linux/mlx5/transobj.h index 83a33a1873a6..7f5ca2cd3a32 100644 --- a/include/linux/mlx5/transobj.h +++ b/include/linux/mlx5/transobj.h @@ -90,6 +90,8 @@ struct mlx5_hairpin {  	u32 *rqn;  	u32 *sqn; + +	bool peer_gone;  };  struct mlx5_hairpin * diff --git a/include/linux/mlx5/vport.h b/include/linux/mlx5/vport.h index 7e7c6dfcfb09..9c694808c212 100644 --- a/include/linux/mlx5/vport.h +++ b/include/linux/mlx5/vport.h @@ -121,4 +121,6 @@ int mlx5_nic_vport_query_local_lb(struct mlx5_core_dev *mdev, bool *status);  int mlx5_nic_vport_affiliate_multiport(struct mlx5_core_dev *master_mdev,  				       struct mlx5_core_dev *port_mdev);  int mlx5_nic_vport_unaffiliate_multiport(struct mlx5_core_dev *port_mdev); + +u64 mlx5_query_nic_system_image_guid(struct mlx5_core_dev *mdev);  #endif /* __MLX5_VPORT_H__ */ |