diff options
| author | Sagi Grimberg <sagig@mellanox.com> | 2014-08-13 12:54:32 -0400 |
|---|---|---|
| committer | Roland Dreier <roland@purestorage.com> | 2014-10-09 03:10:53 -0400 |
| commit | 142537f4e5f7ffd3e34b0c46646ac9cb5d986d06 (patch) | |
| tree | c85c8cf791d85ef3bac4390106869619c9b51832 /include/linux | |
| parent | f043032ef1acd294e0360bec96c91b90dec7cc17 (diff) | |
IB/mlx5: Use extended internal signature layout
Rather than using the basic BSF layout which utilizes a pre-configured
signature settings (sufficient for current DIF implementation), we use
the extended BSF layout to expose advanced signature settings. These
settings will also be exposed to the user later.
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mlx5/qp.h | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h index 4aa5634dc210..69f5378455b7 100644 --- a/include/linux/mlx5/qp.h +++ b/include/linux/mlx5/qp.h | |||
| @@ -43,6 +43,12 @@ | |||
| 43 | #define MLX5_CPY_GRD_MASK 0xc0 | 43 | #define MLX5_CPY_GRD_MASK 0xc0 |
| 44 | #define MLX5_CPY_APP_MASK 0x30 | 44 | #define MLX5_CPY_APP_MASK 0x30 |
| 45 | #define MLX5_CPY_REF_MASK 0x0f | 45 | #define MLX5_CPY_REF_MASK 0x0f |
| 46 | #define MLX5_BSF_INC_REFTAG (1 << 6) | ||
| 47 | #define MLX5_BSF_INL_VALID (1 << 15) | ||
| 48 | #define MLX5_BSF_REFRESH_DIF (1 << 14) | ||
| 49 | #define MLX5_BSF_REPEAT_BLOCK (1 << 7) | ||
| 50 | #define MLX5_BSF_APPTAG_ESCAPE 0x1 | ||
| 51 | #define MLX5_BSF_APPREF_ESCAPE 0x2 | ||
| 46 | 52 | ||
| 47 | enum mlx5_qp_optpar { | 53 | enum mlx5_qp_optpar { |
| 48 | MLX5_QP_OPTPAR_ALT_ADDR_PATH = 1 << 0, | 54 | MLX5_QP_OPTPAR_ALT_ADDR_PATH = 1 << 0, |
| @@ -290,6 +296,22 @@ struct mlx5_wqe_inline_seg { | |||
| 290 | __be32 byte_count; | 296 | __be32 byte_count; |
| 291 | }; | 297 | }; |
| 292 | 298 | ||
| 299 | enum mlx5_sig_type { | ||
| 300 | MLX5_DIF_CRC = 0x1, | ||
| 301 | MLX5_DIF_IPCS = 0x2, | ||
| 302 | }; | ||
| 303 | |||
| 304 | struct mlx5_bsf_inl { | ||
| 305 | __be16 vld_refresh; | ||
| 306 | __be16 dif_apptag; | ||
| 307 | __be32 dif_reftag; | ||
| 308 | u8 sig_type; | ||
| 309 | u8 rp_inv_seed; | ||
| 310 | u8 rsvd[3]; | ||
| 311 | u8 dif_inc_ref_guard_check; | ||
| 312 | __be16 dif_app_bitmask_check; | ||
| 313 | }; | ||
| 314 | |||
| 293 | struct mlx5_bsf { | 315 | struct mlx5_bsf { |
| 294 | struct mlx5_bsf_basic { | 316 | struct mlx5_bsf_basic { |
| 295 | u8 bsf_size_sbs; | 317 | u8 bsf_size_sbs; |
| @@ -313,14 +335,8 @@ struct mlx5_bsf { | |||
| 313 | __be32 w_tfs_psv; | 335 | __be32 w_tfs_psv; |
| 314 | __be32 m_tfs_psv; | 336 | __be32 m_tfs_psv; |
| 315 | } ext; | 337 | } ext; |
| 316 | struct mlx5_bsf_inl { | 338 | struct mlx5_bsf_inl w_inl; |
| 317 | __be32 w_inl_vld; | 339 | struct mlx5_bsf_inl m_inl; |
| 318 | __be32 w_rsvd; | ||
| 319 | __be64 w_block_format; | ||
| 320 | __be32 m_inl_vld; | ||
| 321 | __be32 m_rsvd; | ||
| 322 | __be64 m_block_format; | ||
| 323 | } inl; | ||
| 324 | }; | 340 | }; |
| 325 | 341 | ||
| 326 | struct mlx5_klm { | 342 | struct mlx5_klm { |
