STP模块调试小结.doc_第1页
STP模块调试小结.doc_第2页
STP模块调试小结.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STP模块调试小结 数据事业部软件开发二部 孙蓓 2005-9-21完成STP代码后,开始进行功能自测,在这个过程中遇到很多问题,随着问题的解决,感觉学到很多,现总结如下,希望能对大家,特别是像我一样的新员工有一些借鉴和帮助。星期六下午:STP模块中绑定VLAN到实例、删除实例和设置实例端口状态功能都调试成功了,还剩下BPDU的透传功能没有测试,不知道为什么自己没有一丝轻松的感觉,隐约有些担心,透传在写代码时就遇到了一些问题,56504芯片的设置相比其它芯片有了改动,向FAE请教的一些问题回答不是很明确。带着一些忐忑,星期一上午开始调试,结果没有出人意料,透传果真出现了问题。问题一:56504透传设置主要在L2_USER_ENTRY中,发现在写L2_USER_ENTRY时,总是写不进去。问题分析: L2_USER_ENTRY用于BPDU有6个entry,我一直不明白为什么要设置6个,对于自己用哪个index有效也不明确,向FAE询问时,他也没有说出原因,只是很肯定的说index设为1,就会写入还没有使用的表项中,于是我在写代码时就设置了1,现在出了问题,第一个就是怀疑它,跟代码后果然不出所料,写表时它先会检查是否有相同的表项写入,且只检查了mac地址、mask位和vlan位,这几位恰好我都没有修改,于是它认为是相同的表项,根本不再写表,这种情况下,设置index1是不对的。问题解决:仔细再阅读有关对L2_USER_ENTRY所有操作,原来它在初始化时就将05的表项写好了,用于BPDU的05,我决定将他们全部都设置一下,index改为05,结果成功写表。(后来证明不需要全部都写,只要将优先级最高的index0写入就可以了)问题总结:1、 对FAE不能盲目相信,一定要对所有操作仔细的跟到低,要深入看代码。成功写表了,按照自己的设置在透传时将L2_USER_ENTRY中的cpu设为0,将bpdu设为0,不透传时将cpu设为1,将bpdu设为1,结果发现还是不透传,还有什么问题呢?难道关于BPDU透传控制还有其他设置? 问题二: 设置透传后,写表成功,但还是不透传。问题解决: 透传时L2_USER_ENTRY的bpdu位不应该设置成0,应该设置为1。这是在看芯片资料时发现的。这里要感谢韩俊杰,他在看到有关的设置时,提醒了我。问题总结: 那么我在写代码时为什么要设为0呢?回想起来,是自己的不对。自己刚开始没有在芯片资料中找到关于这位的说明,在FAE来的时候,就向他们询问,FAE的回答是在透传时要将bpdu位设置为0,于是自己就没有再继续查找资料,就直接将bpdu位设置为了0。问题一和问题二的错误是自己不应该犯的,在以后的工作中一定要注意:对自己设置的任何操作都要自己找到依据,不能盲目相信FAE。 也许现在应该没有问题了吧,表写成功了,bpdu设置正确了,可是测试的结果还是不能透传。检查写入的表,写的是正确的,再查看芯片资料,也没有什么问题,那为什么设置透传后,没有在vlan内广播,cpu还是能够收到包?难道真的还有其他关于透传的设置,自己没有找到?我开始怀疑自己,是不是透传只对L2_USER_ENTRY设置是不行的。问题三: 设置透传后,CPU还是能收到包,却还是没有向vlan内广播。问题解决:一次又一次写表,再将表down出来,设置是正确,那为什么cpu还能收到包?这时突然间想到会不会cpu端口和收bpdu包的端口设置在同一vlan里面,自己在测试的时候没有同时检查cpu收包情况和端口收包情况,如果是在同一vlan,那设置透传后,cpu自然会收到包了!向陈遗保借了根线,连到主机,看见端口的灯在闪!好开心!端口收到包了!用sniffer抓包看,果然是bpdu包,看来向vlan广播了,那cpu可能就设置在了同一个vlan里面,于是向张作富请教,他说缺省的情况下cpu端口没有配在同一个vlan里面,是吗?那怎么会出现既向cpu发包又向vlan广播的情况,太奇怪了,决定还是将vlan表down出来看一下,果然cpu端口和收包端口在同一共vlan里面!原来自己的版本太老了,没有将新的vlan模块合进来!问题总结:1要注意自己的模块不是孤立的,大家的模块都是一个紧密联系的整体,在查找问题的时候,要想想会不会是这方面的问题。2 测试的环境要正确,如果自己同时检测cpu收包情况和端口收包情况,那应该早就发现问题了。长舒了一口气,看来问题解决了,很放心的睡了一个午觉,想着只要下午将新的版本合上就可以了,问题解决了。然而生活并不总是如你所想象,它只是真实的展现它的本来面目!下午:配命令,spanning tree disable ,查cpu发现收不到包!再配透传,发现没有抓到包!怎么仅仅过了一个中午,情况就变了,我的程序并没有改啊!仔细想想唯一不同的地方在于这时是用平台的命令配的,上午是自己调的函数,于是封掉平台的入口,自己调,透传成功!问题出在平台调用函数方面,那到底是怎么回事?正在自己一筹莫展的时候,范力涵来了。有了科长在旁边,自己镇定多了。问题四:自己调函数设置透传成功,在平台配命令不成功!问题解决: 范力涵了解了基本情况后,很肯定的指出问题在于平台调用函数上面,应该将各个函数入口控制住,他用了四个外部变量,在封住设置端口状态函数后,用平台配透传成功!原来问题出在这里,show出状态后发现平台在spanning tree disable命令后将所有端口状态都设为了disable,所有包都被丢掉,cpu当然收不到包!找平台修改了配置,终于调试成功。问题总结:1 自己在这时没有很好的整理一下解决问题的思路,这时应该仔细的跟函数,看平台调了哪些函数,参数是怎么设置的,这样应该能很快的发现问题。2 自己很缺乏调试的方法,比如用外部变量控制函数的入口,或者封住平台调函数的入口等。 写到这里,看看自己所遇到的问题,觉得这些都是可以避免的,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论