Merge branch 'mpr_rework'
authorHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Fri, 7 Apr 2017 06:10:07 +0000 (08:10 +0200)
committerHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Fri, 7 Apr 2017 06:10:07 +0000 (08:10 +0200)
14 files changed:
1  2 
src-plugins/nhdp/constant_metric/constant_metric.c
src-plugins/nhdp/ff_dat_metric/ff_dat_metric.c
src-plugins/nhdp/mpr/mpr.c
src-plugins/nhdp/mpr/neighbor-graph-flooding.c
src-plugins/nhdp/mpr/neighbor-graph-routing.c
src-plugins/nhdp/nhdp/nhdp_db.c
src-plugins/nhdp/nhdp/nhdp_reader.c
src-plugins/nhdp/nhdp/nhdp_writer.c
src-plugins/olsrv2/netjsoninfo/netjsoninfo.c
src-plugins/olsrv2/olsrv2/olsrv2.c
src-plugins/olsrv2/olsrv2/olsrv2_reader.c
src-plugins/olsrv2/olsrv2/olsrv2_routing.c
src-plugins/olsrv2/olsrv2/olsrv2_writer.c
src-plugins/subsystems/oonf_class.h

@@@ -641,11 -644,11 +639,8 @@@ _cb_dat_sampling(struct oonf_timer_inst
  
    OONF_DEBUG(LOG_FF_DAT, "Calculate Metric from sampled data");
  
-   change_happened = false;
 -  list_for_each_element(nhdp_db_get_link_list(), lnk, _global_node) {
 -    if (oonf_class_get_extension(&_nhdpif_extenstion, lnk->local_if) != ifconfig) {
 -      continue;
 -    }
--
 +  nhdp_if = oonf_class_get_base(&_nhdpif_extenstion, ifconfig);
 +  list_for_each_element(&nhdp_if->_links, lnk, _if_node) {
      ldata = oonf_class_get_extension(&_link_extenstion, lnk);
      if (!ldata->contains_data) {
        /* still no data for this link */
      ldata->buckets[ldata->activePtr].received = 0;
      ldata->buckets[ldata->activePtr].total = 0;
    }
-   /* update neighbor metrics */
-   if (change_happened) {
-     nhdp_domain_neighborhood_changed();
-   }
-   oonf_timer_set(&ifconfig->_sampling_timer, nhdp_if->refresh_interval);
++oonf_timer_set(&ifconfig->_sampling_timer, nhdp_if->refresh_interval);
  }
  
  /**
@@@ -187,11 -190,8 +189,11 @@@ _clear_nhdp_flooding(void) 
    }
  }
  
 +/**
 + * Update the flooding MPR settings 
 + */
  static void
- _update_flooding_mpr(void) {
+ _cb_update_flooding_mpr(struct nhdp_domain *domain) {
    struct mpr_flooding_data flooding_data;
  
    memset(&flooding_data, 0, sizeof(flooding_data));
  
  }
  
 +/**
 + * Update the routing MPR settings for all domains
 + */
  static void
- _update_routing_mpr(void) {
+ _cb_update_routing_mpr(struct nhdp_domain *domain) {
    struct neighbor_graph routing_graph;
-   struct nhdp_domain *domain;
  
-   list_for_each_element(nhdp_domain_get_list(), domain, _node) {
-     if (domain->mpr != &_mpr_handler) {
-       /* we are not the routing MPR for this domain */
-       continue;
-     }
-     OONF_DEBUG(LOG_MPR, "*** Calculate routing MPRs for domain %u ***", domain->index);
+   if (domain->mpr != &_mpr_handler) {
+     /* we are not the routing MPR for this domain */
+     return;
+   }
+   OONF_DEBUG(LOG_MPR, "*** Calculate routing MPRs for domain %u ***", domain->index);
      
-     memset(&routing_graph, 0, sizeof(routing_graph));
-     mpr_calculate_neighbor_graph_routing(domain, &routing_graph);
-     mpr_calculate_mpr_rfc7181(domain, &routing_graph);
-     mpr_print_sets(&routing_graph);
+   memset(&routing_graph, 0, sizeof(routing_graph));
+   mpr_calculate_neighbor_graph_routing(domain, &routing_graph);
+   mpr_calculate_mpr_rfc7181(domain, &routing_graph);
+   mpr_print_sets(&routing_graph);
  #ifndef NDEBUG
-     _validate_mpr_set(domain, &routing_graph);
+   _validate_mpr_set(domain, &routing_graph);
  #endif
-     _update_nhdp_routing(&routing_graph);
-     mpr_clear_neighbor_graph(&routing_graph);
-   } 
-   
- }
- /**
-  * Callback triggered when an MPR update is required
-  */
- static void
- _cb_update_mpr(void) {
-   OONF_DEBUG(LOG_MPR, "Recalculating MPRs");
-   /* calculate flooding MPRs */
-   _update_flooding_mpr();
-   
-   /* calculate routing MPRs */
-   _update_routing_mpr();
-   OONF_DEBUG(LOG_MPR, "Finished recalculating MPRs");
+   _update_nhdp_routing(&routing_graph);
+   mpr_clear_neighbor_graph(&routing_graph);
  }
  
  #ifndef NDEBUG
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1095,18 -1183,9 +1180,9 @@@ _cb_trigger_dijkstra(struct oonf_timer_
    }
  }
  
- /**
-  * Callback triggered when neighbor metrics are updates
-  * @param neigh NHDP neighbor
-  */
- static void
- _cb_nhdp_update(struct nhdp_neighbor *neigh __attribute__((unused))) {
-   olsrv2_routing_trigger_update();
- }
  /**
   * Callback for kernel route processing results
 - * @param route pointer to kernel route
 + * @param route OS route data
   * @param error 0 if no error happened
   */
  static void
@@@ -233,7 -233,7 +233,11 @@@ oonf_class_get_extension(struct oonf_cl
  /**
   * @param ext extension data structure
   * @param ptr pointer to extension block
++<<<<<<< HEAD
 + * @return pointer to base memory block
++=======
+  * @return pointer to extensions base block
++>>>>>>> mpr_rework
   */
  static INLINE void *
  oonf_class_get_base(struct oonf_class_extension *ext, void *ptr) {