www.pudn.com > DV.rar > DVSim.h


 #include      
#include      
#include     
#include     
#include     
 
#define        INF        999 
#define        NODES        5 
#define     LINKCHANGES     0  
 
/*-------------------------------------------------------------- 
*    distance_table definition:  
* 
*    costs[i][j]= path cost from this node to node i  
*            when first hop is node j 
*--------------------------------------------------------------*/ 
struct     distance_table  
    {  
        int costs[NODES][NODES];  
    }; 
 
 
#ifdef DVSIM_H 
/*------------------------------ 
*    Trace level  
*------------------------------*/ 
int    TRACE = 1; 
 
 
/*-------------------------------------- 
*    distance tables 
*    minimum path costs  
*    link costs  
*--------------------------------------*/ 
struct     distance_table    dt[NODES];  
int     min_cost[NODES][NODES]; 
int     linkcost[NODES][NODES] = { 
        {0, 1, 2, INF, INF}, 
        {1, 0, INF, 15, 5}, 
        {2, INF, 0, 1, 2}, 
        {INF, 15, 1, 0, 10}, 
        {INF, 5, 2, 10, 0} 
}; 
#else  
extern int     TRACE; 
extern struct    distance_table dt[NODES]; 
extern int     min_cost[NODES][NODES]; 
extern int     linkcost[NODES][NODES]; 
 
extern int send0=0; 
extern int recv0=0; 
//1 
extern int send1=0; 
extern int recv1=0; 
//2 
extern int send2=0; 
extern int recv2=0; 
//3 
extern int send3=0; 
extern int recv3=0; 
//4 
extern int send4=0; 
extern int recv4=0; 
#endif 
 
 
/*-------------------------------------------------------------- 
*       rtpkt       Routing packet  
* 
*    sourceid    source router 
*    destid       dest router (must be immediate neighbor) 
*    mincost[]    minimum cost to other nodes  
*--------------------------------------------------------------*/ 
struct rtpkt { 
        int sourceid; 
        int destid; 
        int mincost[NODES]; 
}; 
 
/*------------------------------ 
*    function prototypes 
*------------------------------*/ 
void     rtinit0(); 
void     rtinit1(); 
void     rtinit2(); 
void     rtinit3(); 
void     rtinit4(); 
 
 
void     rtupdate0 (struct rtpkt *); 
void     rtupdate1 (struct rtpkt *); 
void     rtupdate2 (struct rtpkt *); 
void     rtupdate3 (struct rtpkt *); 
void     rtupdate4 (struct rtpkt *); 
 
 
void     printdt_0 (struct distance_table *); 
void     printdt_1 (struct distance_table *); 
void     printdt_2 (struct distance_table *); 
void     printdt_3 (struct distance_table *); 
void     printdt_4 (struct distance_table *); 
 
 
void    linkhandler0 (int, int); 
void     linkhandler1 (int, int); 
 
double    get_clock(); 
void    tolayer2 (struct rtpkt); 
 
 
 
/*    END DVsim.h ------------------------------------------*/