@@ -2168,6 +2168,50 @@ static inline void mlxsw_reg_spvc_pack(char *payload, u16 local_port, bool et1,
2168
2168
mlxsw_reg_spvc_et0_set (payload , et0 );
2169
2169
}
2170
2170
2171
+ /* SFFP - Switch FID Flooding Profiles Register
2172
+ * --------------------------------------------
2173
+ * The SFFP register populates the fid flooding profile tables used for the NVE
2174
+ * flooding and Compressed-FID Flooding (CFF).
2175
+ *
2176
+ * Reserved on Spectrum-1.
2177
+ */
2178
+ #define MLXSW_REG_SFFP_ID 0x2029
2179
+ #define MLXSW_REG_SFFP_LEN 0x0C
2180
+
2181
+ MLXSW_REG_DEFINE (sffp , MLXSW_REG_SFFP_ID , MLXSW_REG_SFFP_LEN );
2182
+
2183
+ /* reg_sffp_profile_id
2184
+ * Profile ID a.k.a. SFMR.nve_flood_prf_id or SFMR.cff_prf_id
2185
+ * Range 0..max_cap_nve_flood_prf-1
2186
+ * Access: Index
2187
+ */
2188
+ MLXSW_ITEM32 (reg , sffp , profile_id , 0x00 , 16 , 2 );
2189
+
2190
+ /* reg_sffp_type
2191
+ * The traffic type to reach the flooding table.
2192
+ * Same as SFGC.type
2193
+ * Access: Index
2194
+ */
2195
+ MLXSW_ITEM32 (reg , sffp , type , 0x00 , 0 , 4 );
2196
+
2197
+ /* reg_sffp_flood_offset
2198
+ * Flood offset. Offset to add to SFMR.cff_mid_base to get the final PGT address
2199
+ * for FID flood; or offset to add to SFMR.nve_tunnel_flood_ptr to get KVD
2200
+ * pointer for NVE underlay.
2201
+ * Access: RW
2202
+ */
2203
+ MLXSW_ITEM32 (reg , sffp , flood_offset , 0x04 , 0 , 3 );
2204
+
2205
+ static inline void mlxsw_reg_sffp_pack (char * payload , u8 profile_id ,
2206
+ enum mlxsw_reg_sfgc_type type ,
2207
+ u8 flood_offset )
2208
+ {
2209
+ MLXSW_REG_ZERO (sffp , payload );
2210
+ mlxsw_reg_sffp_profile_id_set (payload , profile_id );
2211
+ mlxsw_reg_sffp_type_set (payload , type );
2212
+ mlxsw_reg_sffp_flood_offset_set (payload , flood_offset );
2213
+ }
2214
+
2171
2215
/* SPEVET - Switch Port Egress VLAN EtherType
2172
2216
* ------------------------------------------
2173
2217
* The switch port egress VLAN EtherType configures which EtherType to push at
@@ -12946,6 +12990,7 @@ static const struct mlxsw_reg_info *mlxsw_reg_infos[] = {
12946
12990
MLXSW_REG (spvmlr ),
12947
12991
MLXSW_REG (spfsr ),
12948
12992
MLXSW_REG (spvc ),
12993
+ MLXSW_REG (sffp ),
12949
12994
MLXSW_REG (spevet ),
12950
12995
MLXSW_REG (smpe ),
12951
12996
MLXSW_REG (smid2 ),
0 commit comments