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 ------------------------------------------*/