resolve merge conflicts
authorHannes Gredler <hannes@gredler.at>
Wed, 27 May 2009 11:11:12 +0000 (13:11 +0200)
committerHannes Gredler <hannes@gredler.at>
Wed, 27 May 2009 11:11:12 +0000 (13:11 +0200)
1  2 
src/neighbor_table.c
src/neighbor_table.h
src/process_package.c
src/two_hop_neighbor_table.h

@@@ -92,13 -92,13 +92,13 @@@ olsr_add_nbr2_list_entry(struct nbr_ent
    /*
     * check first if the entry exists.
     */
-   nbr2_list = olsr_lookup_nbr2_list_entry(nbr, &nbr2->neighbor_2_addr);
+   nbr2_list = olsr_lookup_nbr2_list_entry(nbr, &nbr2->nbr2_addr);
    if (nbr2_list) {
  
 -    /*
 +    /* 
       * Refresh timer.
       */
 -    olsr_change_timer(nbr2_list->nbr2->nbr2_list_timer, vtime, OLSR_NBR2_LIST_JITTER, OLSR_TIMER_ONESHOT);
 +    olsr_change_timer(nbr2_list->nbr2_list_timer, vtime, OLSR_NBR2_LIST_JITTER, OLSR_TIMER_ONESHOT);
      return nbr2_list;
    }
  
@@@ -392,16 -390,16 +390,16 @@@ olsr_expire_nbr2_list(void *context
  {
    struct nbr2_list_entry *nbr2_list;
    struct nbr_entry *nbr;
-   struct neighbor_2_entry *nbr2;
+   struct nbr2_entry *nbr2;
  
    nbr2_list = (struct nbr2_list_entry *)context;
 -  nbr2_list->nbr2->nbr2_list_timer = NULL;
 +  nbr2_list->nbr2_list_timer = NULL;
  
    nbr = nbr2_list->nbr2_nbr;
-   nbr2 = nbr2_list->neighbor_2;
+   nbr2 = nbr2_list->nbr2;
  
-   nbr2->neighbor_2_pointer--;   /* XXX move to olsr_unlock_nbr2() */
    olsr_delete_neighbor_pointer(nbr2, nbr);
+   olsr_unlock_nbr2(nbr2);
  
    olsr_delete_nbr2_list_entry(nbr2_list);
  }
@@@ -55,8 -55,7 +55,8 @@@
  struct nbr2_list_entry {
    struct avl_node nbr2_list_node;
    struct nbr_entry *nbr2_nbr;          /* backpointer to owning nbr entry */
-   struct neighbor_2_entry *neighbor_2;
+   struct nbr2_entry *nbr2;
 +  struct timer_entry *nbr2_list_timer;
  };
  
  AVLNODE2STRUCT(nbr2_list_node_to_nbr2_list, struct nbr2_list_entry, nbr2_list_node);
@@@ -96,10 -96,10 +96,10 @@@ process_message_neighbors(struct nbr_en
      if (message_neighbors->neigh_type == SYM_NEIGH || message_neighbors->neigh_type == MPR_NEIGH) {
        struct nbr2_list_entry *two_hop_neighbor_yet = olsr_lookup_nbr2_list_entry(neighbor, &message_neighbors->addr);
        if (two_hop_neighbor_yet != NULL) {
-         struct neighbor_list_entry *walker;
+         struct nbr_list_entry *walker;
  
          /* Updating the holding time for this neighbor */
 -        olsr_set_timer(&two_hop_neighbor_yet->nbr2->nbr2_list_timer,
 +        olsr_set_timer(&two_hop_neighbor_yet->nbr2_list_timer,
                         message->comm.vtime, OLSR_NBR2_LIST_JITTER,
                         OLSR_TIMER_ONESHOT, &olsr_expire_nbr2_list, two_hop_neighbor_yet, nbr2_list_timer_cookie->ci_id);
  
@@@ -60,18 -60,19 +60,18 @@@ struct nbr_list_entry 
  };
  
  
- struct neighbor_2_entry {
-   union olsr_ip_addr neighbor_2_addr;
-   uint8_t mpr_covered_count;           /*used in mpr calculation */
-   uint8_t processed;                   /*used in mpr calculation */
-   int16_t neighbor_2_pointer;          /* Neighbor count */
-   struct neighbor_list_entry neighbor_2_nblist;
-   struct neighbor_2_entry *prev;
-   struct neighbor_2_entry *next;
- };
+ struct nbr2_entry {
+   union olsr_ip_addr nbr2_addr;
+   struct nbr2_entry *prev;
+   struct nbr2_entry *next;
+   unsigned int mpr_covered_count;      /* Used in mpr calculation */
+   unsigned int processed:1;            /* Used in mpr calculation */
+   unsigned int nbr2_refcount;          /* Reference counter */
 -  struct timer_entry *nbr2_list_timer;
+   struct nbr_list_entry nbr2_nblist;
+ } __attribute__ ((packed));;
  
  /*
-  * macros for traversing two-hop neighbors lists.
+  * macros for traversing two-hop neighbors.
   * it is recommended to use this because it hides all the internal
   * datastructure from the callers.
   *