快速生成树之拓扑变化状态机

本文详细介绍了快速生成树(RSTP)的拓扑变化规则及状态机实现,包括源码分析、拓扑变化的传播过程以及不同状态下的行为。文章通过代码解释了如何在端口粒度上处理拓扑变化,如端口学习信息的清除,并对比了STP和RSTP在拓扑变化通知方式上的区别。
摘要由CSDN通过智能技术生成

 

1 源码

  rstplib.1.1.02/topoch.ctopoch.h

2 拓扑变化规则:

a) 如果一个网桥检测到拓扑变化后,它从所有非边界活动端口传播拓扑变化消息;

b) 如果一个活动端口收到拓扑变化消息后,它从所有其它非边界活动端口传播拓扑变化消

息。另外如果它是指定端口,它还从该指定端口发回一个拓扑变化确认消息;

c) 如果一个指定端口收到一个TCN BPDU,那么它不仅要从所有其它非边界活动端口传播拓扑变化消息,还要从该指定端口传播拓扑变化确认消息;

d) 如果一个端口收到一个拓扑变化确认消息,那么它停止传播拓扑变化消息。

3 代码简析

#ifndef STRONGLY_SPEC_802_1W
/*
很多交换机芯片并不支持在端口粒度上清除学习表项,此情况下,可以将除接收端口外 

* 所有非边界端口的学习表信息一次清除

*/

#else

/* 清除单个端口学习信息 */

static Bool flush (STATE_MACH_T *this, char* reason) /* 17.19.9 */

{

  register PORT_T* port = this->owner.port;

  if (port->operEdge) return True; // 跳过边界端口

  /* 清除端口的学习信息,芯片API,具体实现依赖于硬件 */

  bret = STP_OUT_flush_lt (port->port_index, port->owner->vlan_id,

                           LT_FLASH_ONLY_THE_PORT, reason);

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值