The Netsukuku Project  0.0.9
An Alternative routing method
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
tracer.h File Reference
#include "pkts.h"
#include "bmap.h"
Include dependency graph for tracer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _PACKED_
 
struct  _PACKED_
 

Macros

#define TRACER_RQ_TIMEOUT   16 /* seconds */
 
#define TRCR_BBLOCK
 
#define TRCR_IGW
 
#define TRACERPKT_SZ(hops)   (sizeof(tracer_hdr)+(sizeof(tracer_chunk)*(hops)))
 
#define TRACER_HDR_PTR(msg)   ((tracer_hdr *)(((char *)BRDCAST_HDR_PTR((msg)))+sizeof(brdcast_hdr)))
 
#define TRACER_CHUNK_PTR(msg)   ((tracer_chunk *)(((char *)TRACER_HDR_PTR(msg))+sizeof(tracer_hdr)))
 
#define TRACER_PKT_EXCLUDE_VARS
 
#define TRACER_PKT_EXCLUDE_VARS_NAME
 

Functions

int ip_to_rfrom (inet_prefix rip, quadro_group *rip_quadg, quadro_group *new_quadg, char quadg_flags)
 
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)
 
u_short tracer_split_bblock (void *, size_t, bnode_hdr ***, bnode_chunk ****, size_t *)
 
int tracer_get_trtt (int from_rnode_pos, tracer_hdr *trcr_hdr, tracer_chunk *tracer, u_int *trtt)
 
int tracer_store_pkt (inet_prefix, quadro_group *, u_char, tracer_hdr *, tracer_chunk *, void *, size_t, u_short *, char **, size_t *)
 
int tracer_unpack_pkt (PACKET, brdcast_hdr **, tracer_hdr **, tracer_chunk **, bnode_hdr **, size_t *, quadro_group *, int *)
 
int tracer_pkt_build (u_char, int, int, int, u_char, brdcast_hdr *, tracer_hdr *, tracer_chunk *, u_short, char *, size_t, PACKET *)
 
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_from (ext_rnode *e_rnode, map_node *node, int from_rpos, int pos, u_char excl_level, int sub_id)
 
int exclude_glevel (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)
 

Variables

static const int_info tracer_hdr_iinfo
 
static const int_info tracer_chunk_iinfo
 
int tracer_pkt_start_mutex
 

Macro Definition Documentation

#define TRACER_CHUNK_PTR (   msg)    ((tracer_chunk *)(((char *)TRACER_HDR_PTR(msg))+sizeof(tracer_hdr)))
#define TRACER_HDR_PTR (   msg)    ((tracer_hdr *)(((char *)BRDCAST_HDR_PTR((msg)))+sizeof(brdcast_hdr)))
#define TRACER_PKT_EXCLUDE_VARS
Value:
ext_rnode *e_rnode, map_node *node, \
int from_rpos, int pos, \
u_char excl_level, int sub_id
Definition: map.h:125
Definition: gmap.h:187
#define TRACER_PKT_EXCLUDE_VARS_NAME
Value:
e_rnode, node, from_rpos, pos, \
excl_level, sub_id
#define TRACER_RQ_TIMEOUT   16 /* seconds */
#define TRACERPKT_SZ (   hops)    (sizeof(tracer_hdr)+(sizeof(tracer_chunk)*(hops)))
#define TRCR_BBLOCK
Value:
1 /* In this tracer_pkt there are
encapsulated bblocks */
#define TRCR_IGW
Value:
(1<<1) /* Internet Gateways are encapsulated
in the pkt */

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:

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:

int tracer_pkt_build ( u_char  ,
int  ,
int  ,
int  ,
u_char  ,
brdcast_hdr *  ,
tracer_hdr *  ,
tracer_chunk *  ,
u_short  ,
char *  ,
size_t  ,
PACKET  
)

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 *  ,
size_t  ,
bnode_hdr ***  ,
bnode_chunk ****  ,
size_t *   
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_store_pkt ( inet_prefix  ,
quadro_group ,
u_char  ,
tracer_hdr *  ,
tracer_chunk *  ,
void *  ,
size_t  ,
u_short *  ,
char **  ,
size_t *   
)

Here is the call graph for this function:

Here is the caller graph for this function:

int tracer_unpack_pkt ( PACKET  ,
brdcast_hdr **  ,
tracer_hdr **  ,
tracer_chunk **  ,
bnode_hdr **  ,
size_t *  ,
quadro_group ,
int *   
)

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

const int_info tracer_chunk_iinfo
static
Initial value:
= { 2,
{ 1 , 1 },
{ sizeof(char), sizeof(char)+sizeof(u_int) },
{ 1, 1 }
}
const int_info tracer_hdr_iinfo
static
Initial value:
= { 2,
{ (1<<1) , (1<<1) },
{ sizeof(u_char), sizeof(u_char)+sizeof(u_short) },
{ 1, 1 }
}
int tracer_pkt_start_mutex