98DX107芯片Trunk口多目包转发

作者在 2006-06-09 06:32:00 发布以下内容

98DX107芯片是Marvell公司的一款prestera系列的交换芯片,用于中档的二层交换机。Trunk口也叫AP口,是几个端口合起来作为一个逻辑端口使用,从而可以增加这个逻辑端口的带宽,也可以作为冗余备份提高可靠性。

   一个多目数据包是通过多播组vidx和vlan成员表来转发的。多目数据从Trunk转发出去要经过两个步骤过滤:源接口过滤,非指定trunk组端口过滤。

源接口过滤是指从多目发送列表中移除源接口(这里接口即可以是物理端口也可以是Trunk口)。在级联口上,会有两个独立的源接口,分别是本地设备源接口和入口设备源接口。在本地设备源接口和入口设备源接口都是Trunk口的情形下,所有属于这些Trunk组的端口成员都要进行源端口过滤。在芯片内部有一个"非Trunk成员表"来实现这种过滤。在98DX107上,这个表有128条记录,每条记录对应一个Trunk组。每条记录上的一位代表一个端口,其中0表示是这个Trunk组的成员,1表示不是这个Trunk组的成员。

指定trunk组端口是指多目包从它转发出去的Trunk组端口。为了负载平衡,芯片利用哈希函数来指定Trunk组成员内的转发端口。为了实现这个机制,一个"指定Trunk成员表"用来选择单独的端口转发数据包。这个表有8个条目,每个条目里包含一些端口的掩码,每一位对应一个本地设备的端口。如果一个端口满足两个条件中的一个,那么在一个条目里这个端口对应的掩码位为1。这两个条件,一是这个端口不属于任何Trunk组,二是它属于某个Trunk组并且作为这条记录的指定成员。

 

程序生涯 | 阅读 3708 次
文章评论,共0条
游客请输入验证码