* to the project. For more information see the website or contact
* the copyright holders.
*
- * $Id: mid_set.c,v 1.20 2007/04/25 22:08:09 bernd67 Exp $
+ * $Id: mid_set.c,v 1.21 2007/08/02 21:50:22 bernd67 Exp $
*/
#include "defs.h"
struct mid_entry mid_set[HASHSIZE];
struct mid_address reverse_mid_set[HASHSIZE];
-struct mid_entry *mid_lookup_entry_bymain(union olsr_ip_addr *adr);
+struct mid_entry *mid_lookup_entry_bymain(const union olsr_ip_addr *adr);
/**
* Initialize the MID set
int
olsr_init_mid_set(void)
{
- int index;
+ int idx;
OLSR_PRINTF(5, "MID: init\n");
*/
olsr_register_scheduler_event(&olsr_time_out_mid_set, NULL, 1, 0, NULL);
- for(index=0;index<HASHSIZE;index++)
+ for(idx=0;idx<HASHSIZE;idx++)
{
- mid_set[index].next = &mid_set[index];
- mid_set[index].prev = &mid_set[index];
+ mid_set[idx].next = &mid_set[idx];
+ mid_set[idx].prev = &mid_set[idx];
- reverse_mid_set[index].next = &reverse_mid_set[index];
- reverse_mid_set[index].prev = &reverse_mid_set[index];
+ reverse_mid_set[idx].next = &reverse_mid_set[idx];
+ reverse_mid_set[idx].prev = &reverse_mid_set[idx];
}
return 1;
*/
void
-insert_mid_tuple(union olsr_ip_addr *m_addr, struct mid_address *alias, float vtime)
+insert_mid_tuple(const union olsr_ip_addr *m_addr, struct mid_address *alias, float vtime)
{
struct mid_entry *tmp;
struct mid_address *tmp_adr;
alias->next_alias = tmp_adr;
tmp->ass_timer = GET_TIMESTAMP(vtime*1000);
}
- /*Create new node*/
else
{
+ /*Create new node*/
tmp = olsr_malloc(sizeof(struct mid_entry), "MID new alias");
tmp->aliases = alias;
*@return nada
*/
void
-insert_mid_alias(union olsr_ip_addr *main_add, union olsr_ip_addr *alias, float vtime)
+insert_mid_alias(const union olsr_ip_addr *main_add, const union olsr_ip_addr *alias, float vtime)
{
struct mid_address *adr;
struct neighbor_entry *ne_old, *ne_new;
//print_mid_list();
}
-
-
-
/**
*Lookup the main address for a alias address
*
*or NULL if not found
*/
union olsr_ip_addr *
-mid_lookup_main_addr(union olsr_ip_addr *adr)
+mid_lookup_main_addr(const union olsr_ip_addr *adr)
{
olsr_u32_t hash;
struct mid_address *tmp_list;
}
-
/* Find mid entry to an address.
* @param adr the main address to search for
*
* @return a linked list of address structs
*/
struct mid_entry *
-mid_lookup_entry_bymain(union olsr_ip_addr *adr)
+mid_lookup_entry_bymain(const union olsr_ip_addr *adr)
{
struct mid_entry *tmp_list;
olsr_u32_t hash;
if(COMP_IP(&tmp_list->main_addr, adr))
return tmp_list;
}
-
-
return NULL;
}
-
/*
*Find all aliases for an address.
*
*@return a linked list of addresses structs
*/
struct mid_address *
-mid_lookup_aliases(union olsr_ip_addr *adr)
+mid_lookup_aliases(const union olsr_ip_addr *adr)
{
struct mid_entry *tmp = mid_lookup_entry_bymain(adr);
return tmp ? tmp->aliases : NULL;
*@return 1 if the node was updated, 0 if not
*/
int
-olsr_update_mid_table(union olsr_ip_addr *adr, float vtime)
+olsr_update_mid_table(const union olsr_ip_addr *adr, float vtime)
{
struct mid_entry *tmp_list = mid_set;
olsr_u32_t hash;
*@return nada
*/
void
-olsr_prune_aliases(union olsr_ip_addr *m_addr, struct mid_alias *declared_aliases)
+olsr_prune_aliases(const union olsr_ip_addr *m_addr, struct mid_alias *declared_aliases)
{
struct mid_entry *entry;
olsr_u32_t hash;
registered_aliases = entry->aliases;
previous_alias = NULL;
- while(registered_aliases != 0)
+ while(registered_aliases != NULL)
{
struct mid_address *current_alias = registered_aliases;
registered_aliases = registered_aliases->next_alias;
declared_aliases = declared_aliases->next;
}
- if (declared_aliases == 0)
+ if (declared_aliases == NULL)
{
/* Current alias not found in list of declared aliases: free current alias */
OLSR_PRINTF(1, "MID remove: (%s, ", olsr_ip_to_string(&entry->main_addr));
void
olsr_time_out_mid_set(void *foo __attribute__((unused)))
{
- int index;
-
+ int idx;
- for(index=0;index<HASHSIZE;index++)
+ for(idx=0;idx<HASHSIZE;idx++)
{
- struct mid_entry *tmp_list = mid_set[index].next;
+ struct mid_entry *tmp_list = mid_set[idx].next;
/*Traverse MID list*/
- while(tmp_list != &mid_set[index])
+ while(tmp_list != &mid_set[idx])
{
/*Check if the entry is timed out*/
if(TIMED_OUT(tmp_list->ass_timer))
void
olsr_print_mid_set(void)
{
- int index;
+ int idx;
OLSR_PRINTF(1, "mid set: %02d:%02d:%02d.%06lu\n",nowtm->tm_hour, nowtm->tm_min, nowtm->tm_sec, now.tv_usec);
- for(index=0;index<HASHSIZE;index++)
+ for(idx=0;idx<HASHSIZE;idx++)
{
- struct mid_entry *tmp_list = mid_set[index].next;
+ struct mid_entry *tmp_list = mid_set[idx].next;
/*Traverse MID list*/
- for(tmp_list = mid_set[index].next; tmp_list != &mid_set[index]; tmp_list = tmp_list->next)
+ for(tmp_list = mid_set[idx].next; tmp_list != &mid_set[idx]; tmp_list = tmp_list->next)
{
struct mid_address *tmp_addr;
* to the project. For more information see the website or contact
* the copyright holders.
*
- * $Id: mid_set.h,v 1.14 2007/02/10 19:27:32 bernd67 Exp $
+ * $Id: mid_set.h,v 1.15 2007/08/02 21:50:22 bernd67 Exp $
*/
#include "olsr_types.h"
+
struct mid_address
{
union olsr_ip_addr alias;
olsr_init_mid_set(void);
void
-insert_mid_tuple(union olsr_ip_addr *, struct mid_address *, float);
+insert_mid_tuple(const union olsr_ip_addr *, struct mid_address *, float);
void
-insert_mid_alias(union olsr_ip_addr *, union olsr_ip_addr *, float);
+insert_mid_alias(const union olsr_ip_addr *, const union olsr_ip_addr *, float);
union olsr_ip_addr *
-mid_lookup_main_addr(union olsr_ip_addr *);
+mid_lookup_main_addr(const union olsr_ip_addr *);
struct mid_address *
-mid_lookup_aliases(union olsr_ip_addr *);
+mid_lookup_aliases(const union olsr_ip_addr *);
void
olsr_print_mid_set(void);
olsr_time_out_mid_set(void *);
void
-olsr_prune_aliases(union olsr_ip_addr *m_addr, struct mid_alias *declared_aliases);
+olsr_prune_aliases(const union olsr_ip_addr *m_addr, struct mid_alias *declared_aliases);
int
-olsr_update_mid_table(union olsr_ip_addr *, float);
+olsr_update_mid_table(const union olsr_ip_addr *, float);
int
mid_delete_node(struct mid_entry *);