diff --git a/include/iri_base_algorithm/iri_base_algorithm.h b/include/iri_base_algorithm/iri_base_algorithm.h
index ea4f3f0320f868ffad966ac4f067f737aa9072f4..c8042491a8636034ee47b0bbc8eac50e78b5c3dd 100644
--- a/include/iri_base_algorithm/iri_base_algorithm.h
+++ b/include/iri_base_algorithm/iri_base_algorithm.h
@@ -228,6 +228,20 @@ class IriBaseAlgorithm : public AbstractAlgorithmNode
     */
     void reconfigureCallback(Config &config, uint32_t level);
 
+   /**
+    * \brief dynamic reconfigure server callback
+    * 
+    * This method is called whenever a new configuration is received through
+    * the dynamic reconfigure. The derivated generic algorithm class must 
+    * implement it.
+    *
+    * \param config an object with new configuration from all algorithm 
+    *               parameters defined in the config file.
+    * \param level  integer referring the level in which the configuration
+    *               has been changed.
+    */
+    virtual void node_config_update(Config &config, uint32_t level) = 0;
+   
    /**
     * \brief add diagnostics
     * 
@@ -311,6 +325,7 @@ IriBaseAlgorithm<Algorithm>::~IriBaseAlgorithm()
 template <class Algorithm>
 void IriBaseAlgorithm<Algorithm>::reconfigureCallback(Config &config, uint32_t level)
 {
+  node_config_update(config, level);
   this->alg_.config_update(config, level);
 }