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

Functions

char * tracer_pack_pkt (brdcast_hdr *bcast_hdr, tracer_hdr *trcr_hdr, tracer_chunk *tracer, char *bblocks, size_t bblocks_sz, int new_bblocks)
 
int ip_to_rfrom (inet_prefix rip, quadro_group *rip_quadg, quadro_group *new_quadg, char quadg_flags)
 
int tracer_verify_pkt (tracer_chunk *tracer, u_short hops, inet_prefix rip, quadro_group *rip_quadg, int level)
 
tracer_chunk * tracer_add_entry (void *void_map, void *void_node, tracer_chunk *tracer, u_int *hops, u_char level)
 
int tracer_add_rtt (int rpos, tracer_chunk *tracer, u_short hop)
 
int tracer_get_trtt (int from_rnode_pos, tracer_hdr *trcr_hdr, tracer_chunk *tracer, u_int *trtt)
 
void tracer_update_gcount (tracer_hdr *trcr_hdr, tracer_chunk *tracer, int first_hop, u_int *gcount_counter, map_node *int_map, map_gnode **ext_map, int level)
 
bnode_hdr * tracer_build_bentry (void *void_map, void *void_node, quadro_group *node_quadg, bnode_chunk **bnodechunk, int *bnode_links, u_char level)
 
int tracer_pkt_build (u_char rq, int rq_id, int bcast_sub_id, int gnode_id, u_char gnode_level, brdcast_hdr *bcast_hdr, tracer_hdr *trcr_hdr, tracer_chunk *tracer, u_short old_bblocks, char *old_bblock_buf, size_t old_bblock_sz, PACKET *pkt)
 
int tracer_unpack_pkt (PACKET rpkt, brdcast_hdr **new_bcast_hdr, tracer_hdr **new_tracer_hdr, tracer_chunk **new_tracer, bnode_hdr **new_bhdr, size_t *new_bblock_sz, quadro_group *new_rip_quadg, int *real_from_rpos)
 
u_short tracer_split_bblock (void *bnode_block_start, size_t bblock_sz, bnode_hdr ***bbl_hdr, bnode_chunk ****bbl, size_t *bblock_found_sz)
 
int tracer_store_bblock (u_char level, tracer_hdr *trcr_hdr, tracer_chunk *tracer, void *bnode_block_start, size_t bblock_sz, u_short *bblocks_found, char **bblocks_found_block, size_t *bblock_found_sz)
 
int tracer_check_node_collision (tracer_hdr *trcr, int hop, map_node *node, int tr_node, int tr_gcount, int level)
 
int tracer_store_pkt (inet_prefix rip, quadro_group *rip_quadg, u_char level, tracer_hdr *trcr_hdr, tracer_chunk *tracer, void *bnode_block_start, size_t bblock_sz, u_short *bblocks_found, char **bblocks_found_block, size_t *bblock_found_sz)
 
int flood_pkt_send (int(*is_node_excluded)(ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id), u_char level, int sub_id, int from_rpos, PACKET pkt)
 
int exclude_glevel (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int exclude_from (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int exclude_all_but_notfrom (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int exclude_from_and_glevel (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int tracer_pkt_recv (PACKET rpkt)
 
int tracer_pkt_start (u_char level)
 

Function Documentation

int exclude_all_but_notfrom ( ext_rnode e_rnode,
map_node node,
int  from_rpos,
int  pos,
u_char  excl_level,
int  sub_id 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int exclude_from ( ext_rnode e_rnode,
map_node node,
int  from_rpos,
int  pos,
u_char  excl_level,
int  sub_id 
)

Here is the caller graph for this function:

int exclude_from_and_glevel ( ext_rnode e_rnode,
map_node node,
int  from_rpos,
int  pos,
u_char  excl_level,
int  sub_id 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int exclude_glevel ( ext_rnode e_rnode,
map_node node,
int  from_rpos,
int  pos,
u_char  excl_level,
int  sub_id 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int flood_pkt_send ( int(*)(ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)  is_node_excluded,
u_char  level,
int  sub_id,
int  from_rpos,
PACKET  pkt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int ip_to_rfrom ( inet_prefix  rip,
quadro_group rip_quadg,
quadro_group new_quadg,
char  quadg_flags 
)

Here is the call graph for this function:

Here is the caller graph for this function:

tracer_chunk* tracer_add_entry ( void *  void_map,
void *  void_node,
tracer_chunk *  tracer,
u_int *  hops,
u_char  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_add_rtt ( int  rpos,
tracer_chunk *  tracer,
u_short  hop 
)

Here is the caller graph for this function:

bnode_hdr* tracer_build_bentry ( void *  void_map,
void *  void_node,
quadro_group node_quadg,
bnode_chunk **  bnodechunk,
int *  bnode_links,
u_char  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_check_node_collision ( tracer_hdr *  trcr,
int  hop,
map_node node,
int  tr_node,
int  tr_gcount,
int  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_get_trtt ( int  from_rnode_pos,
tracer_hdr *  trcr_hdr,
tracer_chunk *  tracer,
u_int *  trtt 
)

Here is the caller graph for this function:

char * tracer_pack_pkt ( brdcast_hdr *  bcast_hdr,
tracer_hdr *  trcr_hdr,
tracer_chunk *  tracer,
char *  bblocks,
size_t  bblocks_sz,
int  new_bblocks 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_pkt_build ( u_char  rq,
int  rq_id,
int  bcast_sub_id,
int  gnode_id,
u_char  gnode_level,
brdcast_hdr *  bcast_hdr,
tracer_hdr *  trcr_hdr,
tracer_chunk *  tracer,
u_short  old_bblocks,
char *  old_bblock_buf,
size_t  old_bblock_sz,
PACKET pkt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_pkt_recv ( PACKET  rpkt)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_pkt_start ( u_char  level)

Here is the call graph for this function:

Here is the caller graph for this function:

u_short tracer_split_bblock ( void *  bnode_block_start,
size_t  bblock_sz,
bnode_hdr ***  bbl_hdr,
bnode_chunk ****  bbl,
size_t *  bblock_found_sz 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_store_bblock ( u_char  level,
tracer_hdr *  trcr_hdr,
tracer_chunk *  tracer,
void *  bnode_block_start,
size_t  bblock_sz,
u_short *  bblocks_found,
char **  bblocks_found_block,
size_t *  bblock_found_sz 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_store_pkt ( inet_prefix  rip,
quadro_group rip_quadg,
u_char  level,
tracer_hdr *  trcr_hdr,
tracer_chunk *  tracer,
void *  bnode_block_start,
size_t  bblock_sz,
u_short *  bblocks_found,
char **  bblocks_found_block,
size_t *  bblock_found_sz 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_unpack_pkt ( PACKET  rpkt,
brdcast_hdr **  new_bcast_hdr,
tracer_hdr **  new_tracer_hdr,
tracer_chunk **  new_tracer,
bnode_hdr **  new_bhdr,
size_t *  new_bblock_sz,
quadro_group new_rip_quadg,
int *  real_from_rpos 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void tracer_update_gcount ( tracer_hdr *  trcr_hdr,
tracer_chunk *  tracer,
int  first_hop,
u_int *  gcount_counter,
map_node int_map,
map_gnode **  ext_map,
int  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_verify_pkt ( tracer_chunk *  tracer,
u_short  hops,
inet_prefix  rip,
quadro_group rip_quadg,
int  level 
)

Here is the call graph for this function:

Here is the caller graph for this function: