以太网芯片中实现流量控制的方法及装置的制造方法

文档序号:8225982阅读:679来源:国知局
以太网芯片中实现流量控制的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及网络通信领域,尤其涉及以太网芯片中通过设置报文进入出端口出队 列的检查方式来控制流量的方法和装置。
【背景技术】
[0002] 以太网交换芯片在网络资源的管理上一般分为入端口资源管理和出端口资源管 理,报文从交换机的入端口进入后,至出端口转发出去过程需要通过端口资源管理来实现。 入端口资源管理基于报文的入端口,出端口资源管理基本报文的出端口,如图1所示的交 换机中,其具有两个入端口,分别为入端口X、入端口Y,和一个出端口Z,不同的报文从入端 口X、入端口Y发送到出端口Z,并在出端口Z按次序转发。
[0003] 结合图2所示,以图1中的入端口X为例,当入端口X收到一个报文后,经过入端 口X入方向报文队列中的入队列资源策略模块的检查后,如果获知此时入端口X被允许获 得资源,则入端口X的队列长度增加1 ;如果不允许其获得资源,则报文被丢弃。因为这些 报文的出端口都是出端口Z,于是会依次进入出端口Z出队列的资源检查,如果出端口Z被 允许获得资源,则出端口Z的出队列长度增加1,最后通过调度器转发出交换机出端口Z,同 时通知入端口X入向队列释放资源;如果不允许其获得资源,则报文被丢弃,通知入端口X 入向队列释放资源。
[0004] 现有技术中,在以太网交换机中报文的转发是在入端口报文队列中,通过在入队 列资源策略模块检查中引入Pause触发器(暂停触发器),即当入端口的队列长度小于预 设的发送Pause帧的阈值时,设置Pause触发器的状态为假,即不向该入端口对应的交换机 发送暂停发送报文的消息,如果入端口的队列长度大于或等于预设的发送Pause帧的阈值 时,则设置Pause触发器的状态为真,即向该入端口对应的交换机发送暂停发送报文的消 息。
[0005] 然而,由图3可见,入端口的队列长度依赖于出端口队列长度限制。如果入端口X 和入端口Y只有分别只有一种报文出端口都是出端口Z,则:入端口X队列长度+入端口Y 队列长度< =出端口Z的出队列最大长度。入端口X队列的长度决定是否发送Pause帧, 然而入端口X队列的最大长度=出端口Z的出队列最大长度-入端口Y队列长度,如果入 端口的数量增加后,发送Pause帧所依赖的入端口队列长度将具有很大的不确定性,即有 可能因为出端口的出队列达到最大长度,而入端口队列无法达到发送Pause的阈值,在网 络拥塞时的流量控制(FlowControl)无法按期望要求正常工作。

【发明内容】

[0006] 本发明的目的在于提供一种以太网芯片中实现流量控制的方法和装置,其通过在 交换芯片的出端口队列策略模块中引入Pause触发器(暂停触发器),使Pause帧的发送完 全依赖于出端口出队列的长度,从而更精确地控制网络流量。
[0007] 为实现上述目的,本发明提出如下技术方案:一种以太网芯片中实现流量控制的 方法,报文在进入以太网交换机的出端口出队列时,通过读取当前出端口的队列长度,比较 该队列长度与预设的发送Pause帧的队列长度阈值,根据比较结果读取并设置所述出端口 对应的所有入端口的Pause触发器状态表;并根据所述Pause触发器状态表中设置的入端 口的Pause状态进行对应入端口Pause状态计数信息的更新,并根据所述入端口Pause计 数信息的更新结果决定所述入端口是否发送Pause帧。
[0008] 更进一步地,当出端口的队列长度小于预设的发送Pause帧的队列长度阈值时, 则由Pause触发器读取模块读取Pause触发器状态表,将该出端口对应的所有入端口的 Pause状态设置为假,并进行入端口Pause计数信息减1的更新。
[0009] 更进一步地,当出端口的队列长度大于或等于发送Pause帧的队列长度阈值时, 则由Pause触发器读取模块读取Pause触发器状态表,根据入端口的ID将对应的入端口的 Pause状态设置为真,并进行入端口Pause计数信息加1的更新。
[0010] 更进一步地,当入端口Pause计数信息的更新结果为非0时,对应的入端口向外发 送Pause帧;当入端口Pause计数信息的更新结果为0时,对应的入端口不发送Pause帧。
[0011] 更进一步地,当出端口没有报文触发所述Pause触发器状态改变时,通过出端口 队列定时扫描模块定时读取并设置Pause触发器状态表中的所有入端口的Pause状态来实 现Pause触发器状态表中Pause状态的触发。
[0012] 更进一步地,当出端口的队列长度小于预设的报文丢弃阈值时,报文被送入出端 口的出队列中;当出端口的队列长度大于或等于预设的报文丢弃阈值时,直接将报文丢弃。
[0013] 更进一步地,所述Pause触发器状态表为保存所述出端口对应的所有入端口的 Pause状态信息的二维表。
[0014] 本发明还提出了一种以太网芯片中实现流量控制的装置,在以太网交换机出端口 管理报文进入出队列的队列资源策略模块中,包括:
[0015] 出端口队列长度读取模块,用于读取当前出端口的队列长度,并将读取的队列长 度值发送给队列长度比较模块;
[0016] 队列长度比较模块,用于比较所述出端口队列长度和预设的发送Pause帧的队列 长度阈值,并将比较结果发送给Pause触发器状态表读取发送模块;
[0017] Pause触发器状态表读取发送模块,用于根据队列长度的比较结果,读取Pause触 发器状态表,设置所述出端口对应的入端口的Pause触发器状态表中的Pause状态,并将该 Pause状态发送至入端口Pause状态计数模块;
[0018] 入端口Pause状态计数模块,用于为每个入端口保存并更新收到Pause状态后的 计数信息,并将计数结果发送给Pause帧发送模块;
[0019] Pause帧发送模块;用于根据收到的所述计数结果决定对应的入端口是否发送 Pause帧。
[0020] 更进一步地,所述以太网芯片中实现流量控制的装置还包括出端口队列定时扫描 模块,用于定时扫描出端口队列并触发Pause触发器状态表中Pause状态的定时更新。
[0021] 更进一步地,所述Pause触发器状态表为保存所述出端口对应的所有入端口的 Pause状态信息的二维表。
[0022] 本发明通过在交换机出端口的队列资源策略模块中通过设置Pause触发器状态 表读取发送模块,使得出端口对应的各入端口的Pause状态都在出端口被读取,且该Pause 状态被发送到入端口Pause状态计数模块中进行Pause状态的计数,并根据该计数结果决 定所述入端口是否发送Pause帧,如此,使得Pause帧的发送完全依赖于出端口出队列的队 列长度,也使得出端口的流量得以精确的控制。
【附图说明】
[0023] 图1是以太网交换机端口设置的示意图;
[0024] 图2是报文在以太网交换机中从入端口发送到出端口的流程框图;
[0025] 图3是现有的在入队列资源策略模块中报文入队列的流程框图;
[0026] 图4是本发明出队列资源策略模块中报文入出端口出队列的流程框图;
[0027] 图5是本发明中通过出端口队列定时扫描器触发Pause状态的示意图;
[0028] 图6是本发明实现流量控制装置的示意图。
【具体实施方式】
[0029] 下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
[0030] 如图4所示,本发明所揭示的以太网芯片中实现流量控制的方法中,其在以太网 的交换机接收到从其他交换机发送的报文并进行转发时,为更好地进行端口流量控制以防 止网络拥塞,根据交换机的出端口上的队列长度来决定入端口报文的队列。其具体的流程 为:
[0031] 在管理出端口报文进入出队列的出队列资源策略模块中,首先由出端口队列长度 读取模块读取当前出端口的队列长度,并将该队列长度发送至队列长度比较模块,接着由 队列长度比较模块将该当前出端口的队列长度与预设的发送Pause帧的队列长度阈值进 行比较。
[0032] 队列长度比较模块比较后,如果是队列长度小于发送Pause帧的队列长度阈值, 则通过Pause触发器状态表读取模块读取Pause触发器状态表,扫描状态表中所有端口的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1