CN111131051A - 路由下发方法和装置 - Google Patents
路由下发方法和装置 Download PDFInfo
- Publication number
- CN111131051A CN111131051A CN201911398919.XA CN201911398919A CN111131051A CN 111131051 A CN111131051 A CN 111131051A CN 201911398919 A CN201911398919 A CN 201911398919A CN 111131051 A CN111131051 A CN 111131051A
- Authority
- CN
- China
- Prior art keywords
- index
- route
- issued
- local
- routes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种路由下发方法和装置。该路由下发方法应用于网络设备,包括:确定本地内存中是否存在待下发至本地芯片的路由;当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。本申请在执行路由下发操作时,按照取DMA方式将从本地内存中确定出的至少一个目标路由携带在一条指令中下发至本地芯片。相比于逐条下发路由的方案,大幅减少了按照DMA方式下发路由的操作执行次数,即使在短时间内需要下发路由数量较大,也不会出现路由下发缓慢甚至无法进行路由下发的问题。
Description
技术领域
本申请涉及网络通信技术,特别涉及路由下发方法和装置。
背景技术
目前的网络设备中,通常由CPU学习路由并在学习到路由后,将该路由下发到本地芯片,以使该芯片利用的下发的路由对报文进行转发。
但在上述方案中,CPU每下发一个路由,就会执行一次按照直接内存存取DMA方式将路由下发至芯片的操作。当在短时间内需要下发路由数量较大时,则会造成路由下发缓慢甚至无法进行路由下发的问题。
发明内容
本申请提供了路由下发方法和装置。
根据本申请的第一方面,提供一种路由下发方法,该方法应用于网络设备,该方法包括:
确定本地内存中是否存在待下发至本地芯片的路由;
当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;
按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。
根据本申请的第二方面,提供一种路由下发装置,该装置应用于网络设备,该装置包括:
路由确定单元,用于确定本地内存中是否存在待下发至本地芯片的路由;
目标路由确定单元,用于当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;
下发单元,用于按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。
由以上技术方案可以看出,本申请中,待下发路由会先存储至本地内存中以等待下发,并在执行路由下发操作时,按照取DMA方式将从本地内存中确定出的至少一个目标路由携带在一条指令中下发至本地芯片。相比于逐条下发路由的方案,大幅减少了按照DMA方式下发路由的操作执行次数,即使在短时间内需要下发路由数量较大,也不会出现路由下发缓慢甚至无法进行路由下发的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请提供的方法流程图;
图2为本申请提供的步骤101的实现流程图;
图3为本申请提供的步骤102的实现流程图;
图4为本申请提供的索引更新流程图;
图5为本申请提供的另一种索引更新流程图;
图6为本申请提供的装置结构示意图;
图7为本申请提供的图6所示装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,图1为本申请提供的一种路由下发方法的流程图。本申请提供的路由下发方法可以应用于网络设备,例如,路由器、服务器或终端设备等需要通过路由以转发报文的设备。
如图1所示,该流程可以包括:
步骤101,确定本地内存中是否存在待下发至本地芯片的路由;
作为一个示例,CPU在将待下发路由下发至芯片时,并不会将待下发路由直接的下发至芯片中,而是会将待下发路由先发送至硬件驱动,由硬件驱动将路由存储至本地内存中。在需要执行路由下发操作时,再将存储至内存中的待下发路由进行下发。
作为一个示例,本申请的步骤101可以周期性的被触发,例如,每间隔50ms被触发一次。在此基础上,为了避免每次触发步骤101都会执行相应的路由下发操作,进而导致每次下发的待下发路由过少,可以选择在触发步骤101达到一定次数后,如100次,再开始执行后续的步骤102至步骤103,以保证每次下发的待下发路由不会过少。
作为一个示例,确定本地内存中是否存在待下发至本地芯片的路由有多种实现方式,图2示出了其中一种,下文会具体举例,这里暂不赘述。
步骤102,当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;
作为一个示例,由于CPU会将待下发路由先存储至内存中,以等待触发路由下发操作,这就会出现内存中存储有多个待下发路由的情况。由于单次下发路由数量较大会导致下发过程易出现错误并带来下发速度较慢的问题,因此,在下发路由时需从本地内存中确定待下发至本地芯片的至少一个目标路由进行下发。从本地内存中确定待下发至本地芯片的至少一个目标路由有多种实现方式,图3示出了其中一种,下文会具体举例,这里暂不赘述。
步骤103,按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。
作为一个示例,所有目标路由都会按照DMA方式一次性的全部下发至本地芯片中。下发至本地芯片的路由可以存储在本地芯片的路由寄存器中。
至此,完成图1所示流程。
由以上技术方案可以看出,本申请中,待下发路由会先存储至本地内存中以等待下发,并在执行路由下发操作时,按照取DMA方式将从本地内存中确定出的至少一个目标路由携带在一条指令中下发至本地芯片。相比于逐条下发路由的方案,大幅减少了按照DMA方式下发路由的操作执行次数,即使在短时间内需要下发路由数量较大,也不会出现路由下发缓慢甚至无法进行路由下发的问题。
下面结合图2所示流程,对步骤101中如何确定本地内存中是否存在待下发至本地芯片的路由进行说明。如图2所示,该流程可以包括:
步骤101a,检查第一索引是否为用于指示无效的第一值;所述第一索引为本地内存中所有待下发路由对应的索引中的最小索引;若否,则转到步骤101b;若是,则转到步骤101c。
作为一个示例,CPU在向本地芯片下发路由时,会计算该路由的索引,并将该路由以及该路由的索引发送给硬件驱动,以由该硬件驱动根据路由的索引将路由存储至内存。
作为一个示例,硬件驱动在每接收到一个CPU发送的路由以及该路由的索引时,都会与当前的第一索引进行比较,以保证第一索引为本地内存中所有待下发路由对应的索引中的最小索引。举一个简单的例子,若当前第一索引为20,那么在接收到索引为18的路由时,会将第一索引更新为18。
作为一个示例,无效的第一值是指其并非是由路由计算得到的索引值,而是预先由用户设定的一个值,例如,其可以是XXX或是YYY等。在网络设备刚启动时或是内存中所有待下发路由已全部下发完毕时,第一索引会被设置为无效的第一值。
步骤101b,确定本地内存中存在待下发至本地芯片的路由。
作为一个示例,在检查出第一索引不是用于指示无效的第一值时,则表示本地内存中存在待下发至本地芯片的路由。
步骤101c,确定本地内存中不存在待下发至本地芯片的路由。
作为一个示例,在确定出本地内存中不存在待下发至本地芯片的路由时,则可停止执行其他操作,以等待确定本地内存中是否存在待下发至本地芯片的路由的操作被再次触发。
至此,完成图2所示流程。
下面结合图3所示流程,对步骤102中如何从本地内存中确定待下发至本地芯片的至少一个目标路由进行说明。如图3所示,该流程可以包括:
步骤102a,在已建立的路由位图中查找到与所述第一索引对应的第一bit位;
作为一个示例,已建立的位图中存在有多个bit位,每一bit位均对应一个存储地址,例如,1000H-1251H或是1000H-1521H等。在具体实施时,可以将每一bit位对应的存储地址设置为对应于存储512条路由的内存空间大小,以使单次路由下发数量较多且不会出现单次下发数量过大导致下发失败的问题出现。上述存储地址仅用于举例说明,并不作为对本申请的限制。
作为一个示例,在查找与第一索引对应的bit位时,可以先根据索引确定该索引对应的存储地址,之后再根据各bit位所对应的存储地址确定出该索引对应的存储地址与哪一bit位相匹配,进而确定出与所述第一索引对应的第一bit位。
步骤102b,检查第一bit位的当前值为用于指示待下发路由的第二值时,从本地内存中查找到与所述第一bit位匹配的存储地址;
作为一个示例,位图中每一bit位都具有两个值,其中一个是用于指示无待下发路由的第一值,以及用于指示待下发路由的第二值。在硬件驱动将待下发路由写入内存时,会根据写入的存储地址对位图中相应bit位的值进行更新。举一个简单的例子,若位图中某一bit位对应的存储地址为1000H-1251H,此时该存储地址内并未存储有任何待下发路由,则该bit位的值为第一值。那么,当硬件驱动在将一个待下发路由写入1010H时,则会将该bit位的值由第一值更新为第二值。在具体实施时,这里的第一值与第二值不一致即可,例如,第一值为0,第二值为1。本申请并不对第一值和第二值具体是什么数值进行限定。
步骤102c,确定所述存储地址记录的路由为待下发至本地芯片的目标路由。
作为一个示例,在确定出第一bit位对应的存储地址中存储了待下发路由后,则可将该存储地址中存储的路由确定为目标路由。
至此,完成图3所示流程。
虽然将目标路由携带在一条指令中下发至本地芯片,会减少按照DMA方式将路由下发至芯片的操作次数,但由于指令所携带的路由数量有限,且单次下发路由数量较大时也可能会带来一定的写入错误等问题。因此,本申请采用位图的方式将内存划分为多个内存片段,每一个内存片段的存储地址对应于一个bit位,进而在下发路由时每次最多会下发一个内存片段所能存储的多大路由数量,保证路由下发不易出现错误且不超出指令所能携带的数据大小。
本申请除以上描述的流程外,在接收到CPU发送的路由及该路由的索引后,还可能会对第一索引进行更新。下面结合图4所示流程,具体描述:
步骤104,获得待存储至内存中的待下发路由和该路由的索引;
作为一个示例,CPU在学习到路由后,根据该路由来计算得到该路由的索引为100。计算索引的算法可参考相关技术中计算索引的算法,本申请并不对计算索引的算法进行限定。
步骤105,检查第一索引是否为用于指示无效的第一值;若是,则转到步骤106;若否,则转到步骤107。
作为一个示例,本步骤与前述步骤101a相类似,可以参考前述对步骤101a的描述,这里不再赘述。
步骤106,将第一索引及第二索引均更新为该路由的索引。
作为一个示例,首先需要对第二索引进行说明。第二索引为本地内存中所有待下发路由对应的索引中的最大索引。举一个简单的例子,若第一索引为20,第二索引为80,则表示本地内存中所有待下发路由对应的索引中最小索引为20,最大索引为80。
作为一个示例,若检查出第一索引为第一值,则表示本地内存中不存在待下发路由,那么步骤104中接收到的路由则成为内存中唯一的待下发路由。因此,需要将第一索引与第二索引同时更新为该路由的索引。举一个简单的例子,当前的第一索引和第二索引均为无效值,那么在接收到索引为120的路由后,则可以将第一索引和第二索引均更新为120。
步骤107,检查该路由的索引是否小于第一索引;若是,则转到步骤108;若否,则转到步骤109。
步骤108,将第一索引更新为该路由的索引;
步骤109,检查该路由的索引是否大于第二索引;若是,则转到步骤110;若否,则转到步骤111。
步骤110,将第二索引更新为该路由的索引。
步骤111,不对第一索引和第二索引进行更新。
作为一个示例,若第一索引不是第一值,则表示内存中还存储有待下发路由,此时则需要判断该路由的索引与第一索引和第二索引的大小,根据判断结果来对第一索引或第二索引进行更新。下面以举例的方式,对上述内容进行描述。若当前第一索引为80,第一索引为130。那么,在路由的索引为70时,则需要将第一索引由80更新为70。在路由的索引为140时,则需要将第二索引由130更新为140。最后,在路由的索引为50时,则不对第一索引和第二索引进行更新。
需要说明的是,步骤107与步骤105之间并不存在执行上的先后顺序,可以按实际需求先执行步骤107或是步骤105,也可以同时执行步骤107和步骤105。
至此,完成图4所示流程。
本申请除以上描述的流程外,在按照DMA方式将所有目标路由携带在一条指令中下发至本地芯片后,还可以对第一索引和/或第二索引进行更新。下面结合图5所示流程,具体描述:
步骤112,计算第一索引与预设值的加和结果;所述预设值为所述位图中bit位对应存储地址所能存储的路由数量;
作为一个示例,由于每次下发路由时,都会对一个bit位对应的存储地址中存储的目标路由进行下发。因此,在更新第一索引时,也需要相应的在第一索引的基础上增加bit位对应存储地址所能存储的路由数量。举一个简单的例子,若bit位对应的存储地址能够存储512条路由,则预设值可以为512。基于此,若第一索引为60,则第一索引与预设值的加和结果为572。
作为一个示例,在本申请执行过程中,还会小概率的出现第一索引和第二索引同时对应于一个bit位的情况。在此情况下,由于该bit位对应的存储地址中存储的目标路由都已经进行了下发,此时本地内存中不再存储有待下发路由,那么则无需再将第一索引更新为其他有效的索引,而是可以直接将该第一索引和第二索引均更新为用于指示无效的第一值。基于此,在执行步骤108前,还可以对第一索引及第二索引是都对应于同一bit位进行判断,仅在否的情况下执行步骤112。
步骤113,检查所述加和结果是否大于第二索引;若是,则转到步骤115;若否,则转到步骤114。
作为一个示例,在第二索引为本地内存中所有待下发路由对应的索引中的最大索引,而第一索引为本地内存中所有待下发路由对应的索引中的最小索引的前提下,则需保证第一索引与预设值的加和结果小于或等于该第二索引,否则会出现第一索引大于第二索引的情况出现,使本方案无法继续执行。
步骤114,利用所述加和结果对所述第一索引进行更新。
作为一个示例,如果加和结果并不大于第二索引,则表示加和结果满足第一索引小于或等于第二索引的要求,进而将第一索引更新为加和结果。
步骤115,将第一索引值更新为第二索引值。
作为一个示例,若加和结果大于第二索引,则不能将第一索引值更新为加和结果,因为这样更新后会使更新后的第一索引大于第二索引,导致本申请流程无法正常执行。因此,这里在加和结果大于第二索引时,将第一索引值更新为第二索引值。
至此,完成图5所示流程。
实施例
下面以实施例的方式,对本申请的全部流程进行描述。
CPU在学习到路由后,根据该路由来计算得到该路由的索引为100。计算索引的算法可参考相关技术中计算索引的算法,本申请并不对计算索引的算法进行限定。
CPU将该待下发路由和该待下发路由对应的索引100发送给硬件驱动。
硬件驱动在接收到该待下发路由和该待下发路由对应的索引100后,首先会检查当前的第一索引120是否为用于指示无效的第一值XXX,在得到否的结果后,其会比较该待下发路由对应的索引100与第一索引120的大小。在得到该待下发路由对应的索引100小于第一索引120时,则会将第一索引更新为100。
作为另一个实施例,若该待下发路由的索引大于第二索引,则可以将第二索引更新为该待下发路由的索引。
作为另一个实施例,该待下发路由的索引大于第一索引且小于第一索引,则无需对第一索引和第二索引进行更新。
之后,硬件驱动会在位图中确定出与该索引对应的bit位。若该bit位的值已经为第二值1,则不对该第二值1进行改写;若该bit位的值为第一值0,则将该bit位的值由第一值0改写为第二值1。
最后,硬件驱动根据该待下发路由的索引100将路由写入内存。
作为另一个实施例,硬件驱动从检查当前的第一索引是否为用于指示无效的第一值开始,直至将待下发路由写入内存的过程,也可以在内存上设置自旋锁。通过设置自旋锁,能够避免网络设备中运行的其他程序在上述步骤执行的过程中对第一索引、第二索引、位图或是内存中的待下发路由进行修改。
下面开始描述如何将内存中的待下发路由下发至本地芯片。
硬件驱动周期性的被触发检查第一索引是否为用于指示无效的第一值的操作,在触发该操作后会检查出当前的第一索引为100,并非是第一值XXX。
作为另一个实施例,若检查出第一索引为用于指示无效的第一值,则不执行后续操作,以等待检查第一索引是否为用于指示无效的第一值的操作再次被触发。
之后,硬件驱动需要检查目前的等待次数100是否达到了预设次数100。若检查出等待次数100达到了预设次数100,则在已建立的路由位图中查找到与所述第一索引对应的第一bit位,检查该bit位的值1是否是第二值1。
作为另一个实施例,若检查出未达到预设次数,则在该等待次数上增加一次等待次数,并不再执行后续操作,以等待检查第一索引是否为用于指示无效的第一值的操作再次被触发。
在检查出该bit位的值1是第二值1的前提下,则按照DMA方式将该bit位对应存储地址中的所有待下发路由携带在一条指令中下发至本地芯片。
作为另一个实施例,若检查出该bit位的值1是第一值0,则对位图中编号大于该bit位的其他bit位进行检查,直至查找出当前值为第二值的bit位,并按照DMA方式将该bit位对应存储地址中的所有待下发路由携带在一条指令中下发至本地芯片。
硬件驱动在完成路由下发后,首先确定第一索引与第二索引是否对应于位图中的一个bit位。若第一索引与第二索引分别对应于位图中的两个bit位,则计算第一索引100与预设值30的加和结果130。
作为另一个实施例,若第一索引与第二索引对应于位图中的一个bit位,则直接将第一索引与第二索引均更新为第一值。
在计算得到加和结果130之后,比较加和结果130是否小于或等于第二索引160。在得到加和结果小于第二索引160的结果后,则将第一索引100更新为加和结果130,并结束本次路由下发过程,以等待检查第一索引是否为用于指示无效的第一值的操作再次被触发。
作为另一个实施例,若加和结果大于第二索引,则可将第一索引更新为第二索引。
作为另一个实施例,硬件驱动从检查当前的第一索引是否为用于指示无效的第一值开始,直至将待下发路由写入本地芯片的过程,也可以在内存上设置自旋锁。通过设置自旋锁,能够避免网络设备中运行的其他程序在上述步骤执行的过程中对第一索引、第二索引、位图或是内存中的待下发路由进行修改。
以上对实施例进行了描述。
与前述路由下发方法的实施例相对应,本申请还提供了路由下发装置的实施例。
本申请路由下发装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请路由下发装置所在网络设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,图6为本申请提供的装置结构图。该装置应用于网络设备,该装置包括:
路由确定单元610,用于确定本地内存中是否存在待下发至本地芯片的路由;
目标路由确定单元620,用于当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;
下发单元630,用于按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。
作为一个示例,所述路由确定单元620确定本地内存中是否存在待下发至本地芯片的路由包括:
检查第一索引是否为用于指示无效的第一值;所述第一索引为本地内存中所有待下发路由对应的索引中的最小索引;
若否,则确定本地内存中存在待下发至本地芯片的路由。
作为一个示例,所述目标路由确定单元620从本地内存中确定待下发至本地芯片的至少一个目标路由包括:
在已建立的路由位图中查找到与所述第一索引对应的第一bit位;
检查第一bit位的当前值为用于指示待下发路由的第二值时,从本地内存中查找到与所述第一bit位匹配的存储地址;
确定所述存储地址记录的路由为待下发至本地芯片的目标路由。
至此,完成对图6所示装置的描述。
作为一个示例,所述装置还包括:
获取单元(图中未示出),用于获得待存储至内存中的待下发路由和该路由的索引;
第一更新单元(图中未示出),用于检查第一索引是否为用于指示无效的第一值;若是,则将所述第一索引更新为该路由的索引。
作为一个示例,该装置还包括:
计算单元(图中未示出),用于在按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片之后,计算第一索引与预设值的加和结果;所述预设值为所述位图中bit位对应存储地址所能存储的路由数量;
第二更新单元(图中未示出),用于检查所述加和结果是否大于第二索引;所述第二索引为本地内存中所有待下发路由对应的索引中的最大索引;若否,则利用所述加和结果对所述第一索引进行更新。
参见图7,图7为本申请路由下发装置所在网络设备的一种硬件结构图,该硬件结构包括:处理器和存储器。
其中,所述存储器,用于存储机器可执行指令;
所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如图1所示的路由下发方法。
作为一个实施例,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
至此,完成图7所示设备的描述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种路由下发方法,其特征在于,该方法应用于网络设备,包括:
确定本地内存中是否存在待下发至本地芯片的路由;
当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;
按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。
2.根据权利要求1所述的方法,其特征在于,所述确定本地内存中是否存在待下发至本地芯片的路由包括:
检查第一索引是否为用于指示无效的第一值;所述第一索引为本地内存中所有待下发路由对应的索引中的最小索引;
若否,则确定本地内存中存在待下发至本地芯片的路由。
3.根据权利要求1所述的方法,其特征在于,所述从本地内存中确定待下发至本地芯片的至少一个目标路由包括:
在已建立的路由位图中查找到与所述第一索引对应的第一bit位;
检查第一bit位的当前值为用于指示待下发路由的第二值时,从本地内存中查找到与所述第一bit位匹配的存储地址;
确定所述存储地址记录的路由为待下发至本地芯片的目标路由。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获得待存储至内存中的待下发路由和该路由的索引;
检查第一索引是否为用于指示无效的第一值;
若是,则将所述第一索引更新为该路由的索引。
5.根据权利要求2所述的方法,其特征在于,在按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片之后,该方法进一步包括:
计算第一索引与预设值的加和结果;所述预设值为所述位图中bit位对应存储地址所能存储的索引数量;
检查所述加和结果是否大于第二索引;所述第二索引为本地内存中所有待下发路由对应的索引中的最大索引;
若否,则利用所述加和结果对所述第一索引进行更新。
6.一种路由下发装置,其特征在于,该装置应用于网络设备,包括:
路由确定单元,用于确定本地内存中是否存在待下发至本地芯片的路由;
目标路由确定单元,用于当确定本地内存中存在待下发至本地芯片的路由时,从本地内存中确定待下发至本地芯片的至少一个目标路由;
下发单元,用于按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片。
7.根据权利要求6所述的装置,其特征在于,所述路由确定单元确定本地内存中是否存在待下发至本地芯片的路由包括:
检查第一索引是否为用于指示无效的第一值;所述第一索引为本地内存中所有待下发路由对应的索引中的最小索引;
若否,则确定本地内存中存在待下发至本地芯片的路由。
8.根据权利要求6所述的装置,其特征在于,所述目标路由确定单元从本地内存中确定待下发至本地芯片的至少一个目标路由包括:
在已建立的路由位图中查找到与所述第一索引对应的第一bit位;
检查第一bit位的当前值为用于指示待下发路由的第二值时,从本地内存中查找到与所述第一bit位匹配的存储地址;
确定所述存储地址记录的路由为待下发至本地芯片的目标路由。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
获取单元,用于获得待存储至内存中的待下发路由和该路由的索引;
第一更新单元,用于检查第一索引是否为用于指示无效的第一值;若是,则将所述第一索引更新为该路由的索引。
10.根据权利要求7所述的装置,其特征在于,该装置还包括:
计算单元,用于在按照直接内存存取DMA方式将所有目标路由携带在一条指令中下发至本地芯片之后,计算第一索引与预设值的加和结果;所述预设值为所述位图中bit位对应存储地址所能存储的路由数量;
第二更新单元,用于检查所述加和结果是否大于第二索引;所述第二索引为本地内存中所有待下发路由对应的索引中的最大索引;若否,则利用所述加和结果对所述第一索引进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398919.XA CN111131051A (zh) | 2019-12-30 | 2019-12-30 | 路由下发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911398919.XA CN111131051A (zh) | 2019-12-30 | 2019-12-30 | 路由下发方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111131051A true CN111131051A (zh) | 2020-05-08 |
Family
ID=70505557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911398919.XA Pending CN111131051A (zh) | 2019-12-30 | 2019-12-30 | 路由下发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111131051A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315709A (zh) * | 2021-03-22 | 2021-08-27 | 阿里巴巴新加坡控股有限公司 | 地址缓存的创建方法、路由选址方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616099A (zh) * | 2009-08-03 | 2009-12-30 | 杭州华三通信技术有限公司 | 硬件转发表刷新方法和装置以及路由设备 |
CN105959220A (zh) * | 2016-06-28 | 2016-09-21 | 杭州迪普科技有限公司 | 路由表下发的方法及装置 |
CN106209626A (zh) * | 2016-07-26 | 2016-12-07 | 杭州华三通信技术有限公司 | 自适应下发路由方法以及装置 |
US20170149890A1 (en) * | 2015-11-20 | 2017-05-25 | Microsoft Technology Licensing, Llc | Low latency rdma-based distributed storage |
CN107547364A (zh) * | 2017-08-15 | 2018-01-05 | 新华三技术有限公司 | 路由下发方法、装置和网络设备 |
CN108259358A (zh) * | 2017-05-24 | 2018-07-06 | 新华三技术有限公司 | 路由发布方法和装置 |
-
2019
- 2019-12-30 CN CN201911398919.XA patent/CN111131051A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616099A (zh) * | 2009-08-03 | 2009-12-30 | 杭州华三通信技术有限公司 | 硬件转发表刷新方法和装置以及路由设备 |
US20170149890A1 (en) * | 2015-11-20 | 2017-05-25 | Microsoft Technology Licensing, Llc | Low latency rdma-based distributed storage |
CN105959220A (zh) * | 2016-06-28 | 2016-09-21 | 杭州迪普科技有限公司 | 路由表下发的方法及装置 |
CN106209626A (zh) * | 2016-07-26 | 2016-12-07 | 杭州华三通信技术有限公司 | 自适应下发路由方法以及装置 |
CN108259358A (zh) * | 2017-05-24 | 2018-07-06 | 新华三技术有限公司 | 路由发布方法和装置 |
CN107547364A (zh) * | 2017-08-15 | 2018-01-05 | 新华三技术有限公司 | 路由下发方法、装置和网络设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315709A (zh) * | 2021-03-22 | 2021-08-27 | 阿里巴巴新加坡控股有限公司 | 地址缓存的创建方法、路由选址方法和装置 |
CN113315709B (zh) * | 2021-03-22 | 2023-02-28 | 阿里巴巴新加坡控股有限公司 | 地址缓存的创建方法、路由选址方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681565B (zh) | 区块链数据并行处理方法、装置、设备和存储介质 | |
US10921994B2 (en) | Managing storage array configuration | |
JP4647021B2 (ja) | データ完全性検証メカニズム | |
JP2005524144A (ja) | データ完全性の検証機構に対する向上 | |
US9563491B2 (en) | High voltage failure recovery for emulated electrically erasable (EEE) memory system | |
CN110286853B (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
US20160239210A1 (en) | Copy-offload on a device stack | |
US9948520B2 (en) | Efficiently determining network topology | |
CN106648643A (zh) | 渠道包生成方法及装置、终端和服务器 | |
CN114327946A (zh) | 共享内存访问控制方法、装置、电子设备及自动驾驶车辆 | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN111208933A (zh) | 数据访问的方法、装置、设备和存储介质 | |
US10311033B2 (en) | Alleviation of index hot spots in data sharing environment with remote update and provisional keys | |
CN111131051A (zh) | 路由下发方法和装置 | |
US11194583B2 (en) | Speculative execution using a page-level tracked load order queue | |
US8689200B1 (en) | Method and system for optimizing an executable program by generating special operations for identical program entities | |
KR101676175B1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 | |
CN111371818B (zh) | 一种数据请求的验证方法、装置及设备 | |
CN107908500A (zh) | 一种坏块识别方法及装置 | |
CN114924923A (zh) | 一种硬盘写入点正确性验证方法、系统、设备及介质 | |
CN106575306B (zh) | 用于在非易失性存储器上存留数据以用于快速更新和瞬时恢复的方法及其设备 | |
CN107436918A (zh) | 数据库实现方法、装置和设备 | |
JP2003050747A (ja) | 不揮発性メモリのデータ書き換え方法 | |
CN103729260A (zh) | 数据管理/检查方法及相关内容寻址存储器系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |
|
RJ01 | Rejection of invention patent application after publication |