发明内容
有鉴于此,本发明的目的在于提供一种路由表项操作方法、装置、设备及介质,以改善上述问题。
本发明实施例提供了一种路由表项操作方法,其包括:
接收路由表项数据及其操作类型;
查询路由表项操作单元存储表,以判断是否存在与所述路由表项数据对应的路由表项操作单元;其中,每个路由表项操作单元包括索引值、路由表项信息单元指针以及操作类型
当判断存在所述路由表项操作单元时,根据所述路由表项信息单元指针获取对应的路由表项信息单元,并更新路由表项信息单元;其中,所述路由表项信息单元存储了路由表项的预定信息;
判断所述路由表项的操作类型是否发生变化;
当判断所述路由表项的操作类型发生变化时,更新路由表项操作单元的操作类型,同时将路由表项信息单元移动到与其操作类型对应的链表中。
优选地,还包括:
当判断不存在所述路由表项操作单元时,在资源池中申请路由表项信息单元,将所述路由表项信息单元移动到与其操作类型对应的链表中;
根据路由表项信息单元、路由表项数据及其操作类型构造路由表项操作单元。
优选地,所述操作类型包括ADD、SET和DEL;所述链表包括保存操作类型为ADD的路由表项的ADD链表,保存操作类型为SET的路由表项的SET链表,保存操作类型为DEL的路由表项的DEL链表。
优选地,路由表项的预定信息包括IP地址类型、IP地址、IP地址掩码、路由下一跳转发路径,路由转发行为、统计计数器、Pre指针和Next指针,Pre指针和Next指针分别指向链表的前一个路由表项信息单元和后一个路由表项信息单元。
本发明实施例还提供了一种路由表项操作装置,其包括:
接收单元,用于接收路由表项数据及其操作类型;
查询单元,用于查询路由表项操作单元存储表,以判断是否存在与所述路由表项数据对应的路由表项操作单元;其中,每个路由表项操作单元包括索引值、路由表项信息单元指针以及操作类型
更新单元,用于当判断存在所述路由表项操作单元时,根据所述路由表项信息单元指针获取对应的路由表项信息单元,并更新路由表项信息单元;其中,所述路由表项信息单元存储了路由表项的预定信息;
判断单元,用于判断所述路由表项的操作类型是否发生变化;
链表移动单元,用于当判断所述路由表项的操作类型发生变化时,更新路由表项操作单元的操作类型,同时将路由表项信息单元移动到与其操作类型对应的链表中。
优选地,判断单元还用于:
当判断不存在所述路由表项操作单元时,在资源池中申请路由表项信息单元,将所述路由表项信息单元移动到与其操作类型对应的链表中;
根据路由表项信息单元、路由表项数据及其操作类型构造路由表项操作单元。
优选地,所述操作类型包括ADD、SET和DEL;所述链表包括保存操作类型为ADD的路由表项的ADD链表,保存操作类型为SET的路由表项的SET链表,保存操作类型为DEL的路由表项的DEL链表。
优选地,路由表项的预定信息包括IP地址类型、IP地址、IP地址掩码、路由下一跳转发路径,路由转发行为、统计计数器、Pre指针和Next指针,Pre指针和Next指针分别指向链表的前一个路由表项信息单元和后一个路由表项信息单元。
本发明实施例还提供了一种路由表项操作设备,其包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的路由表项操作方法。
本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上述的路由表项操作方法。
综上所述,本实施例具有如下优点:
1、将路由表项信息单元池化,在路由表项操作数据的添加和删除时,只需要从资源池申请单元和释放单元,不涉及实际的内存申请和释放,如此可有效提高路由操作的效率。
2、通过预先维护与各个操作类型对应的链表,省去了耗时的遍历过程,有效提高了路由下发的效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
下面结合附图与具体实施方式对本发明作进一步详细描述:
请参阅图2,本发明第一实施例提供了一种路由表项操作方法,其可由路由表项操作设备(以下简称操作设备)来执行,特别的,由所述操作设备内一个或者多个处理器来执行,以实现如下步骤:
S101,接收路由表项数据及其操作类型。
其中,一般的,路由表项数据包括路由表项的信息,例如IP地址类型、IP地址、IP地址掩码、路由下一跳转发路径,路由转发行为、统计计数器等。所述操作类型包括ADD(添加)、SET(修改)和DEL(删除)。
S102,查询路由表项操作单元存储表,以判断是否存在与所述路由表项数据对应的路由表项操作单元;其中,每个路由表项操作单元包括索引值、路由表项信息单元指针以及操作类型。
在本实施例中,路由表项操作单元存储表用于存储路由表项操作单元,其采用的存储结构可以为多种,如哈希表、AVL树、环形队列等。
如表1所示,在本实施例中,每个路由表项操作单元里面包括三个部分的数据——索引值、路由表项信息单元指针、操作类型。
表1
S103,当判断存在所述路由表项操作单元时,根据所述路由表项信息单元指针获取对应的路由表项信息单元,并更新路由表项信息单元;其中,所述路由表项信息单元存储了路由表项的预定信息。
在本实施例中,当根据索引值判断存在对应的路由表项操作单元时,首先根据路由表项信息单元指针获取对应的路由表项信息单元,并根据路由表项数据及其操作类型更新路由表项信息单元。
其中,如表2所示,所述路由表项信息单元存储了路由表项的预定信息,特别的,存储了路由表项路由表项的全部信息,例如包括IP地址类型、IP地址、IP地址掩码、路由下一跳转发路径,路由转发行为、统计计数器、Pre指针和Next指针,Pre指针和Next指针分别指向链表的前一个路由表项信息单元和后一个路由表项信息单元。
表2
在本实施例中,通过将路由表项信息单元资源池化,在路由表项操作数据的添加和删除时,只需要从资源池申请路由表项信息单元和释放路由表项信息单元,不涉及实际的内存申请和释放,如此可有效提高路由操作的效率。
S104,判断所述路由表项的操作类型是否发生变化。
S105,当判断所述路由表项的操作类型发生变化时,更新路由表项操作单元的操作类型,同时将路由表项信息单元移动到与其操作类型对应的链表中。
在本实施例中,根据不同的操作类型,所述操作设备设置了对应的链表,例如,所述链表包括保存操作类型为ADD的路由表项的ADD链表,保存操作类型为SET的路由表项的SET链表,保存操作类型为DEL的路由表项的DEL链表。
在本实施例中,当判断路由表项的操作类型与原先的操作类型不一样时,则需要更新路由表项操作单元的操作类型,同时将路由表项信息单元移动到与其操作类型对应的链表中。
例如,路由表项信息单元其原先的操作类型为ADD,则其位于ADD链表中,若更新后的操作类型为SET,则需要将其从ADD链表移动到SET链表中。其中,链表的新成员可以放在链表的尾部,也可以将链表的新成员固定放在链表的头部,本发明不做具体限定。
综上所述,本实施例具有如下优点:
1、将路由表项信息单元池化,在路由表项操作数据的添加和删除时,只需要从资源池申请单元和释放单元,不涉及实际的内存申请和释放,如此可有效提高路由操作的效率。
2、通过预先维护与各个操作类型对应的链表,省去了耗时的遍历过程,有效提高了路由下发的效率。
请参阅3,本发明第二实施例还提供了一种路由表项操作装置,其包括:
接收单元210,用于接收路由表项数据及其操作类型;
查询单元220,用于查询路由表项操作单元存储表,以判断是否存在与所述路由表项数据对应的路由表项操作单元;其中,每个路由表项操作单元包括索引值、路由表项信息单元指针以及操作类型
更新单元230,用于当判断存在所述路由表项操作单元时,根据所述路由表项信息单元指针获取对应的路由表项信息单元,并更新路由表项信息单元;其中,所述路由表项信息单元存储了路由表项的预定信息;
判断单元240,用于判断所述路由表项的操作类型是否发生变化;
链表移动单元250,用于当判断所述路由表项的操作类型发生变化时,更新路由表项操作单元的操作类型,同时将路由表项信息单元移动到与其操作类型对应的链表中。
优选地,判断单元240还用于:
当判断不存在所述路由表项操作单元时,在资源池中申请路由表项信息单元,将所述路由表项信息单元移动到与其操作类型对应的链表中;
根据路由表项信息单元、路由表项数据及其操作类型构造路由表项操作单元。
优选地,所述操作类型包括ADD、SET和DEL;所述链表包括保存操作类型为ADD的路由表项的ADD链表,保存操作类型为SET的路由表项的SET链表,保存操作类型为DEL的路由表项的DEL链表。
优选地,路由表项的预定信息包括IP地址类型、IP地址、IP地址掩码、路由下一跳转发路径,路由转发行为、统计计数器、Pre指针和Next指针,Pre指针和Next指针分别指向链表的前一个路由表项信息单元和后一个路由表项信息单元。
本发明实施例还提供了一种路由表项操作设备,其包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的路由表项操作方法。
本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上述的路由表项操作方法。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AcCE节点ss Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。