应用在网络装置中的电路及网络装置的操作方法与流程

文档序号:26838105发布日期:2021-10-08 18:40阅读:44来源:国知局
1.本发明涉及一种应用在将网络封包传送给处理器的装置中的电路。
背景技术
::2.在位于交换机(switch)或是路由器(router)内的网络通信装置中,网络装置会具有多个端口(port)以接收或输出封包,当网络装置接收到封包时,会先通过内部的硬件电路及查找表(look-uptable)做查询,以决定要将封包从哪个端口传送出去;而若是硬件电路判断需要软件介入处理,则硬件电路会将封包送往中央处理器,以通过软件处理的方式来决定是否对封包进行修正或是判断出封包的目的地。如上所述,通过硬件电路来转送(forward)封包较为快速,但若是查找表内没有所接收的封包的相关信息或是硬件无法辨识封包格式时,硬件电路便无法处理而需要通过软件来处理封包;软件转送可以处理所有的封包格式,但是在实际操作上硬件电路在处理失败时会先将整笔封包搬移到处理器可以存取的内存中,之后中央处理器再从内存中读取封包内容进行软件分析以进行适当处置。然而,此传统做法会需要使用到较多的内存空间且占用较多的总线带宽,因而使得系统效能变差,特别是巨型长封包(jumboframe)对效能影响更严重。技术实现要素:3.因此,本发明的目的之一在于提出一种应用在网络装置中的技术,其可以有效地降低中央处理器在以软件处理封包时对于系统效能的影响,以解决先前技术中的问题。4.在本发明的一个实施例中,揭露了一种应用在一网络装置中的电路,其包含有至少一个端口、一处理器端口、一封包缓冲器、一控制电路以及一分析器,其中该处理器端口通过一总线连接至一内存以及一处理器。在该电路的操作中,该封包缓冲器储存通过该至少一个端口中的其一所接收的一封包,该分析器对该封包进行分析以判断该封包的处理方式,以及当该分析器无法判断该封包的处理方式或决定该封包需要软件处理时,该控制电路可以由软件设定控制将该封包的一部分内容分批传送或一次将全部内容通过该处理器端口传送至该内存,以供该处理器进行进一步处理。5.在本发明的另一个实施例中,揭露了一种网络装置的操作方法,其包含有以下步骤:接收一封包;将该封包储存至一封包暂存缓冲器之中;对该封包进行分析以判断该封包的处理方式;以及当无法判断该封包的处理方式或决定该封包需要软件处理时,可以由软件设定控制将该封包的一部分内容分批传送或一次将全部内容传送至一内存,以供一处理器进行软件处理。附图说明6.图1为根据本发明一实施例的网络装置的示意图。7.图2a、图2b为根据本发明一实施例的网络装置的操作的流程图。8.图3为电路所接收的封包的结构示意图。messageprotocol,icmp)帧、用户数据报协议(userdatagramprotocol,udp)封包、传输控制协议(transmissioncontrolprotocol,tcp)、……等等,每一种帧/封包类型具有对应的dma传送基本单位长度,例如tcp封包对应到12字节、icmp帧对应到16字节;而控制电路130以及dma控制器160可以根据所接收的封包300的帧/封包类型来决定要传送多少字节(l)至dram106。在另一实例中,查找表152可以包含了一第二传送长度查找表,其中该第二传送长度查找表包含了多个优先级以及对应的dma传送长度(l),举例来说,具有最高优先级的封包对应到4个字节、次高优先级的封包对应到6个字节、第三高优先级的封包对应到8个字节、……等等;而控制电路130以及dma控制器160可以根据所接收的封包300的重要性或是优先级来决定要dma传送多少字节至dram106,其中封包300的重要性或是优先级可以由封包300的类型、由哪个端口进入到电路110中、来源地址、目的地址、标头信息、…或任何其他相关信息来决定。在另一实施例中,查找表152同时包含了上述的该第一传送长度查找表以及该第二传送长度查找表,而控制电路130以及dma控制器160可以根据该第一传送长度查找表以及该第二传送长度查找表来决定要传送多少字节至dram106,例如若是同时在该第一传送长度查找表以及该第二传送长度查找表都查找到传送长度,则选取较长的传送长度值;设定该第一传送长度查找表以及该第二传送长度查找表的优先次序,亦即若是同时在该第一传送长度查找表以及该第二传送长度查找表都查找到传送长度,则选取具有较高优先次序的传送长度查找表所决定出的传送长度。13.接着进入步骤210判断待传送封包长度变量m是否小于dma传送基本单位长度l。若m小于或等于l,则流程进入步骤212,以将封包剩余全部内容传送到dram106;否则流程进入步骤214。在步骤214中将该封包依据前次dma传送后接续的l字节内容传送到dram106。若该封包第一次由dma控制器160传送数据到dram106则是传送由报头开始的l字节内容。14.在控制电路130以及dma控制器160将封包的一部分内容传送至dram106之后,控制电路130可以通过处理器端口112来通知处理器102,并告知封包300的一部分内容已传送至dram106。特别说明的是,在另一实施例中此dram106可以被替换为其他任何类型内存。15.接着进入步骤216,软件读取已传送到dram106封包内容,并进行分析以判断是否需要继续读取位于封包缓冲器内剩余的该封包内容,若是,流程进入步骤218以更新待传送封包长度变量m(将原m数值减去先前dma传送到dram106的l字节),并再次进入步骤210。请参考前面描述此不赘述。在另一实施例中,此dma传送基本单位长度l可以在每一次dma中由软件设定为不同数值。16.当于步骤216中判断不需要继续读取位于封包缓冲器内剩余的该封包内容时,流程进入步骤220。同样于步骤212后续接着也是进入步骤220,代表该封包内容从dma控制器160到dram106的程序已完成。17.请参考图2b,步骤220中软件读取dram106中由dma控制器160传送来的封包部分或全部内容,并进行分析与修正。接着,流程进入步骤222以判断封包300是否需要通过多个端口114_1~114_n中的其一转传至其他电子装置,若是则进入步骤224,否则进入步骤228。18.在步骤228中,软件下命令让封包缓冲器120释放该封包占用的内存空间。接续于步骤230中进入一般传统软件运作方式,此不赘述。19.于步骤224中,软件下令通过dma控制器160将dram106上已修正完的部分封包内容写回封包缓冲器,覆盖原该封包的部分内容完成更新;接着于步骤226经由目的端口转送该封包出去。20.需注意的是,上述有关于软件分析的内容已为本领域技术人员所熟知,再加上本实施例的重点在于将封包300分段传输以供处理器102进行软件分析,故有关于软件分析的细节在此不赘述。21.简要归纳本发明,在本发明的应用在网络装置中的电路,当封包无法通过硬件电路判断出转传信息或是转传到处理器端口时,可以只将封包的一部分内容传送至dram以供处理器进行软件分析,而在一实施例中,该部分内容包含大部分封包查询所需要信息(例如,报头),因此,在大部分的情形下,处理器可以仅读取与通过封包的该部分内容便可以决定出封包的后续处理方法,不需完整分析整笔封包内容;因此可以有效地减少使用dram的带宽,且也可以增加相关电路的执行效率并减少功率消耗。22.以上所述仅为本发明的优选实施例,凡依本发明权利要求范围所做的均等变化与修饰,皆应属本发明的涵盖范围。23.【符号说明】24.100:网络装置25.102:处理器26.104:内存控制器27.106:dram28.108:总线29.110:电路30.112:处理器端口31.114_1:第一端口32.114_2:第二端口33.114_n:第n端口34.120:封包缓冲器35.130:控制电路36.140:分析器37.150:内存38.152:查找表39.160:dma控制器40.200~230:步骤41.300:封包。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1