@@ -80,23 +80,15 @@ enum {
80
80
81
81
enum {
82
82
MLX5_OBJ_TYPE_SW_ICM = 0x0008 ,
83
- MLX5_OBJ_TYPE_HEADER_MODIFY_ARGUMENT = 0x23 ,
84
- };
85
-
86
- enum {
87
- MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM = (1ULL << MLX5_OBJ_TYPE_SW_ICM ),
88
- MLX5_GENERAL_OBJ_TYPES_CAP_GENEVE_TLV_OPT = (1ULL << 11 ),
89
- MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_NET_Q = (1ULL << 13 ),
90
- MLX5_GENERAL_OBJ_TYPES_CAP_HEADER_MODIFY_ARGUMENT =
91
- (1ULL << MLX5_OBJ_TYPE_HEADER_MODIFY_ARGUMENT ),
92
- MLX5_GENERAL_OBJ_TYPES_CAP_MACSEC_OFFLOAD = (1ULL << 39 ),
93
- };
94
-
95
- enum {
96
83
MLX5_OBJ_TYPE_GENEVE_TLV_OPT = 0x000b ,
97
84
MLX5_OBJ_TYPE_VIRTIO_NET_Q = 0x000d ,
98
85
MLX5_OBJ_TYPE_VIRTIO_Q_COUNTERS = 0x001c ,
99
86
MLX5_OBJ_TYPE_MATCH_DEFINER = 0x0018 ,
87
+ MLX5_OBJ_TYPE_HEADER_MODIFY_ARGUMENT = 0x23 ,
88
+ MLX5_OBJ_TYPE_STC = 0x0040 ,
89
+ MLX5_OBJ_TYPE_RTC = 0x0041 ,
90
+ MLX5_OBJ_TYPE_STE = 0x0042 ,
91
+ MLX5_OBJ_TYPE_MODIFY_HDR_PATTERN = 0x0043 ,
100
92
MLX5_OBJ_TYPE_PAGE_TRACK = 0x46 ,
101
93
MLX5_OBJ_TYPE_MKEY = 0xff01 ,
102
94
MLX5_OBJ_TYPE_QP = 0xff02 ,
@@ -112,6 +104,16 @@ enum {
112
104
MLX5_OBJ_TYPE_RQT = 0xff0e ,
113
105
MLX5_OBJ_TYPE_FLOW_COUNTER = 0xff0f ,
114
106
MLX5_OBJ_TYPE_CQ = 0xff10 ,
107
+ MLX5_OBJ_TYPE_FT_ALIAS = 0xff15 ,
108
+ };
109
+
110
+ enum {
111
+ MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM = (1ULL << MLX5_OBJ_TYPE_SW_ICM ),
112
+ MLX5_GENERAL_OBJ_TYPES_CAP_GENEVE_TLV_OPT = (1ULL << 11 ),
113
+ MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_NET_Q = (1ULL << 13 ),
114
+ MLX5_GENERAL_OBJ_TYPES_CAP_HEADER_MODIFY_ARGUMENT =
115
+ (1ULL << MLX5_OBJ_TYPE_HEADER_MODIFY_ARGUMENT ),
116
+ MLX5_GENERAL_OBJ_TYPES_CAP_MACSEC_OFFLOAD = (1ULL << 39 ),
115
117
};
116
118
117
119
enum {
@@ -313,6 +315,7 @@ enum {
313
315
MLX5_CMD_OP_MODIFY_VHCA_STATE = 0xb0e ,
314
316
MLX5_CMD_OP_SYNC_CRYPTO = 0xb12 ,
315
317
MLX5_CMD_OP_ALLOW_OTHER_VHCA_ACCESS = 0xb16 ,
318
+ MLX5_CMD_OP_GENERATE_WQE = 0xb17 ,
316
319
MLX5_CMD_OP_MAX
317
320
};
318
321
@@ -485,7 +488,13 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
485
488
u8 reserved_at_66 [0x2 ];
486
489
u8 reformat_add_macsec [0x1 ];
487
490
u8 reformat_remove_macsec [0x1 ];
488
- u8 reserved_at_6a [0xe ];
491
+ u8 reparse [0x1 ];
492
+ u8 reserved_at_6b [0x1 ];
493
+ u8 cross_vhca_object [0x1 ];
494
+ u8 reformat_l2_to_l3_audp_tunnel [0x1 ];
495
+ u8 reformat_l3_audp_tunnel_to_l2 [0x1 ];
496
+ u8 ignore_flow_level_rtc_valid [0x1 ];
497
+ u8 reserved_at_70 [0x8 ];
489
498
u8 log_max_ft_num [0x8 ];
490
499
491
500
u8 reserved_at_80 [0x10 ];
@@ -522,7 +531,15 @@ struct mlx5_ifc_ipv6_layout_bits {
522
531
u8 ipv6 [16 ][0x8 ];
523
532
};
524
533
534
+ struct mlx5_ifc_ipv6_simple_layout_bits {
535
+ u8 ipv6_127_96 [0x20 ];
536
+ u8 ipv6_95_64 [0x20 ];
537
+ u8 ipv6_63_32 [0x20 ];
538
+ u8 ipv6_31_0 [0x20 ];
539
+ };
540
+
525
541
union mlx5_ifc_ipv6_layout_ipv4_layout_auto_bits {
542
+ struct mlx5_ifc_ipv6_simple_layout_bits ipv6_simple_layout ;
526
543
struct mlx5_ifc_ipv6_layout_bits ipv6_layout ;
527
544
struct mlx5_ifc_ipv4_layout_bits ipv4_layout ;
528
545
u8 reserved_at_0 [0x80 ];
@@ -911,7 +928,9 @@ struct mlx5_ifc_flow_table_eswitch_cap_bits {
911
928
u8 reserved_at_8 [0x5 ];
912
929
u8 fdb_uplink_hairpin [0x1 ];
913
930
u8 fdb_multi_path_any_table_limit_regc [0x1 ];
914
- u8 reserved_at_f [0x3 ];
931
+ u8 reserved_at_f [0x1 ];
932
+ u8 fdb_dynamic_tunnel [0x1 ];
933
+ u8 reserved_at_11 [0x1 ];
915
934
u8 fdb_multi_path_any_table [0x1 ];
916
935
u8 reserved_at_13 [0x2 ];
917
936
u8 fdb_modify_header_fwd_to_table [0x1 ];
@@ -950,6 +969,73 @@ struct mlx5_ifc_flow_table_eswitch_cap_bits {
950
969
u8 reserved_at_1900 [0x6700 ];
951
970
};
952
971
972
+ struct mlx5_ifc_wqe_based_flow_table_cap_bits {
973
+ u8 reserved_at_0 [0x3 ];
974
+ u8 log_max_num_ste [0x5 ];
975
+ u8 reserved_at_8 [0x3 ];
976
+ u8 log_max_num_stc [0x5 ];
977
+ u8 reserved_at_10 [0x3 ];
978
+ u8 log_max_num_rtc [0x5 ];
979
+ u8 reserved_at_18 [0x3 ];
980
+ u8 log_max_num_header_modify_pattern [0x5 ];
981
+
982
+ u8 rtc_hash_split_table [0x1 ];
983
+ u8 rtc_linear_lookup_table [0x1 ];
984
+ u8 reserved_at_22 [0x1 ];
985
+ u8 stc_alloc_log_granularity [0x5 ];
986
+ u8 reserved_at_28 [0x3 ];
987
+ u8 stc_alloc_log_max [0x5 ];
988
+ u8 reserved_at_30 [0x3 ];
989
+ u8 ste_alloc_log_granularity [0x5 ];
990
+ u8 reserved_at_38 [0x3 ];
991
+ u8 ste_alloc_log_max [0x5 ];
992
+
993
+ u8 reserved_at_40 [0xb ];
994
+ u8 rtc_reparse_mode [0x5 ];
995
+ u8 reserved_at_50 [0x3 ];
996
+ u8 rtc_index_mode [0x5 ];
997
+ u8 reserved_at_58 [0x3 ];
998
+ u8 rtc_log_depth_max [0x5 ];
999
+
1000
+ u8 reserved_at_60 [0x10 ];
1001
+ u8 ste_format [0x10 ];
1002
+
1003
+ u8 stc_action_type [0x80 ];
1004
+
1005
+ u8 header_insert_type [0x10 ];
1006
+ u8 header_remove_type [0x10 ];
1007
+
1008
+ u8 trivial_match_definer [0x20 ];
1009
+
1010
+ u8 reserved_at_140 [0x1b ];
1011
+ u8 rtc_max_num_hash_definer_gen_wqe [0x5 ];
1012
+
1013
+ u8 reserved_at_160 [0x18 ];
1014
+ u8 access_index_mode [0x8 ];
1015
+
1016
+ u8 reserved_at_180 [0x10 ];
1017
+ u8 ste_format_gen_wqe [0x10 ];
1018
+
1019
+ u8 linear_match_definer_reg_c3 [0x20 ];
1020
+
1021
+ u8 fdb_jump_to_tir_stc [0x1 ];
1022
+ u8 reserved_at_1c1 [0x1f ];
1023
+ };
1024
+
1025
+ struct mlx5_ifc_esw_cap_bits {
1026
+ u8 reserved_at_0 [0x1d ];
1027
+ u8 merged_eswitch [0x1 ];
1028
+ u8 reserved_at_1e [0x2 ];
1029
+
1030
+ u8 reserved_at_20 [0x40 ];
1031
+
1032
+ u8 esw_manager_vport_number_valid [0x1 ];
1033
+ u8 reserved_at_61 [0xf ];
1034
+ u8 esw_manager_vport_number [0x10 ];
1035
+
1036
+ u8 reserved_at_80 [0x780 ];
1037
+ };
1038
+
953
1039
enum {
954
1040
MLX5_COUNTER_SOURCE_ESWITCH = 0x0 ,
955
1041
MLX5_COUNTER_FLOW_ESWITCH = 0x1 ,
@@ -1443,9 +1529,13 @@ enum {
1443
1529
};
1444
1530
1445
1531
enum {
1532
+ MLX5_FLEX_IPV4_OVER_VXLAN_ENABLED = 1 << 0 ,
1533
+ MLX5_FLEX_IPV6_OVER_VXLAN_ENABLED = 1 << 1 ,
1534
+ MLX5_FLEX_IPV6_OVER_IP_ENABLED = 1 << 2 ,
1446
1535
MLX5_FLEX_PARSER_GENEVE_ENABLED = 1 << 3 ,
1447
1536
MLX5_FLEX_PARSER_MPLS_OVER_GRE_ENABLED = 1 << 4 ,
1448
1537
MLX5_FLEX_PARSER_MPLS_OVER_UDP_ENABLED = 1 << 5 ,
1538
+ MLX5_FLEX_P_BIT_VXLAN_GPE_ENABLED = 1 << 6 ,
1449
1539
MLX5_FLEX_PARSER_VXLAN_GPE_ENABLED = 1 << 7 ,
1450
1540
MLX5_FLEX_PARSER_ICMP_V4_ENABLED = 1 << 8 ,
1451
1541
MLX5_FLEX_PARSER_ICMP_V6_ENABLED = 1 << 9 ,
@@ -1650,7 +1740,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {
1650
1740
u8 pci_sync_for_fw_update_event [0x1 ];
1651
1741
u8 reserved_at_1f2 [0x6 ];
1652
1742
u8 init2_lag_tx_port_affinity [0x1 ];
1653
- u8 reserved_at_1fa [0x3 ];
1743
+ u8 reserved_at_1fa [0x2 ];
1744
+ u8 wqe_based_flow_table_update_cap [0x1 ];
1654
1745
u8 cqe_version [0x4 ];
1655
1746
1656
1747
u8 compact_address_vector [0x1 ];
@@ -1959,7 +2050,7 @@ struct mlx5_ifc_cmd_hca_cap_bits {
1959
2050
1960
2051
u8 reserved_at_760 [0x3 ];
1961
2052
u8 log_max_num_header_modify_argument [0x5 ];
1962
- u8 reserved_at_768 [0x4 ];
2053
+ u8 log_header_modify_argument_granularity_offset [0x4 ];
1963
2054
u8 log_header_modify_argument_granularity [0x4 ];
1964
2055
u8 reserved_at_770 [0x3 ];
1965
2056
u8 log_header_modify_argument_max_alloc [0x5 ];
@@ -2006,7 +2097,8 @@ struct mlx5_ifc_cmd_hca_cap_2_bits {
2006
2097
u8 reserved_at_140 [0x60 ];
2007
2098
2008
2099
u8 flow_table_type_2_type [0x8 ];
2009
- u8 reserved_at_1a8 [0x3 ];
2100
+ u8 reserved_at_1a8 [0x2 ];
2101
+ u8 format_select_dw_8_6_ext [0x1 ];
2010
2102
u8 log_min_mkey_entity_size [0x5 ];
2011
2103
u8 reserved_at_1b0 [0x10 ];
2012
2104
@@ -2022,6 +2114,16 @@ struct mlx5_ifc_cmd_hca_cap_2_bits {
2022
2114
u8 reserved_at_250 [0x10 ];
2023
2115
2024
2116
u8 reserved_at_260 [0x120 ];
2117
+
2118
+ u8 format_select_dw_gtpu_dw_0 [0x8 ];
2119
+ u8 format_select_dw_gtpu_dw_1 [0x8 ];
2120
+ u8 format_select_dw_gtpu_dw_2 [0x8 ];
2121
+ u8 format_select_dw_gtpu_first_ext_dw_0 [0x8 ];
2122
+
2123
+ u8 generate_wqe_type [0x20 ];
2124
+
2125
+ u8 reserved_at_2c0 [0xc0 ];
2126
+
2025
2127
u8 reserved_at_380 [0xb ];
2026
2128
u8 min_mkey_log_entity_size_fixed_buffer [0x5 ];
2027
2129
u8 ec_vf_vport_base [0x10 ];
@@ -2037,9 +2139,11 @@ struct mlx5_ifc_cmd_hca_cap_2_bits {
2037
2139
2038
2140
u8 reserved_at_400 [0x1 ];
2039
2141
u8 min_mkey_log_entity_size_fixed_buffer_valid [0x1 ];
2040
- u8 reserved_at_402 [0x1e ];
2142
+ u8 reserved_at_402 [0xe ];
2143
+ u8 return_reg_id [0x10 ];
2041
2144
2042
- u8 reserved_at_420 [0x20 ];
2145
+ u8 reserved_at_420 [0x1c ];
2146
+ u8 flow_table_hash_type [0x4 ];
2043
2147
2044
2148
u8 reserved_at_440 [0x8 ];
2045
2149
u8 max_num_eqs_24b [0x18 ];
@@ -2086,7 +2190,7 @@ struct mlx5_ifc_extended_dest_format_bits {
2086
2190
u8 reserved_at_60 [0x20 ];
2087
2191
};
2088
2192
2089
- union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits {
2193
+ union mlx5_ifc_dest_format_flow_counter_list_auto_bits {
2090
2194
struct mlx5_ifc_extended_dest_format_bits extended_dest_format ;
2091
2195
struct mlx5_ifc_flow_counter_list_bits flow_counter_list ;
2092
2196
};
@@ -2178,7 +2282,10 @@ struct mlx5_ifc_wq_bits {
2178
2282
u8 reserved_at_139 [0x4 ];
2179
2283
u8 log_wqe_stride_size [0x3 ];
2180
2284
2181
- u8 reserved_at_140 [0x80 ];
2285
+ u8 dbr_umem_id [0x20 ];
2286
+ u8 wq_umem_id [0x20 ];
2287
+
2288
+ u8 wq_umem_offset [0x40 ];
2182
2289
2183
2290
u8 headers_mkey [0x20 ];
2184
2291
@@ -3562,6 +3669,8 @@ union mlx5_ifc_hca_cap_union_bits {
3562
3669
struct mlx5_ifc_per_protocol_networking_offload_caps_bits per_protocol_networking_offload_caps ;
3563
3670
struct mlx5_ifc_flow_table_nic_cap_bits flow_table_nic_cap ;
3564
3671
struct mlx5_ifc_flow_table_eswitch_cap_bits flow_table_eswitch_cap ;
3672
+ struct mlx5_ifc_wqe_based_flow_table_cap_bits wqe_based_flow_table_cap ;
3673
+ struct mlx5_ifc_esw_cap_bits esw_cap ;
3565
3674
struct mlx5_ifc_e_switch_cap_bits e_switch_cap ;
3566
3675
struct mlx5_ifc_port_selection_cap_bits port_selection_cap ;
3567
3676
struct mlx5_ifc_qos_cap_bits qos_cap ;
@@ -3678,7 +3787,7 @@ struct mlx5_ifc_flow_context_bits {
3678
3787
3679
3788
u8 reserved_at_1300 [0x500 ];
3680
3789
3681
- union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination [];
3790
+ union mlx5_ifc_dest_format_flow_counter_list_auto_bits destination [];
3682
3791
};
3683
3792
3684
3793
enum {
@@ -3919,7 +4028,8 @@ struct mlx5_ifc_sqc_bits {
3919
4028
u8 reg_umr [0x1 ];
3920
4029
u8 allow_swp [0x1 ];
3921
4030
u8 hairpin [0x1 ];
3922
- u8 reserved_at_f [0xb ];
4031
+ u8 non_wire [0x1 ];
4032
+ u8 reserved_at_10 [0xa ];
3923
4033
u8 ts_format [0x2 ];
3924
4034
u8 reserved_at_1c [0x4 ];
3925
4035
@@ -4961,6 +5071,16 @@ struct mlx5_ifc_set_fte_in_bits {
4961
5071
struct mlx5_ifc_flow_context_bits flow_context ;
4962
5072
};
4963
5073
5074
+ struct mlx5_ifc_dest_format_bits {
5075
+ u8 destination_type [0x8 ];
5076
+ u8 destination_id [0x18 ];
5077
+
5078
+ u8 destination_eswitch_owner_vhca_id_valid [0x1 ];
5079
+ u8 packet_reformat [0x1 ];
5080
+ u8 reserved_at_22 [0xe ];
5081
+ u8 destination_eswitch_owner_vhca_id [0x10 ];
5082
+ };
5083
+
4964
5084
struct mlx5_ifc_rts2rts_qp_out_bits {
4965
5085
u8 status [0x8 ];
4966
5086
u8 reserved_at_8 [0x18 ];
@@ -6127,7 +6247,8 @@ struct mlx5_ifc_flow_table_context_bits {
6127
6247
u8 termination_table [0x1 ];
6128
6248
u8 table_miss_action [0x4 ];
6129
6249
u8 level [0x8 ];
6130
- u8 reserved_at_10 [0x8 ];
6250
+ u8 rtc_valid [0x1 ];
6251
+ u8 reserved_at_11 [0x7 ];
6131
6252
u8 log_size [0x8 ];
6132
6253
6133
6254
u8 reserved_at_20 [0x8 ];
@@ -6137,11 +6258,21 @@ struct mlx5_ifc_flow_table_context_bits {
6137
6258
u8 lag_master_next_table_id [0x18 ];
6138
6259
6139
6260
u8 reserved_at_60 [0x60 ];
6261
+ union {
6262
+ struct {
6263
+ u8 sw_owner_icm_root_1 [0x40 ];
6264
+
6265
+ u8 sw_owner_icm_root_0 [0x40 ];
6266
+ } sws ;
6267
+ struct {
6268
+ u8 rtc_id_0 [0x20 ];
6140
6269
6141
- u8 sw_owner_icm_root_1 [ 0x40 ];
6270
+ u8 rtc_id_1 [ 0x20 ];
6142
6271
6143
- u8 sw_owner_icm_root_0 [0x40 ];
6272
+ u8 reserved_at_100 [0x40 ];
6144
6273
6274
+ } hws ;
6275
+ };
6145
6276
};
6146
6277
6147
6278
struct mlx5_ifc_query_flow_table_out_bits {
@@ -8923,7 +9054,9 @@ struct mlx5_ifc_create_qp_in_bits {
8923
9054
8924
9055
struct mlx5_ifc_qpc_bits qpc ;
8925
9056
8926
- u8 reserved_at_800 [0x60 ];
9057
+ u8 wq_umem_offset [0x40 ];
9058
+
9059
+ u8 wq_umem_id [0x20 ];
8927
9060
8928
9061
u8 wq_umem_valid [0x1 ];
8929
9062
u8 reserved_at_861 [0x1f ];
0 commit comments