Chinaunix首页 | 论坛 | 博客
  • 博客访问: 469955
  • 博文数量: 143
  • 博客积分: 6159
  • 博客等级: 准将
  • 技术积分: 1667
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-25 23:08
文章分类

全部博文(143)

文章存档

2013年(1)

2012年(11)

2011年(55)

2010年(76)

分类:

2011-01-07 22:32:22

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。对于不同的端口配置对此有不同的动作。

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