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) |