基于88E6095的链路冗余协议开发(二)

来源:互联网 发布:韩雪网络直播视频 编辑:程序博客网 时间:2024/05/19 09:15

link 事件

功能实现

协议状态机需要根据当前端口的状态进行计算,并根据端口状态的改变触法状态机的切换.
端口状态通过读取mv88e6095 的register 获取,协议在等待报文接受时进行10ms 的超时,每次超时对端口link 状态进行检测,如果有端口改变则调用端口link change 处理接口进行处理.

端口对link改变状态的读取,在88E6095 task中实现,扫描所有端口状态并存储在数据结构中,协议计算时直接读取数据结构中的内容进行读取。

端口stp状态

链路冗余协议通过对物理上连接的链路,配置端口的逻辑状态。当物理链路上形成环路时,通过逻辑状态的设置避免环路的出现,并能根据物理链路的变化,调整端口状态配置,从而达到链路冗余备份的目的,具体内容参考stp或者冗余环相关文档。
为了达到对端口逻辑状态进行控制的目的,交换芯片提供了端口的逻辑状态配置寄存器,包括以下四种状态。(参考802.1D文档,参考88E6095文档的3.5.1章节)


功能实现

88E6095提供对实现链路冗余协议的支持,要支持链路冗余,首先要保证在系统启动时,所有端口为阻塞状态,防止由于设备重启导致网络环路,88E6095提供了启动配置引脚,来实现对系统启动时,端口状态的配置。(88E6095文档 page 44)

88E6095提供了对每个端口stp进行配置的寄存器,支持软件根据链路冗余协议对每个端口的stp状态进行控制。(88E6095文档 page182 PortState)

接口函数

函数名称:

set_port_status

函数功能:

配置指定端口的stp状态




0 0
原创粉丝点击