&size_params);
 }
 
+static int mlxsw_sp_resources_rifs_register(struct mlxsw_core *mlxsw_core)
+{
+       struct devlink *devlink = priv_to_devlink(mlxsw_core);
+       struct devlink_resource_size_params size_params;
+       u64 max_rifs;
+
+       if (!MLXSW_CORE_RES_VALID(mlxsw_core, MAX_RIFS))
+               return -EIO;
+
+       max_rifs = MLXSW_CORE_RES_GET(mlxsw_core, MAX_RIFS);
+       devlink_resource_size_params_init(&size_params, max_rifs, max_rifs,
+                                         1, DEVLINK_RESOURCE_UNIT_ENTRY);
+
+       return devlink_resource_register(devlink, "rifs", max_rifs,
+                                        MLXSW_SP_RESOURCE_RIFS,
+                                        DEVLINK_RESOURCE_ID_PARENT_TOP,
+                                        &size_params);
+}
+
 static int mlxsw_sp1_resources_register(struct mlxsw_core *mlxsw_core)
 {
        int err;
        if (err)
                goto err_resources_rif_mac_profile_register;
 
+       err = mlxsw_sp_resources_rifs_register(mlxsw_core);
+       if (err)
+               goto err_resources_rifs_register;
+
        return 0;
 
+err_resources_rifs_register:
 err_resources_rif_mac_profile_register:
 err_policer_resources_register:
 err_resources_counter_register:
        if (err)
                goto err_resources_rif_mac_profile_register;
 
+       err = mlxsw_sp_resources_rifs_register(mlxsw_core);
+       if (err)
+               goto err_resources_rifs_register;
+
        return 0;
 
+err_resources_rifs_register:
 err_resources_rif_mac_profile_register:
 err_policer_resources_register:
 err_resources_counter_register:
 
        return atomic_read(&mlxsw_sp->router->rif_mac_profiles_count);
 }
 
+static u64 mlxsw_sp_rifs_occ_get(void *priv)
+{
+       const struct mlxsw_sp *mlxsw_sp = priv;
+
+       return atomic_read(&mlxsw_sp->router->rifs_count);
+}
+
 static struct mlxsw_sp_rif_mac_profile *
 mlxsw_sp_rif_mac_profile_create(struct mlxsw_sp *mlxsw_sp, const char *mac,
                                struct netlink_ext_ack *extack)
                                          MLXSW_SP_RESOURCE_RIF_MAC_PROFILES,
                                          mlxsw_sp_rif_mac_profiles_occ_get,
                                          mlxsw_sp);
+       devlink_resource_occ_get_register(devlink,
+                                         MLXSW_SP_RESOURCE_RIFS,
+                                         mlxsw_sp_rifs_occ_get,
+                                         mlxsw_sp);
 
        return 0;
 }
        for (i = 0; i < MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS); i++)
                WARN_ON_ONCE(mlxsw_sp->router->rifs[i]);
 
+       devlink_resource_occ_get_unregister(devlink, MLXSW_SP_RESOURCE_RIFS);
        devlink_resource_occ_get_unregister(devlink,
                                            MLXSW_SP_RESOURCE_RIF_MAC_PROFILES);
        WARN_ON(!idr_is_empty(&mlxsw_sp->router->rif_mac_profiles_idr));