⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dvsim.h

📁 网络 DV 算法源代码。。。。比较简单。。。。就是模拟路由器分布式选路
💻 H
字号:
 #include     <stdio.h>
#include     <stdlib.h>
#include    <process.h>
#include    <io.h>
#include    <iostream.h>

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -