【原创】Marvell 88E6390交换芯片disable自动学习功能的坑
2018-02-27 14:38
726 查看
官方芯片手册上说可以Marvell 88E6390通过清除端口的PAV来禁用端口的自动mac地址学习(Learning can be disabled on any individual port by clearing the port’s PAV to all zeros (see Port Association Vector, Port offset 0x0B).)
但是如果这样做的话如果报文的SA已经在其他端口学习到,芯片会清除掉该条转发表,芯片手册上也有说明如下:
我们当前有种应用场景是报文从端口A进入(学习SA),上送CPU处理之后,又从端口B返回芯片,这里就需要禁用端口B的自动学习,如果通过清除DPV来实现就会把端口A学习的转发表现清除,这个处理很坑。
【解决办法】
通过端口的lock功能(port’s LockedPort bit to a one (Port offset 0x0B).),锁定功能是指当一个新的SA进入芯片,会产生一个中断,由CPU决定是否学习该地址,如果不需要CPU可以忽略该中断或者通过中断控制寄存器直接不上报该中断达到禁止mac自动学习的功能而又不影响该地址在其他端口的学习。
但是如果这样做的话如果报文的SA已经在其他端口学习到,芯片会清除掉该条转发表,芯片手册上也有说明如下:
我们当前有种应用场景是报文从端口A进入(学习SA),上送CPU处理之后,又从端口B返回芯片,这里就需要禁用端口B的自动学习,如果通过清除DPV来实现就会把端口A学习的转发表现清除,这个处理很坑。
【解决办法】
通过端口的lock功能(port’s LockedPort bit to a one (Port offset 0x0B).),锁定功能是指当一个新的SA进入芯片,会产生一个中断,由CPU决定是否学习该地址,如果不需要CPU可以忽略该中断或者通过中断控制寄存器直接不上报该中断达到禁止mac自动学习的功能而又不影响该地址在其他端口的学习。
相关文章推荐
- Marvell 交换芯片DSA(分布式交换架构)功能介绍
- marvell 交换芯片DSA(分布式交换架构)功能
- Oracle 10g 统计信息自动收集功能(automatic statistics gathering)学习总结 .
- flume源码学习3-自动reload配置功能
- (原创)mybatis学习四,利用mybatis自动创建代码
- Asp.net学习记录6--Textbox的自动完成、自动补充功能呢
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- .net reactor 学习系列(三)---.net reactor代码自动操作相关保护功能
- Python学习笔记三(Python程序升级安装及其Tab自动补齐功能)
- 用反射实现将数据自动填充到对象中,学习orm的半个功能
- Marvell 98DX51xx / 98DX81xx 系列交换芯片 内部初始化
- iOS开发学习笔记:使用xcode里的单元测试,放在STAssert…里面的语句无法使用自动完成功能
- Marvell 98DX51xx / 98DX81xx 系列交换芯片 内部初始化
- 生物化的芯片:电脑已能自动学习和纠正错误
- 原创]unity3D学习【功能实现】之一:坐标的转换以及物体的移动
- Linux的芯片驱动firmware自动升级之一:功能说明
- Android(java)学习笔记204:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)
- [原创]unity3D学习【功能实现】之二:图片的旋转/2d物体的旋转
- [原创]jQuery实现搜索框自动完成功能
- 【2018深度学习10大警示】多数芯片公司将破产;自我对弈可自动创造知识