一对多镜像的配置方法、装置和电子设备制造方法及图纸

技术编号:39186333 阅读:12 留言:0更新日期:2023-10-27 08:33
本申请提供了一种一对多镜像的配置方法、装置和电子设备,其中,该方法包括:根据用户的配置信息创建链表的第N个链表节点,第N个链表节点具有第一数据域,第一数据域为第一镜像,第一镜像具有第一预设信息,且第N个链表节点位于第一组播组中,其中,N大于或等于1;链接新增链表节点至链表的表尾,新增链表节点具有第二数据域,第二数据域用于存储新增镜像,新增镜像具有第二预设信息;判断第一预设信息和第二预设信息是否相同,得到第一判断结果;在第一判断结果为是的情况下,将第二目的端口添加至第一组播组中;在第一判断结果为否的情况下,将第二目的端口添加至第二组播组中。将第二目的端口添加至第二组播组中。将第二目的端口添加至第二组播组中。

【技术实现步骤摘要】
一对多镜像的配置方法、装置和电子设备


[0001]本申请涉及通信
,具体而言,涉及一种一对多镜像的配置方法、一对多镜像的配置装置、计算机可读存储介质和电子设备。

技术介绍

[0002]端口镜像是交换机常用的功能,这里主要涉及的是一对一镜像(一个端口镜像到另一个端口),一对多镜像(一个端口镜像到多个端口)和多对一镜像(多个端口镜像到一个端口)。这个功能一般是靠交换芯片来实现的,然而各个厂家的交换芯片内部处理的流程一般是不同的。不过对于上面三种场景中的一对一镜像和多对一镜像,各种芯片的处理过程是相近的。而一对多镜像则不然,不同厂家的芯片其处理方式有所差异。比如对于某些芯片,端口一对多的实现是靠配置多个镜像文件(mirror entry)实现的。每一个mirror entry的源端口(sport)是同一个端口,目的端口(dport)为想要镜像出的多个端口中的一个;而另外一些芯片,同一个sport不能出现在多个mirror entry里,否则后面配置的mirror entry会覆盖掉前面配置的,导致只有最后配置的才能生效,后面这些芯片对于一对多镜像有特殊的处理:首先创建一个组播组,把镜像的目的端口dport放到这样一个组播组里面,然后把其他的镜像目的口也放到该组播组里,然后配置镜像的源端口sport和镜像的目的端口dport,目的组播组id,以及方向,这样使用一个mirror entry就可以实现一对多镜像。需要注意的是同一个端口可以加到不同的组播组里。
[0003]现有的配置一对多镜像的技术方案是按照配置多组一对一实现的,配置多个mirror entry,每一个mirror entry的镜像源端口sport是同一个端口,镜像目的端口dport为想要镜像出的多个端口中的一个。这样的方案对于通过组播组配置一对多镜像显然是不可行的,因为对于通过组播组配置一对多镜像,每一个mirror entry的镜像源端口sport在不同的mirror entry中只能出现一次,换句话说就是同一个端口只能作为一个mirror entry的镜像源端口sport,如果新的mirror entry的镜像源端口sport填了之前其它mirror entry填过的值,那么之前填过这个sport的mirror entry中的镜像源端口sport会被覆盖掉,所以这么配置之后,只能实现一对一,配置顺序在最后的mirror entry的生效,它的镜像目的端口dport作为镜像的唯一出口。
[0004]因此,亟需一种解决镜像端口配置一对多对于某些芯片不生效问题的配置方法。

技术实现思路

[0005]本申请的主要目的在于提供一种一对多镜像的配置方法、一对多镜像的配置装置、计算机可读存储介质和电子设备,以至少解决现有技术中镜像端口配置一对多对于某些芯片不生效的问题。
[0006]为了实现上述目的,根据本申请的一个方面,提供了一种一对多镜像的配置方法,包括:根据用户的配置信息创建链表的第N个链表节点,第N个链表节点具有第一数据域,第一数据域为第一镜像,第一镜像具有第一预设信息,第一预设信息包括第一源端口、第一目
的端口和第一方向,且第N个链表节点位于第一组播组中,其中,N大于或等于1;链接新增链表节点至链表的表尾,以更新链表的表尾为新增链表节点,新增链表节点具有第二数据域,第二数据域用于存储新增镜像,新增镜像具有第二预设信息,第二预设信息包括第二源端口、第二目的端口以及第二方向;判断第一预设信息和第二预设信息是否相同,得到第一判断结果;在第一判断结果为是的情况下,将第二目的端口添加至第一组播组中,以使新增链表节点具有第一组播组编号;在第一判断结果为否的情况下,将第二目的端口添加至第二组播组中,以使新增链表节点具有第二组播组编号,第一组播组编号和第二组播组编号不同。
[0007]在一个示例性实施例中,链表中具有多个组播组,多个组播组至少包括第一组播组和第二组播组,配置方法还包括:遍历链表,并从链表的N+1个链表节点中确定待删除链表节点,其中,待删除链表节点的数据域为待删除镜像,待删除镜像具有待删除目的端口;确定待删除链表节点的目标组播组,目标组播组为多个组播组中的其中一个组播组;从目标组播组中删除待删除链表节点,以删除待删除目的端口。
[0008]在一个示例性实施例中,从目标组播组中删除待删除链表节点的步骤之后,配置方法还包括:判断待删除目的端口是否为一对多镜像的目的端口,得到第二判断结果;在第二判断结果为是的情况下,再次遍历链表,以获取目标组播组中的至少一个目标链表节点的目标目的端口,并重新配置一对多镜像;在第二判断结果为否的情况下,删除具有目标组播组。
[0009]在一个示例性实施例中,再次遍历链表,以获取目标组播组中的至少一个目标链表节点的目标目的端口,并重新配置一对多镜像包括:再次遍历链表,并判断链表的N个链表节点中是否存在位于目标组播组中的目标链表节点,得到第三判断结果;在第三判断结果为是的情况下,获取目标链表节点的目标目的端口,并将目标目的端口作为新的镜像的目的端口,并重新配置一对多镜像;在第三判断结果为否的情况下,删除目标组播组。
[0010]在一个示例性实施例中,根据用户的配置信息创建链表的第N个链表节点,包括:创建第一组播组;添加第一目的端口至第一组播组,并获取第一目的端口对应的第一组播组的第一组播组编号;下发第一组播组和第一镜像至网络芯片,并构建链表的第一结构体,以将第N个链表节点链接至链表的表尾。
[0011]在一个示例性实施例中,在第一判断结果为是的情况下,将第二目的端口添加至第一组播组中,包括:在第一判断结果为是的情况下,确定第二目的端口为第一组播组的一个新增端口;将第二目的端口添加至第一组播组中。
[0012]在一个示例性实施例中,在判断结果为否的情况下,将第二目的端口添加至第二组播组中,包括:在判断结果为否的情况下,确定第二目的端口不是第一组播组中的目的端口;创建第二组播组;添加第二目的端口至第二组播组。
[0013]根据本申请的一个实施例,提供了一种一对多镜像的配置装置,第一创建模块,用于根据用户的配置信息创建链表的第N个链表节点,第N个链表节点具有第一数据域,第一数据域为第一镜像,第一镜像具有第一预设信息,第一预设信息包括第一源端口、第一目的端口和第一方向,且第N个链表节点位于第一组播组中,其中,N大于或等于1;更新模块,用于链接新增链表节点至链表的表尾,以更新链表的表尾为新增链表节点,新增链表节点具有第二数据域,第二数据域用于存储新增镜像,新增镜像具有第二预设信息,第二预设信息
包括第二源端口、第二目的端口以及第二方向;判断模块,用于判断第一预设信息和第二预设信息是否相同,得到第一判断结果;第一配置模块,用于在第一判断结果为是的情况下,将第二目的端口添加至第一组播组中,以使新增链表节点具有第一组播组编号;第二配置模块,用于在第一判断结果为否的情况下,将第二目的端口添加至第二组播组中,以使新增链表节点具有第二组播组编号,第一组播组编号和第二组播组编号不同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种一对多镜像的配置方法,其特征在于,包括:根据用户的配置信息创建链表的第N个链表节点,所述第N个链表节点具有第一数据域,所述第一数据域为第一镜像,所述第一镜像具有第一预设信息,所述第一预设信息包括第一源端口、第一目的端口和第一方向,且所述第N个链表节点位于第一组播组中,其中,N大于或等于1;链接新增链表节点至所述链表的表尾,以更新所述链表的表尾为所述新增链表节点,所述新增链表节点具有第二数据域,所述第二数据域用于存储新增镜像,所述新增镜像具有第二预设信息,所述第二预设信息包括第二源端口、第二目的端口以及第二方向;判断所述第一预设信息和所述第二预设信息是否相同,得到第一判断结果;在所述第一判断结果为是的情况下,将所述第二目的端口添加至所述第一组播组中,以使所述新增链表节点具有第一组播组编号;在所述第一判断结果为否的情况下,将所述第二目的端口添加至第二组播组中,以使所述新增链表节点具有第二组播组编号,所述第一组播组编号和所述第二组播组编号不同。2.根据权利要求1所述的配置方法,其特征在于,所述链表中具有多个组播组,多个所述组播组至少包括所述第一组播组和所述第二组播组,所述配置方法还包括:遍历所述链表,并从所述链表的N+1个所述链表节点中确定待删除链表节点,其中,所述待删除链表节点的数据域为待删除镜像,所述待删除镜像具有待删除目的端口;确定所述待删除链表节点的目标组播组,所述目标组播组为多个所述组播组中的其中一个组播组;从所述目标组播组中删除所述待删除链表节点,以删除所述待删除目的端口。3.根据权利要求2所述的配置方法,其特征在于,所述从所述目标组播组中删除所述待删除链表节点的步骤之后,所述配置方法还包括:判断所述待删除目的端口是否为一对多镜像的目的端口,得到第二判断结果;在所述第二判断结果为是的情况下,再次遍历所述链表,以获取所述目标组播组中的至少一个目标链表节点的目标目的端口,并重新配置所述一对多镜像;在所述第二判断结果为否的情况下,删除具有所述目标组播组。4.根据权利要求3所述的配置方法,其特征在于,所述再次遍历所述链表,以获取所述目标组播组中的至少一个目标链表节点的目标目的端口,并重新配置所述一对多镜像包括:再次遍历所述链表,并判断所述链表的N个所述链表节点中是否存在位于所述目标组播组中的所述目标链表节点,得到第三判断结果;在所述第三判断结果为是的情况下,获取所述目标链表节点的目标目的端口,并将所述目标目的端口作为新的镜像的目的端口,并重新配置所述一对多镜像;在所述第三判断结果为否的情况下,删除所述目标组播组。5.根据权利要求1至4中任一项所述的配...

【专利技术属性】
技术研发人员:郭世豪陈翔李友
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1