The Netsukuku Project  0.0.9
An Alternative routing method
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
radar.c File Reference
#include "includes.h"
#include "llist.c"
#include "endianness.h"
#include "if.h"
#include "bmap.h"
#include "route.h"
#include "request.h"
#include "pkts.h"
#include "qspn.h"
#include "radar.h"
#include "netsukuku.h"
#include "common.h"
Include dependency graph for radar.c:

Functions

void first_init_radar (void)
 
void last_close_radar (void)
 
void init_radar (void)
 
void close_radar (void)
 
void reset_radar (void)
 
void free_new_node (void)
 
struct radar_queuefind_node_radar_q (map_node *node)
 
struct radar_queuefind_ip_radar_q (inet_prefix *ip)
 
struct rnode_listrnl_add (struct rnode_list **rnlist, int *rnlist_counter, map_node *rnode, interface *dev)
 
void rnl_del (struct rnode_list **rnlist, int *rnlist_counter, struct rnode_list *rnl, int close_socket)
 
void rnl_reset (struct rnode_list **rnlist, int *rnlist_counter)
 
int rnl_del_dead_rnode (struct rnode_list **rnlist, int *rnlist_counter, map_node *root_node)
 
struct rnode_listrnl_find_node (struct rnode_list *rnlist, map_node *node)
 
int rnl_add_dev (struct rnode_list **rnlist, int *rnlist_counter, struct rnode_list *rnl, map_node *node, interface *new_dev)
 
int rnl_del_dev (struct rnode_list **rnlist, int *rnlist_counter, struct rnode_list *rnl, interface *del_dev)
 
int rnl_update_devs (struct rnode_list **rnlist, int *rnlist_counter, map_node *node, interface **devs, int dev_n)
 
interface ** rnl_get_dev (struct rnode_list *rnlist, map_node *node)
 
interfacernl_get_rand_dev (struct rnode_list *rnlist, map_node *node)
 
int rnl_get_sk (struct rnode_list *rnlist, map_node *node)
 
void rnl_set_sk (struct rnode_list *rnlist, map_node *node, int sk)
 
void rnl_close_all_sk (struct rnode_list *rnlist)
 
int rnl_fill_rq (map_node *rnode, PACKET *pkt)
 
int rnl_send_rq (map_node *rnode, PACKET *pkt, int pkt_flags, u_char rq, int rq_id, u_char re, int check_ack, PACKET *rpkt)
 
int is_rnode_allowed (inet_prefix rip, struct allowed_rnode *alr)
 
void new_rnode_allowed (struct allowed_rnode **alr, int *alr_counter, int *gid, int min_lvl, int tot_lvl)
 
void reset_rnode_allowed (struct allowed_rnode **alr, int *alr_counter)
 
int count_hooking_nodes (void)
 
void final_radar_queue (void)
 
int radar_remove_old_rnodes (char *rnode_deleted)
 
void radar_update_bmap (struct radar_queue *rq, int level, int gnode_level)
 
void radar_update_map (void)
 
struct radar_queueadd_radar_q (PACKET pkt)
 
int radar_exec_reply (PACKET pkt)
 
int radar_recv_reply (PACKET pkt)
 
void * radar_qspn_send_t (void *level)
 
int radar_scan (int activate_qspn)
 
int radard (PACKET rpkt)
 
int refresh_hook_root_node (void)
 
void * radar_daemon (void *null)
 
void radar_wait_new_scan (void)
 

Variables

pthread_attr_t radar_qspn_send_t_attr
 

Function Documentation

struct radar_queue* add_radar_q ( PACKET  pkt)

Here is the call graph for this function:

Here is the caller graph for this function:

void close_radar ( void  )

Here is the caller graph for this function:

int count_hooking_nodes ( void  )

Here is the caller graph for this function:

void final_radar_queue ( void  )

Here is the caller graph for this function:

struct radar_queue* find_ip_radar_q ( inet_prefix ip)

Here is the caller graph for this function:

struct radar_queue* find_node_radar_q ( map_node node)

Here is the caller graph for this function:

void first_init_radar ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void free_new_node ( void  )

Here is the caller graph for this function:

void init_radar ( void  )

Here is the caller graph for this function:

int is_rnode_allowed ( inet_prefix  rip,
struct allowed_rnode alr 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void last_close_radar ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void new_rnode_allowed ( struct allowed_rnode **  alr,
int *  alr_counter,
int *  gid,
int  min_lvl,
int  tot_lvl 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void* radar_daemon ( void *  null)

Here is the call graph for this function:

Here is the caller graph for this function:

int radar_exec_reply ( PACKET  pkt)

Here is the call graph for this function:

Here is the caller graph for this function:

void* radar_qspn_send_t ( void *  level)

Here is the call graph for this function:

Here is the caller graph for this function:

int radar_recv_reply ( PACKET  pkt)

Here is the call graph for this function:

Here is the caller graph for this function:

int radar_remove_old_rnodes ( char *  rnode_deleted)

delete the direct route to the ext_node

Here is the call graph for this function:

Here is the caller graph for this function:

int radar_scan ( int  activate_qspn)

Here is the call graph for this function:

Here is the caller graph for this function:

void radar_update_bmap ( struct radar_queue rq,
int  level,
int  gnode_level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void radar_update_map ( void  )

Let's consider all our rnodes void, in this way we'll know what rnodes will remain void after the update.

Here is the call graph for this function:

Here is the caller graph for this function:

void radar_wait_new_scan ( void  )

Here is the caller graph for this function:

int radard ( PACKET  rpkt)

Here is the call graph for this function:

Here is the caller graph for this function:

int refresh_hook_root_node ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void reset_radar ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void reset_rnode_allowed ( struct allowed_rnode **  alr,
int *  alr_counter 
)

Here is the caller graph for this function:

struct rnode_list* rnl_add ( struct rnode_list **  rnlist,
int *  rnlist_counter,
map_node rnode,
interface dev 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int rnl_add_dev ( struct rnode_list **  rnlist,
int *  rnlist_counter,
struct rnode_list rnl,
map_node node,
interface new_dev 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void rnl_close_all_sk ( struct rnode_list rnlist)

Here is the call graph for this function:

Here is the caller graph for this function:

void rnl_del ( struct rnode_list **  rnlist,
int *  rnlist_counter,
struct rnode_list rnl,
int  close_socket 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int rnl_del_dead_rnode ( struct rnode_list **  rnlist,
int *  rnlist_counter,
map_node root_node 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int rnl_del_dev ( struct rnode_list **  rnlist,
int *  rnlist_counter,
struct rnode_list rnl,
interface del_dev 
)

Here is the call graph for this function:

int rnl_fill_rq ( map_node rnode,
PACKET pkt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

struct rnode_list* rnl_find_node ( struct rnode_list rnlist,
map_node node 
)

Here is the caller graph for this function:

interface** rnl_get_dev ( struct rnode_list rnlist,
map_node node 
)

Here is the call graph for this function:

Here is the caller graph for this function:

interface* rnl_get_rand_dev ( struct rnode_list rnlist,
map_node node 
)

Here is the call graph for this function:

int rnl_get_sk ( struct rnode_list rnlist,
map_node node 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void rnl_reset ( struct rnode_list **  rnlist,
int *  rnlist_counter 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int rnl_send_rq ( map_node rnode,
PACKET pkt,
int  pkt_flags,
u_char  rq,
int  rq_id,
u_char  re,
int  check_ack,
PACKET rpkt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void rnl_set_sk ( struct rnode_list rnlist,
map_node node,
int  sk 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int rnl_update_devs ( struct rnode_list **  rnlist,
int *  rnlist_counter,
map_node node,
interface **  devs,
int  dev_n 
)

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

pthread_attr_t radar_qspn_send_t_attr