IPV6网管命令代理的设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IPV6网管命令代理的设计与实现

IPV6网管命令代理的设计与实现 1.系统框架 2.各子系统之间的交互接口的定义 2.1 oam4(主要是指rpu 的execute进程)与icp的接口 主要有以下几种接口:事件型函数调用,rpc命令调用,同步1次命令,同步大包命令,异步命令。 2.1.1 事件型函数调用 事件型函数调用主要是完成icp链路打开,关闭,异步命令中断,设置 imi vty的一些参数的工作。 以下是所有的事件函数 extern IcpBreakAsynCmd(int channel); extern IcpOpenChannel(int channel, UINT8 mode); extern IcpCloseChannel(int channel); extern IcpSetHostname(int channel, char * hostname); extern IcpSetVtyPara(int channel, UINT8 width, UINT8 height); 事件型函数与icp之间采用的消息结构为:Icp_event        消息发送方式:同步消息发送        消息类型为:EXECUTE_ICP_EVENT 消息结果的传递方式:不携带命令结果字符串,只是在消息体中填写返回码 事件之间又用消息体中的u_char eventide 来区分, #define ICP_EVENT_OPEN_CHANNEL 1 #define ICP_EVENT_CLOSE_CHANNEL 2 #define ICP_EVENT_VTY_PARA 3 #define ICP_EVENT_HOSTNAME 4 2.1.2 rpc命令调用 所谓rpc命令,只是一种表象表现,即由icp部分提供一个函数,提供类似于ioctl一样的效果,用户只要按rpcid号调用函数,并提供缓冲区,就可以得到想要的数据或达到某种get或set或process的操作。实际的内部实现与同步命令无异。 本来rpc命令可以和事件型的合并,但是因为两者之间还是有区别的,即事件型侧重于传递一些参数,而rpcid侧重于获得结果,基本上不需要给icp传参,所以两者在消息结构上不同 rpc命令函数与icp之间采用的消息结构为:MSG_COMM_OAM *        消息发送方式:同步消息发送        消息类型为:EXECUTE_ICP_NORMAL_RPC1 消息结果的传递方式:在消息体中携带命令结果的数据 extern IcpRpcCmdMultitimes(int channel, int rpcid, u_char * buff, int bufflen, int firsttime); extern IcpRpcCmdOnetime(int channel, int rpcid, u_char * buff, int bufflen); 2.1.3 同步命令结果一次获取(即一般意义的同步命令) 它是针对大多数命令而设计的,即大多数命令只有少量的结果需要返回,所以用户发一次同步命令,就可以执行完命令,并把命令结果返回 它与icp之间采用的消息结构为:MSG_COMM_OAM *        消息发送方式:同步消息发送        消息类型为:EXECUTE_ICP_NORMAL_SYNC2 消息结果的传递方式:在消息体中携带命令结果的数据缓冲区指针。 2.1.4 同步命令结果多次获取(即异步大包命令) 它是针对那些如show ipv6 route 的命令,这些命令有大量的输出,由于结果庞大,oam4不能一次接收完结果,所以采用分批接收的办法,oam4发一次同步消息,就返回一批数据,当它处理完后,再发一次同步消息请求下一批数据,直到结果完毕。 它与icp之间采用的消息结构为:MSG_COMM_OAM *        消息发送方式:多次同步消息发送        消息类型为:EXECUTE_ICP_NORMAL_SYNC1 消息结果的传递方式:在消息体中携带命令结果的数据 2.1.5 异步命令 它是针对如ping6,还可以是telnet6之类的命令,这类命令的特点是执行时间不定,执行结果返回的多少及时间不定,所以对这类命令采用发一个ros异步消息,通知执行一个命令,然后oam4就可以接收到由icp发过的ros异步消息,当命令执行完毕,icp也是用异步消息通知oam4的(即在消息中的lastpacket字段中填ture便可) 它与icp之间采用的消息结构为:MSG_COMM_OAM *        消息发送方式:一次ros异步消息发送要求执行

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档