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

Functions

void qspn_set_map_vars (u_char level, map_node **map, map_node **root_node, int *root_node_pos, map_gnode **gmap)
 
void qspn_time_reset (int start_level, int end_level, int levels)
 
void qspn_reset_counters (u_char levels)
 
void qspn_reset (u_char levels)
 
void qspn_init (u_char levels)
 
void qspn_free (void)
 
void qspn_b_clean (u_char level)
 
int qspn_b_add (struct qspn_buffer *qb, u_char replier, u_short flags)
 
struct qspn_bufferqspn_b_find_rnode (struct qspn_buffer *qb, map_node *rnode)
 
int qspn_b_find_reply (struct qspn_buffer *qb, int sub_id)
 
int qspn_b_del_dead_rnodes (struct qspn_buffer **qb, map_node *root_node)
 
void qspn_b_del_all_dead_rnodes (void)
 
int qspn_round_left (u_char level)
 
void update_qspn_time (u_char level, u_int new_qspn_time)
 
void qspn_inc_gcount (u_int *gcount, int level, int inc)
 
void qspn_dec_gcount (u_int *gcount, int level, int dec)
 
void qspn_reset_gcount (u_int *gcount, int level, int value)
 
void qspn_backup_gcount (u_int *old_gcount, int *gcount)
 
void qspn_remove_deads (u_char level)
 
void qspn_new_round (u_char level, int new_qspn_id, u_int new_qspn_time)
 
int exclude_from_and_opened_and_glevel (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int exclude_from_and_glevel_and_closed (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int exclude_from_and_glevel_and_notstarter (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int qspn_send (u_char level)
 
int qspn_open_start (int from_rpos, PACKET pkt_to_all, int qspn_id, int root_node_pos, int gid, int level)
 
int qspn_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 *rip_quadg, int *new_real_from_rpos, u_short *new_hops, u_char *new_upper_level, int *new_gid, map_node **new_from, map_node **new_root_node, map_node **new_tracer_starter, int *new_sub_id, int *new_root_node_pos, u_char *new_level, u_char *new_blevel, char *new_just_forward_it, char *new_do_real_qspn_action)
 
int qspn_close (PACKET rpkt)
 
int qspn_open (PACKET rpkt)
 

Function Documentation

int exclude_from_and_glevel_and_closed ( 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_and_glevel_and_notstarter ( 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:

int exclude_from_and_opened_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 qspn_b_add ( struct qspn_buffer qb,
u_char  replier,
u_short  flags 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_b_clean ( u_char  level)

Here is the caller graph for this function:

void qspn_b_del_all_dead_rnodes ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

int qspn_b_del_dead_rnodes ( struct qspn_buffer **  qb,
map_node root_node 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int qspn_b_find_reply ( struct qspn_buffer qb,
int  sub_id 
)

Here is the caller graph for this function:

struct qspn_buffer* qspn_b_find_rnode ( struct qspn_buffer qb,
map_node rnode 
)

Here is the caller graph for this function:

void qspn_backup_gcount ( u_int *  old_gcount,
int *  gcount 
)

Here is the caller graph for this function:

int qspn_close ( PACKET  rpkt)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_dec_gcount ( u_int *  gcount,
int  level,
int  dec 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_free ( void  )

Here is the caller graph for this function:

void qspn_inc_gcount ( u_int *  gcount,
int  level,
int  inc 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_init ( u_char  levels)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_new_round ( u_char  level,
int  new_qspn_id,
u_int  new_qspn_time 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int qspn_open ( PACKET  rpkt)

Here is the call graph for this function:

Here is the caller graph for this function:

int qspn_open_start ( int  from_rpos,
PACKET  pkt_to_all,
int  qspn_id,
int  root_node_pos,
int  gid,
int  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_remove_deads ( u_char  level)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_reset ( u_char  levels)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_reset_counters ( u_char  levels)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_reset_gcount ( u_int *  gcount,
int  level,
int  value 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int qspn_round_left ( u_char  level)

Here is the caller graph for this function:

int qspn_send ( u_char  level)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_set_map_vars ( u_char  level,
map_node **  map,
map_node **  root_node,
int *  root_node_pos,
map_gnode **  gmap 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void qspn_time_reset ( int  start_level,
int  end_level,
int  levels 
)

Here is the caller graph for this function:

int qspn_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 rip_quadg,
int *  new_real_from_rpos,
u_short *  new_hops,
u_char *  new_upper_level,
int *  new_gid,
map_node **  new_from,
map_node **  new_root_node,
map_node **  new_tracer_starter,
int *  new_sub_id,
int *  new_root_node_pos,
u_char *  new_level,
u_char *  new_blevel,
char *  new_just_forward_it,
char *  new_do_real_qspn_action 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void update_qspn_time ( u_char  level,
u_int  new_qspn_time 
)

Here is the caller graph for this function: