毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

Dynamips设计与分析-Dynamips及相关教学软件研究与设计 第12页

更新时间:2009-4-16:  来源:毕业论文
Dynamips设计与分析-Dynamips及相关教学软件研究与设计 第12页
其他NPE-150,NPE-175,NPE-200,NPE-225,NPE-300,NPE-400,NPE-G1的初始化与NPE-100的初始化基本相似,在此就不再分别进行分析。
2.端口适配器PA的实现
PC机上没有端口适配器,只有通过Dynamips来访真模拟实现。实现端口适配器至少要实现创建端口适配器、关闭端口适配器、实例化端口适配器。
(1)创建一个端口适配器
函数实现如下:
/* 创建一个端口适配器 */
int c7200_cmd_pa_create(c7200_t *router,char *str)
{
   char *tokens[PA_DESC_MAX_TOKENS];
   int i,count,res;
   u_int pa_bay;
   /* 一个端口适配器是这样描述的: "1:PA-FE-TX" */
   if ((count = m_strsplit(str,':',tokens,PA_DESC_MAX_TOKENS)) != 2) {
      vm_error(router->vm,"unable to parse PA description '%s'.\n",str);
      return(-1);
   }
   /* 通过id解析此PA */
   pa_bay = atoi(tokens[0]);
   /*  在当前的PA列表中添加此新的PA  */
   res = c7200_pa_add_binding(router,tokens[1],pa_bay);
   /* 完全列阵被strsplit清掉 */
   for(i=0;i<PA_DESC_MAX_TOKENS;i++)
      free(tokens[i]);
   return(res);
}
(2)创建一个端口适配器
函数实现如下:
/* 关闭一个 PA */
int c7200_pa_shutdown(c7200_t *router,u_int pa_bay)
{
   struct c7200_pa_bay *bay;
   if (!(bay = c7200_pa_get_info(router,pa_bay)))
      return(-1);
   /* 检测设备类型是否专为此bay定义的 */  
   if (!bay->dev_type || !bay->pa_driver) {
      vm_error(router->vm,"trying to shut down an empty bay %u.\n",pa_bay);
      return(-1);
   }
   /* 卸掉所有的NIO */
   c7200_pa_disable_all_nio(router,pa_bay);
   /* 关闭 PA 驱动器 */
   if (bay->drv_info && (bay->pa_driver->pa_shutdown(router,pa_bay) == -1)) {
      vm_error(router->vm,"unable to shutdown PA %u.\n",pa_bay);
      return(-1);
   }
   free(bay->dev_name);
   bay->dev_name = NULL;    /* 赋空值 */
   bay->drv_info = NULL;     /* 赋空值 */
   return(0);
}
(3)实例化一个端口适配器
函数实现如下:
/* 实例化一个PA */
int c7200_pa_init(c7200_t *router,u_int pa_bay)
{  
   struct c7200_pa_bay *bay;
   size_t len;
   if (!(bay = c7200_pa_get_info(router,pa_bay)))
      return(-1);
   /* 检测设备类型是否专为此bay定义的 */
   if (!bay->dev_type || !bay->pa_driver) {
      vm_error(router->vm,"trying to init empty slot %u.\n",pa_bay);
      return(-1);
   }
   /* 分配设备名称 */
   len = strlen(bay->dev_type) + 10;
   if (!(bay->dev_name = malloc(len))) {
      vm_error(router->vm,"unable to allocate device name.\n");
      return(-1);
   }
   snprintf(bay->dev_name,len,"%s(%u)",bay->dev_type,pa_bay);
   /* 实例化PA驱动器 */
   if (bay->pa_driver->pa_init(router,bay->dev_name,pa_bay) == 1) {
      vm_error(router->vm,"unable to initialize PA %u.\n",pa_bay);
      return(-1);
   }
   /* 启动所有的NIO */
   c7200_pa_enable_all_nio(router,pa_bay);
   return(0);
}
3.模拟启动7200路由器
(1)初始化7200缺省参量
    对C7200路由器的缺省参量进行设置,7200的NPE默认类型为NPE-200。
(2)初始化7200平台
在这个过程中要初始化MIPS处理器,初始化NPE,初始化RAM,初始化ROM,初始化适配器端口,Remote仿真控制器,Boot引导,显示设备。
(3)启动IOS文件
IOS文件是做思科路由器必须的文件,Dynamips自带有7200的IOS文件,如果还需要其他的IOS则需要购买或者到网上搜索查找。
4.其它
(1)虚拟桥接
虚拟桥接被用来在模拟器之间模拟一个共享网络。例如:任何模拟器可以被当作一个虚拟的桥接。配置文件(-b命令可以列出)包括一个NETIO描述符列表,如下所示:
语法:netio_type[:netio_parameters]
例子: 
# Connection to instance "I0"  连接I0

# Connection to instance "I2"
udp:10004:127.0.0.1:10005
I0将以下面的参数开始:
    dynamips ios.bin -p 1:PA-FE-TX:udp:10001:127.0.0.1:10000
(2)虚拟ATM交换机
虚拟ATM交换机过去习惯被模拟成一个在模拟器设备之间的ATM骨干网。虚拟交换机的使用不是强制的,可以直接把模拟器直接成点对点的ATM连接。请注意,仅仅

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ... 下一页  >> 

Dynamips设计与分析-Dynamips及相关教学软件研究与设计 第12页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。