Chinaunix首页 | 论坛 | 博客
  • 博客访问: 818835
  • 博文数量: 264
  • 博客积分: 592
  • 博客等级: 中士
  • 技术积分: 1574
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-24 22:02
文章分类

全部博文(264)

文章存档

2019年(2)

2018年(1)

2017年(1)

2016年(4)

2015年(14)

2014年(57)

2013年(88)

2012年(97)

分类:

2013-03-06 22:27:53

原文地址:交换机的内部 [2] 作者:conghonglei

2。 Input path

输入模块整体结构如下图所示:
从图中可看出,输入模块由多个输入接口组成,每个输入接口有各自的PHY和MAC芯片,以及各自的流控模块。每个接口的输入队列由其自身的流控模块进行管理;如果配置了端口聚合,Link Aggregation Collector将会把多个物理接口收到的frame stream聚合为一个逻辑接口的frame stream送到包分类器。包分类器对输入的frame stream按照VLAN ingress rules标注出VLAN ID及各frame的priority,后面VLAN Filter决定是否对此VLAN的frame进行处理,经过VLAN filter后,将进行查表决定一个frame应该被转发到那个输出端口,将输出信息保存到output vector中交给switch fabric。Swtich fabric将按照output vector中的内容将其转发到对应输出端口的queue中。
下面对输入模块的各个子模块进行详细介绍。

2.1 Port Interface
端口接口由MAC和PHY两部分组成,PHY将物理层信号转为frame,MAC负责进行FCS检查以及RMON信息的统计等。

2.2 Receive Flow Control
输入端MAC层的流控主要针对PAUSE帧的处理,此模块将检查收到的frame是否为PAUSE帧,并根据PAUSE帧参数对PAUSE timer进行更新。

2.3 Classification Engine
对于switch的包分类器,需要完成对frame的初步分析,包括识别是否frame为link-constrained protocol,这些需要管理模块进行处理,而不应转发这些frame;确定frame所属的VLAN,对于包含VLAN头的frame从中取出VLAN ID,对于不包含VLAN头的frame按照所配置的VLAN rules确定frame的VLAN ID;最后需要确定此frame的priority。通常分类器将其所有分析结果保存到一个internal frame header中,以方便后续模块的使用。通常一个header如下所示:
根据系统的不同需要(成本需求->性能/功能需求),帧分类器有不同的实现方式,对于简单的如果只处理包含VLAN头的frame可以通过硬逻辑直接实现,如果更多的功能需求可采用NP实现,通过NP可以实现复杂的VLAN分类规则,另外还有通过可编程状态机来实现也可实现很好的性能。

2.4 VLAN filter
VLAN过滤器主要功能是判断此frame来自相同VLAN成员中,从而决定是否丢弃此frame。对于不同的端口配置对此有不同的动作。

待续
阅读(881) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~