1 源码
rstplib.1.1.02/rolesel.c, rolesel.h
2 功能
每个网桥拥有一个端口角色选择状态机,负责为每个端口分配角色。
3 端口角色
RSTP中端口角色有如下几种:根端口、指定端口、可选端口、备份端口、弃用端口。
端口角色的分配由以下因素决定:
a) 每个网桥的唯一网桥ID(BridgeIdentifier);
b) 每个网桥端口的路径代价(PortPathCost);
c) 每个网桥端口的端口ID(portId)。
3.1 基础概念:
根网桥:所有网桥中网桥ID最小的那个网桥是该桥接LAN的根网桥。
路径代价:帧经过该端口要花费的代价是该端口的路径代价(可配置)。
根路径代价(网桥):从根网桥到该网桥的最小代价路径中,所有接收帧的端口(即根端口)的路径代价之和是该网桥的根路径代价,根网桥的根路径代价为0。
指定网桥(LAN):接在LAN上的所有网桥中根路径代价最小的那个网桥是该LAN的指定网桥。
根路径代价(LAN): LAN的根路径代价等于该LAN的指定网桥的根路径代价
3.2 端口角色概念:
根端口(网桥):从到根网桥的最小代价路径接收帧的那个端口就是该网桥的根端口,根端口提供了到达根网桥的一条最优路径。
指定端口(LAN):将LAN连到指定网桥的端口是该LAN的指定端口。
备份端口:如果一个网桥是一个LAN的指定网桥,那么除了指定端口外,该网桥的所有接在该LAN上的可工作端口都是备份端口,备份端口是指定端口的一个备份。
可选端口:如果一个端口是可工作的,并且它不是根端口、指定端