The Netsukuku Project  0.0.9
An Alternative routing method
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
igs.c File Reference
#include "includes.h"
#include "common.h"
#include "libnetlink.h"
#include "inet.h"
#include "krnl_route.h"
#include "request.h"
#include "endianness.h"
#include "pkts.h"
#include "bmap.h"
#include "qspn.h"
#include "radar.h"
#include "andns.h"
#include "netsukuku.h"
#include "route.h"
#include "krnl_rule.h"
#include "iptunnel.h"
#include "libping.h"
#include "libiptc/libiptc.h"
#include "mark.h"
#include "igs.h"
#include "err_errno.h"
Include dependency graph for igs.c:

Functions

u_char bandwidth_in_8bit (u_int x)
 
u_int bandwidth_to_32bit (u_char x)
 
int str_to_inet_gw (char *str, inet_prefix *gw, char **dev)
 
char ** parse_internet_hosts (char *str, int *hosts)
 
void free_internet_hosts (char **hnames, int hosts)
 
void internet_hosts_to_ip (void)
 
void init_igws (inet_gw ***igws, int **igws_counter, int levels)
 
void reset_igws (inet_gw **igws, int *igws_counter, int levels)
 
void free_igws (inet_gw **igws, int *igws_counter, int levels)
 
void init_my_igws (inet_gw **igws, int *igws_counter, inet_gw ***my_new_igws, u_char my_bandwidth, map_node *cur_node, quadro_group *qg)
 
void free_my_igws (inet_gw ***my_igs)
 
void init_internet_gateway_search (void)
 
void close_internet_gateway_search (void)
 
inet_gwigw_add_node (inet_gw **igws, int *igws_counter, int level, int gid, map_node *node, int ip[4], u_char bandwidth)
 
int igw_del (inet_gw **igws, int *igws_counter, inet_gw *igw, int level)
 
inet_gwigw_find_node (inet_gw **igws, int level, map_node *node)
 
inet_gwigw_find_ip (inet_gw **igws, int level, u_int ip[4])
 
int igw_del_node (inet_gw **igws, int *igws_counter, int level, map_node *node)
 
void igw_update_gnode_bw (int *igws_counter, inet_gw **my_igws, inet_gw *igw, int new, int level, int maxlevels)
 
int igw_cmp (const void *a, const void *b)
 
void igw_order (inet_gw **igws, int *igws_counter, inet_gw **my_igws, int level)
 
int igw_check_inet_conn (void)
 
void * igw_check_inet_conn_t (void *null)
 
int igw_ping_igw (inet_gw *igw)
 
void * igw_monitor_igws_t (void *null)
 
int igw_exec_masquerade_sh (char *script, int stop)
 
int igw_exec_tcshaper_sh (char *script, int stop, char *dev, int upload_bw, int dnload_bw)
 
int add_igw_nexthop (igw_nexthop *igwn, inet_prefix *ip, int *new)
 
void set_igw_nexhtop_inactive (igw_nexthop *igwn)
 
void reset_igw_nexthop (igw_nexthop *igwn)
 
void reset_igw_rules (void)
 
int igw_replace_def_igws (inet_gw **igws, int *igws_counter, inet_gw **my_igws, int max_levels, int family)
 
char * igw_build_bentry (u_char level, size_t *pack_sz, int *new_bblocks)
 
int igw_store_bblock (bnode_hdr *bblock_hdr, bnode_chunk *bchunk, u_char level)
 
char * pack_inet_gw (inet_gw *igw, char *pack)
 
inet_gwunpack_inet_gw (char *pack, inet_gw *igw)
 
char * pack_igws (inet_gw **igws, int *igws_counter, int levels, int *pack_sz)
 
int unpack_igws (char *pack, size_t pack_sz, map_node *int_map, map_gnode **ext_map, int levels, inet_gw ***new_igws, int **new_igws_counter)
 

Variables

int igw_multi_gw_disabled
 

Function Documentation

int add_igw_nexthop ( igw_nexthop igwn,
inet_prefix ip,
int *  new 
)

Here is the call graph for this function:

Here is the caller graph for this function:

u_char bandwidth_in_8bit ( u_int  x)

Here is the caller graph for this function:

u_int bandwidth_to_32bit ( u_char  x)

Here is the caller graph for this function:

void close_internet_gateway_search ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void free_igws ( inet_gw **  igws,
int *  igws_counter,
int  levels 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void free_internet_hosts ( char **  hnames,
int  hosts 
)

Here is the caller graph for this function:

void free_my_igws ( inet_gw ***  my_igs)

Here is the caller graph for this function:

inet_gw* igw_add_node ( inet_gw **  igws,
int *  igws_counter,
int  level,
int  gid,
map_node node,
int  ip[4],
u_char  bandwidth 
)

Here is the call graph for this function:

Here is the caller graph for this function:

char* igw_build_bentry ( u_char  level,
size_t *  pack_sz,
int *  new_bblocks 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_check_inet_conn ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void* igw_check_inet_conn_t ( void *  null)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_cmp ( const void *  a,
const void *  b 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_del ( inet_gw **  igws,
int *  igws_counter,
inet_gw igw,
int  level 
)

Here is the caller graph for this function:

int igw_del_node ( inet_gw **  igws,
int *  igws_counter,
int  level,
map_node node 
)

Here is the call graph for this function:

int igw_exec_masquerade_sh ( char *  script,
int  stop 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_exec_tcshaper_sh ( char *  script,
int  stop,
char *  dev,
int  upload_bw,
int  dnload_bw 
)

Here is the call graph for this function:

Here is the caller graph for this function:

inet_gw* igw_find_ip ( inet_gw **  igws,
int  level,
u_int  ip[4] 
)

Here is the caller graph for this function:

inet_gw* igw_find_node ( inet_gw **  igws,
int  level,
map_node node 
)

Here is the caller graph for this function:

void* igw_monitor_igws_t ( void *  null)

Here is the call graph for this function:

Here is the caller graph for this function:

void igw_order ( inet_gw **  igws,
int *  igws_counter,
inet_gw **  my_igws,
int  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_ping_igw ( inet_gw igw)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_replace_def_igws ( inet_gw **  igws,
int *  igws_counter,
inet_gw **  my_igws,
int  max_levels,
int  family 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int igw_store_bblock ( bnode_hdr *  bblock_hdr,
bnode_chunk *  bchunk,
u_char  level 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void igw_update_gnode_bw ( int *  igws_counter,
inet_gw **  my_igws,
inet_gw igw,
int  new,
int  level,
int  maxlevels 
)

Here is the caller graph for this function:

void init_igws ( inet_gw ***  igws,
int **  igws_counter,
int  levels 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void init_internet_gateway_search ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void init_my_igws ( inet_gw **  igws,
int *  igws_counter,
inet_gw ***  my_new_igws,
u_char  my_bandwidth,
map_node cur_node,
quadro_group qg 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void internet_hosts_to_ip ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

char* pack_igws ( inet_gw **  igws,
int *  igws_counter,
int  levels,
int *  pack_sz 
)

Here is the call graph for this function:

Here is the caller graph for this function:

char* pack_inet_gw ( inet_gw igw,
char *  pack 
)

Here is the call graph for this function:

Here is the caller graph for this function:

char** parse_internet_hosts ( char *  str,
int *  hosts 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void reset_igw_nexthop ( igw_nexthop igwn)

Here is the caller graph for this function:

void reset_igw_rules ( void  )

Here is the call graph for this function:

Here is the caller graph for this function:

void reset_igws ( inet_gw **  igws,
int *  igws_counter,
int  levels 
)

Here is the caller graph for this function:

void set_igw_nexhtop_inactive ( igw_nexthop igwn)

Here is the caller graph for this function:

int str_to_inet_gw ( char *  str,
inet_prefix gw,
char **  dev 
)

Here is the call graph for this function:

Here is the caller graph for this function:

int unpack_igws ( char *  pack,
size_t  pack_sz,
map_node int_map,
map_gnode **  ext_map,
int  levels,
inet_gw ***  new_igws,
int **  new_igws_counter 
)

Here is the call graph for this function:

Here is the caller graph for this function:

inet_gw* unpack_inet_gw ( char *  pack,
inet_gw igw 
)

Here is the call graph for this function:

Here is the caller graph for this function:

Variable Documentation

int igw_multi_gw_disabled