本文相关DataSheet:
引言
线路接口卡是核心访问线路与访问设备间的一种设备接口,主要实现路由器接口上物理层和链路层的功能,必须实现无丢包线速处理,是路由器的关键部件之一。主要关注以下几个方面:排队(如FIFO、Modified Deficit Round Robin)、拥塞控制(如加权随机早期检测)及其它特性(如访问列表、访问速率、数据流统计)。
IPv6路由器系统结构主要由线路接口、多功能转发处理、高速交换网络、内部通信、主控和网管等部分组成。多端口线卡作为IPv6核心路由器的重要线路接口,需要提供8个双向的155MbpsATM光接口,支持64个永久虚连接。多端口线卡中多路数据的合路与分路需要建立一个良好的机制来保证数据包的线速处理与每一路数据的公平性。本文对ATM多端口线卡输入和输出两个流向上的数据包调度进行了研究,提出了一种具有一定通用性的多端口线卡调度策略的设计实现方案。
输入处理流向的调度策略
在对多端口线卡输入处理流向调度策略的分析中,我们以ATM多端口线卡为研究对象。ATM多端口线卡支持8个ATM155M光接口,其中每接口支持 8个永久虚连接。 ATM多端口线卡需要对64路数据进行有效的调度,实现Gbps的线速处理。8路共64个虚连接ATM信元经商用芯片PMC5380完成链路层处理后以共享总线形式向输入链路控制电路传送;64路虚连接信元流分路缓存形成完整CPCS-PDU后合路输出,再经过AAL5适配处理,送到转发处理。根据输入处理流程,由于ATM芯片内部的FIFO缓存容量比较小,以及AAL5的处理机制,与路由器系统整包处理的机制产生了矛盾,因此必须在输入链路的控制电路内部设置64个较大的FIFO用来缓存整包,其中每一路FIFO用于缓存一个虚连接的数据包。因此高效公平的进行8路信元读取、分路和64个虚连接FIFO输出数据合路处理成为了必须要解决的问题。
为了保证8路64个虚连接的ATM信元传送及处理的公平性,满足路由器整包处理的需求,提出了基于信元的公平分片轮询调度(Cell Round Robin Scheduling;CRR)和逐包轮询调度(Packet Round Robin Scheduling;PRR)相结合的调度策略,如图1所示。

图1 输入链路控制电路中的调度策略
采取基于信元的公平分片轮询调度主要基于三方面考虑:一是基于信元操作,符合AAL5处理的需求;二是在采用ATM方式时,PM5380内部的 FIFO只能够缓存4个信元,深度有限;三是固定长度包的轮询调度,其理论研究较成熟,也较易于实现,相比不定长包调度可以避免更多的意外情况,能够确保较好的性能。
采取逐包轮询调度,是为了解决AAL5中信元的处理机制路由器系统整包处理的机制之间的矛盾。在信元输入处理时,将信元净荷按其所属的虚连接在相应的虚连接FIFO中依次缓存,直到虚连接FIFO中至少有一个完整CPCS-PDU才能被读取;在虚连接FIFO的输出侧,采用逐包轮询调度的方式对64 个虚连接FIFO进行读取。在输入流向的处理中,我们通过信元净荷在虚连接FIFO中缓存,待完整CPCS-PDU构成后再逐包轮询调度输出的方式解决了上述问题。