CN103259718B - 一种流表转换方法和装置 - Google Patents

一种流表转换方法和装置 Download PDF

Info

Publication number
CN103259718B
CN103259718B CN201310135991.XA CN201310135991A CN103259718B CN 103259718 B CN103259718 B CN 103259718B CN 201310135991 A CN201310135991 A CN 201310135991A CN 103259718 B CN103259718 B CN 103259718B
Authority
CN
China
Prior art keywords
stream
list item
matching domain
traveled
stream list
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.)
Active
Application number
CN201310135991.XA
Other languages
English (en)
Other versions
CN103259718A (zh
Inventor
丁万夫
林程勇
谢高岗
关洪涛
黄昆
潘恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Luo Sanjie
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310135991.XA priority Critical patent/CN103259718B/zh
Publication of CN103259718A publication Critical patent/CN103259718A/zh
Application granted granted Critical
Publication of CN103259718B publication Critical patent/CN103259718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的实施例提供一种流表转换方法和装置,涉及网络技术领域,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。该方法具体包括:在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表;其中,所述单级流表是单表多域的;根据硬件所实现的多级流表将所述单级流表拆分成对应的硬件形式的多级流表。本发明应用于流表转换中。

Description

一种流表转换方法和装置
技术领域
本发明涉及网络技术领域,尤其涉及一种流表转换方法和装置。
背景技术
随着网络设备新技术的不断发展,网络设备已经开始向数据转发和路由控制分离的架构转变。其中,OpenFlow便是一个典型的控制和转发相分离的网络设备架构,并已经引起了广泛的关注。从OpenFlow1.1版本之后提出了多级流表流水级的概念,一条完整的匹配流根据其匹配域的类型被划分到不同的OpenFlow流表表项中并彼此之间通过metadata相关联。而每次流表查找后得到的跳转指令执行会触发另一个流表的查找,直到没有跳转指令为止。而在OpenFlow1.2版本中,又提出了用类型长度值(Type Length Value,简称TLV)格式来表示流表匹配域,使得每个流表的匹配域都是不固定的。
但是,多级流表结构的复杂和灵活很难在硬件中很难实现。这样,软件到硬件实现过程中控制器需要适应硬件的下发规则,增加了控制器的负担和控制器管理开销。
发明内容
本发明的实施例提供一种流表转换方法和装置,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种流表转换方法,包括:
在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表;其中,所述单级流表是单表多域的;
根据硬件所实现的多级流表将所述单级流表拆分成对应的硬件形式的多级流表。
在第一种可能的实现方式中,结合第一方面,所述在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表,包括:
获取所述软件形式的多级流表中的所有的完整匹配流;
从所述所有的完整匹配流中选取待处理流;其中,所述待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流;
将所述待处理流等价转换成所述单级流表。
在第二种可能的实现方式中,结合第一种可能的实现方式,利用N叉数表示所述软件形式的多级流表的流表项的关系,所述获取所述软形式的多级流表中的所有的完整匹配流,包括:
生成所述N叉数的根节点;其中,所述根节点为所述软件形式的多级流表的第一个流表的一个流表项;
生成所述根节点的子节点;其中,所述子节点为所述第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;所述子节点与所述流表项具有一一对应的关系;
采用递归算法对所述根节点的所有子节点进行操作,建立所述N叉数;其中,所述N为一个正整数;
如果任一流表项含有跳转指令操作,根据所述跳转操作指令跳转到对应的流表中,未匹配到与所述任一流表项相同的匹配域,则删除所述任一流表项所代表的节点,得到更新后的二叉数;
遍历所述更新后的N叉数,得到所述更新后的N叉数的所有叶子节点;
采用递归算法查找所述所有叶子节点的父节点直到根节点,获得所述所有的完整匹配流。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述从所述所有的完整匹配流中选取待处理流,包括:
判断所述N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同;
如果存在某一节点对应的流表项的匹配域与所述预先下发的匹配域相同,则所述某一节点所在的完整匹配流为待处理流。
在第四种可能的实现方式中,结合第三种可能的实现方式,所述将所述待处理流等价转换成所述单级流表,包括:
构造一个单表多域的流表项;其中,所述流表项中包含匹配域和匹配域匹配成功后所要执行的策略;
遍历所述待处理流,将所述待处理流的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中;其中,所述待处理流的每个策略按顺序依次填充到所述单表多域的流表项的策略列表中。
在第五种可能的实现方式中,结合第四种可能的实现方式,
所述待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中;
如果某个流表项中的操作是设置某个匹配域时,而所述流表项之后有匹配所述匹配域的操作,则所述匹配域不能添加到所述流表项中。
在第六种可能的实现方式中,结合第一方面,所述根据硬件所实现的多级流表将所述单级流表拆分成对应的硬件形式的多级流表,包括:
构造所述硬件对应的硬件形式的多级流表,并确定所述硬件形式的多级流表中流表的数目和每个所述流表的匹配域类型;
为每个所述流表创建一个新流表项;
遍历所述单级流表中的每个所述完整匹配流的所有匹配域;
判断所述单级流表中是否有未遍历的匹配域;
若有未遍历的匹配域,则在所述硬件形式的多级流表中查找与每个所述未遍历的匹配域类型对应的流表;
根据所述未遍历的匹配域类型对应的流表获取所述未遍历的匹配域对应的流表项;
将每个所述未遍历的匹配域类型和匹配域的值插入所述未遍历的匹配域对应的新流表项中,并执行所述遍历所述单级流表中的每个所述完整匹配流的所有匹配域。
在第七种可能的实现方式中,结合第六种可能的实现方式,所述方法还包括:
若没有未遍历的匹配域,则遍历所述新流表项;
判断所述新流表项中是否有未遍历的新流表项;
若所述新流表项中有未遍历的新流表项,则查找所述未遍历的新流表项的匹配域;
若所述未遍历的新流表项没有匹配域,则删除所述未遍历的新流表项,并执行所述遍历所述新流表项。
在第八种可能的实现方式中,结合第七种可能的实现方式,所述方法还包括:
若所述未遍历的新流表项含有匹配域,则在当前所述未遍历的新流表项中填充与所述完整匹配流中的匹配域类型相同的匹配域;
将所述填充后的新流表项插入对应的硬件形式的多级流表中,并执所述遍历所述新流表项。
在第九种可能的实现方式中,结合第六种至第八种间任一可能的实现方式,
所述单级流表中的策略列表填充到所述硬件形式的多级流表中最后一个新流表项中。
在第十种可能的实现方式中,结合第一方面或上述任一可能的实现方式,
所述OpenFlow中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
第二方面,提供一种流表转换装置,包括:
转换单元,用于在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表;其中,所述单级流表是单表多域的;
拆分单元,用于根据硬件所实现的多级流表将所述单级流表拆分成对应的硬件形式的多级流表。
在第一种可能的实现方式中,结合第二方面,所述转换单元包括:
获取子单元,用于获取所述软件形式的多级流表中的所有的完整匹配流;
选取子单元,用于从所述所有的完整匹配流中选取待处理流;其中,所述待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流;
转换子单元,用于将所述待处理流等价转换成所述单级流表。
在第二种可能的实现方式中,结合第一种可能的实现方式,利用N叉数表示所述软件形式的多级流表的流表项的关系,所述获取子单元包括:
生成模块,用于生成所述N叉数的根节点;其中,所述根节点为所述软件形式的多级流表的第一个流表的一个流表项;
所述生成模块,还用于生成所述根节点的子节点;其中,所述子节点为所述第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;所述子节点与所述流表项具有一一对应的关系;
处理模块,用于采用递归算法对所述根节点的所有子节点进行操作,建立所述N叉数;其中,所述N为一个正整数;
删除模块,用于如果任一流表项含有跳转指令操作,根据所述跳转操作指令跳转到对应的流表中,未匹配到与所述任一流表项相同的匹配域,则删除所述任一流表项所代表的节点,得到更新后的二叉数;
所述处理模块,还用于遍历所述更新后的N叉数,得到所述更新后的N叉数的所有叶子节点;
所述处理模块,还用于采用递归算法查找所述所有叶子节点的父节点直到根节点,获得所述所有的完整匹配流。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述选取子单元,具体用于:
判断所述N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同;
如果存在某一节点对应的流表项的匹配域与所述预先下发的匹配域相同,则所述某一节点所在的完整匹配流为待处理流。
在第四种可能的实现方式中,结合第三种可能的实现方式,所述转换子单元包括:
构造模块,用于构造一个单表多域的流表项;其中,所述流表项中包含匹配域和匹配域匹配成功后所要执行的策略;
填充模块,用于遍历所述待处理流,将所述待处理流的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中;其中,所述待处理流的每个策略按顺序依次填充到所述单表多域的流表项的策略列表中。
在第五种可能的实现方式中,结合第四种可能的实现方式,
所述待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中;
如果某个流表项中的操作是设置某个匹配域时,而所述流表项之后有匹配所述匹配域的操作,则所述匹配域不能添加到所述流表项中。
在第六种可能的实现方式中,结合第二方面,所述拆分单元包括:
构造子单元,用于构造所述硬件形式的多级流表,并确定所述硬件形式的多级流表中流表的数目和每个所述流表的匹配域类型;
处理子单元,用于为每个所述流表创建一个新流表项;
所述处理子单元,还用于遍历所述单级流表中的每个所述完整匹配流的所有匹配域;
判断子单元,用于判断所述单级流表中是否有未遍历的匹配域;
所述处理子单元,还用于若有未遍历的匹配域,则在所述硬件形式的多级流表中查找与每个所述未遍历的匹配域类型对应的流表;
所述处理子单元,还用于根据所述未遍历的匹配域类型对应的流表获取所述未遍历的匹配域对应的流表项;
所述处理子单元,还用于将每个所述未遍历的匹配域类型和匹配域的值插入所述未遍历的匹配域对应的新流表项中,并执行所述遍历所述单级流表中的每个所述完整匹配流的所有匹配域。
在第七种可能的实现方式中,结合第六种可能的实现方式,
所述处理子单元,还用于若没有未遍历的匹配域,则遍历所述新流表项;
所述判断子单元,还用于判断所述新流表项中是否有未遍历的新流表项;
所述处理子单元,还用于若所述新流表项中有未遍历的新流表项,则查找所述未遍历的新流表项的匹配域;
所述处理子单元,还用于若所述未遍历的新流表项没有匹配域,则删除所述未遍历的新流表项,并执行所述遍历所述新流表项。
在第八种可能的实现方式中,结合第七种可能的实现方式,所述处理子单元还用于:
若所述未遍历的新流表项含有匹配域,则在当前所述未遍历的新流表项中填充与所述完整匹配流中的匹配域类型相同的匹配域;
将所述填充后的新流表项插入对应的硬件形式的多级流表中,并执行所述遍历所述新流表项。
在第九种可能的实现方式中,结合第六种至第八种间任一可能的实现方式,
所述单级流表中的策略列表填充到所述硬件形式的多级流表中最后一个新流表项中。
在第十种可能的实现方式中,结合第二方面或上述任一可能的实现方式,
所述OpenFlow中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
本发明的实施例提供的流表转换方法和装置,通过将软件形式的多级流表转换成硬件形式的多级流表,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种流表转换方法的流程示意图;
图2为本发明的另一实施例提供的一种流表转换方法的流程示意图;
图3为本发明的实施例提供的一种流表转换装置的结构示意图;
图4为本发明的实施例提供的另一种流表转换装置的结构示意图;
图5为本发明的实施例提供的又一种流表转换装置的结构示意图;
图6为本发明的另一实施例提供的一种流表转换装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种流表转换方法,参照图1所示,包括:
101、在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表。其中,单级流表是单表多域的。
具体的,本发明中的等价转换可以为匹配域匹配顺序上的等价,转换时执行动作上的等价。当然,并不限于此,在不同的应用场景可以根据实际的需求来定义等价的含义。
102、根据硬件所实现的多级流表将单级流表拆分成对应的硬件形式的多级流表。
其中,在流表的转换过程中同一个流表的各个流表项之间通过链表的形式来进行关联。
本发明的实施例提供的流表转换方法,通过将软件形式的多级流表转换成硬件形式的多级流表,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。
本发明的实施例提供一种流表转换方法,参照图2所示,包括:
201、获取软件形式的多级流表中的所有的完整匹配流。
进一步,本发明的实施例中采用N叉数表示软件形式的多级流表的流表项的关系,步骤201具体包括以下步骤:
201a、生成该N叉数的根节点。其中,根节点为软件形式的多级流表的第一个流表的一个流表项。
201b、生成根节点的子节点。其中,子节点为第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;子节点与流表项具有一一对应的关系。
201c、采用递归算法对根节点的所有子节点进行操作,建立N叉数。其中,N为一个正整数。
201d、如果任一流表项含有跳转指令操作,根据跳转操作指令跳转到对应的流表中,未匹配到与该任一流表项相同的匹配域,则删除该任一流表项所代表的节点,得到更新后的二叉数。
其中,本发明的实施例中需要得到的是完整的匹配流,如果当前流表项中含有例如goto的跳转指令操作,而跳转到指定的流表中没有匹配到与该当前流表项相同的匹配域,则说明该当前流表项属于不完整的流,因此需要对当前流表项所代表的节点进行删除的操作。从而,保证得到完整的匹配流。
201e、遍历更新后的N叉数,得到更新后的N叉数的所有叶子节点。
201f、采用递归算法查找所有叶子节点的父节点直到根节点,获得所有的完整匹配流。
202、从所有的完整匹配流中选取待处理流。
其中,待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流。
对于待处理流的判断需要根据待处理流的定义来解决,本发明中定义的待处理流的概念主要是由于OpenFlow多级流表存在动态的改变,为了防止转换成单级流表时出现流表膨胀冗余的现象,即出现再次转换之前已经转换过的完整的流表的现象,从而提出待处理流的概念。在本实施例中根据对待处理流的定义,在查找待处理流时只需要找到将要添加或者删除的表项是否在当前需要检验是否为待处理流的完整匹配流之中,即与完整匹配流中的每个流表项进行比较直至匹配到相同流表项或者匹配完所有的流表项为止。对于,流表项与流表项之间的比较只需要对匹配域的类型和阈值进行比较即可。
进一步,步骤202具体包括以下步骤:
202a、判断N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同。
202b、如果存在某一节点对应的流表项的匹配域与预先下发的匹配域相同,则某一节点所在的完整匹配流为待处理流。
203、将待处理流等价转换成单级流表。
进一步,步骤203具体包括:
203a、构造一个单表多域的流表项;其中,流表项中包含匹配域和匹配域匹配成功后所要执行的策略。
203b、遍历待处理流,将待处理流的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中。其中,待处理流的每个策略按顺序依次填充到单表多域的流表项的策略列表中。
其中,待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中。
在本发明的实施例中跳转命令具体可以是OpenFlow_GOTO_TABLE,写入命令具体可以是OpenFlow_WRITE_METADATA。当然,跳转命令和写入命令并不限于此,在实际的应用场景中可以根据具体的需求来定义。
如果某个流表项中的操作是设置某个匹配域时,而流表项之后有匹配该匹配域的操作,则匹配域不能添加到流表项中。
在本发明的实施例中设置操作的命令具体可以是属于OpenFlow_APPLAY_ACTION_中的OpenFlow_SET_FIELD。当然,设置操作的命令并不限于此,在实际的应用场景中可以根据具体的需求来定义。
其中,在本实施例中等价转换具体是对于OpenFlow_PUSH/POP_VLAN、OpenFlow_PUSH/POP_MPLS类型的操作。具体为,若指令为POP VLAN/MPLS且之前没有PUSHVLAN/MPLS的操作,而其后有紧跟着对VLAN/MPLS域的匹配,此时这个完整的新流无法进行等价转换。对于无法进行等价转换的流,需要上传到相应的软件进行处理。如有PUSH VLAN/MPLS的操作,且之后有对VLAN/MPLS域进行匹配操作,但进行匹配域操作之前没有对应的POP操作,则该匹配域不需要添加到单表多域的流表项中。因此,只有先进行PUSH操作之后,再进行相应的与PUSH操作相同数量的POP操作,才可以进行等价的转换。
204、构造硬件对应的硬件形式的多级流表,并确定硬件形式的多级流表中流表的数目和每个流表的匹配域类型。
205、为每个硬件形式的多级流表创建一个新流表项。
其中,新流表项之间通过跳转操作goto与OpenFlow中定义的metadata进行关联。goto操作的构造符合跳转table id递增的原则。但是,metadata的构造可以是通过一条完整流的流表号和流表项号来组成。
206、遍历单级流表中的每个完整匹配流的所有匹配域。
207、判断单级流表中是否有未遍历的匹配域。
若单级流表中有未遍历的匹配域,则执行步骤208~210;若单级流表中没有未遍历的匹配域,则执行步骤211~217;
208、在硬件形式的多级流表中查找与每个未遍历的匹配域类型对应的流表。
209、根据未遍历的匹配域类型对应的流表获取未遍历的匹配域对应的流表项。
210、将每个未遍历的匹配域类型和匹配域的值插入未遍历的匹配域对应的新流表项中,并执行遍历单级流表中的每个完整匹配流的所有匹配域。
211、遍历新流表项。
212、判断新流表项中是否有未遍历的新流表项。
213、若新流表项中有未遍历的新流表项,则查找未遍历的新流表项的匹配域。
若新流表项中没有未遍历的新流表项,则结束整个流程的实施。
214、判断未遍历的新流表项是否含有匹配域。
若未遍历的新流表项没有匹配域,则执行步骤215;若未遍历的新流表项含有匹配域,则执行步骤216~217;
215、删除未遍历的新流表项,并返回步骤211。
216、在当前未遍历的新流表项中填充与完整匹配流中的匹配域类型相同的匹配域。
217、将填充后的新流表项插入对应的硬件形式的多级流表中,并返回步骤211。
其中,单级流表中的策略列表填充到硬件形式的多级流表中最后一个新流表项中。
其中,本发明中的硬件形式的多级流表中的流表项的匹配域采用链表的形式来构建,当然并不限于此。
具体的,OpenFlow中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
其中,在整个流表的转换过程中会出现前一个数据包匹配第一个流表的多个流表项,但通过第一个匹配的流表项进行跳转并匹配后续域可能匹配失败,但通过第一个流表的与数据包匹配的除第一个流表项外的任意流表项进行跳转继续并匹配后续域可能匹配成功。但由于匹配时只能按照先后顺序进行,因此数据包只能匹配第一个流表的第一个匹配成功的流表项。此时,会出现数据包匹配失败。此时,则需要将数据包上传到软件层进行处理。
本发明的实施例提供的流表转换方法,通过将软件形式的多级流表转换成硬件形式的多级流表,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。进而,通过对流表的整合和规划,可以更好地利用每个流表的匹配域资源,优化流表的结构。
本发明的实施例提供一种流表转换装置3,参照图3所示,包括转换单元31和拆分单元32,其中:
转换单元31,用于在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表。其中,单级流表是单表多域的。
拆分单元32,用于根据硬件所实现的多级流表将单级流表拆分成对应的硬件形式的多级流表。
本发明的实施例提供的流表转换装置,通过将软件形式的多级流表转换成硬件形式的多级流表,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。
进一步,参照图4所示,转换单元包括:获取子单元311、选取子单元312和转换子单元313,其中:
获取子单元311,用于获取软件形式的多级流表中的所有的完整匹配流。
选取子单元312,用于从所有的完整匹配流中选取待处理流。
其中,待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流。
转换子单元313,用于将待处理流等价转换成单级流表。
进一步,利用N叉数表示软件形式的多级流表的流表项的关系,获取子单元311包括:生成模块、处理模块和删除模块,其中:
生成模块,用于生成N叉数的根节点。
其中,根节点为软件形式的多级流表的第一个流表的一个流表项。
生成模块,还用于生成根节点的子节点。
其中,子节点为第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;子节点与流表项具有一一对应的关系。
处理模块,用于采用递归算法对根节点的所有子节点进行操作,建立N叉数。其中,N为一个正整数。
删除模块,用于如果任一流表项含有跳转指令操作,根据跳转操作指令跳转到对应的流表中,未匹配到与任一流表项相同的匹配域,则删除任一流表项所代表的节点,得到更新后的二叉数。
处理模块,还用于遍历更新后的N叉数,得到更新后的N叉数的所有叶子节点。
处理模块,还用于采用递归算法查找所有叶子节点的父节点直到根节点,获得所有的完整匹配流。
进一步,选取子单元312,具体用于:
判断N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同。
如果存在某一节点对应的流表项的匹配域与预先下发的匹配域相同,则某一节点所在的完整匹配流为待处理流。
进一步,转换子单元313包括:构造模块和填充模块,其中:
构造模块,用于构造一个单表多域的流表项。
其中,该流表项中包含匹配域和匹配域匹配成功后所要执行的策略。
填充模块,用于遍历待处理流,将待处理流中的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中。
其中,待处理流的每个策略按顺序依次填充到单表多域的流表项的策略列表中。
具体的,待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中。
如果某个流表项中的操作是设置某个匹配域时,而流表项之后有匹配该匹配域的操作,则该匹配域不能添加到流表项中。
进一步,参照图5所示,拆分单元32包括:构造子单元321、处理子单元322和判断子单元323,其中:
构造子单元321,用于构造硬件形式多级流表,并确定硬件形式的多级流表中流表的数目和每个流表的匹配域类型。
处理子单元322,用于为每个流表创建一个新流表项。
处理子单元322,还用于遍历单级流表中的每个完整匹配流的所有匹配域。
判断子单元323,用于判断单级流表中是否有未遍历的匹配域。
处理子单元322,还用于若有未遍历的匹配域,则在硬件形式的多级流表中查找与每个未遍历的匹配域类型对应的流表。
处理子单元322,还用于根据未遍历的匹配域类型对应的流表获取未遍历的匹配域对应的流表项。
处理子单元322,还用于将每个未遍历的匹配域类型和匹配域的值插入未遍历的匹配域对应的新流表项中,并执行遍历单级流表中的每个完整匹配流的所有匹配域。
处理子单元322,还用于若没有未遍历的匹配域,则遍历新流表项。
判断子单元323,还用于判断新流表项中是否有未遍历的新流表项。
处理子单元322,还用于若新流表项中有未遍历的新流表项,则查找未遍历的新流表项的匹配域。
若未遍历的新流表项没有匹配域,则删除未遍历的新流表项,并执行遍历新流表项。
若未遍历的新流表项含有匹配域,则在当前未遍历的新流表项中填充与完整匹配流中的匹配域类型相同的匹配域。
将填充后的新流表项插入对应的硬件形式的多级流表中,并执行遍历新流表项。
其中,单级流表中的策略列表填充到硬件形式的多级流表中最后一个新流表项中。
OpenFlow中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
本发明的实施例提供的流表转换装置,通过将软件形式的多级流表转换成硬件形式的多级流表,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。进而,通过对流表的整合和规划,可以更好地利用每个流表的匹配域资源,优化流表的结构。
本发明的实施例提供一种流表转换装置4,参照图6所示,包括:至少一个处理器41、存储器42、通信接口43和总线44,至少一个处理器41、存储器42和通信接口43通过总线44连接并完成相互间的通信,其中:
该总线44可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral ComponentInterconnect,简称为PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,简称为EISA)总线等。该总线44可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:
存储器42用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器62可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器41可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific IntegratedCircuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
通信接口43,主要用于实现本实施例的装置之间的通信。
处理器41,还用于调用存储器42中的程序代码,用以执行以下操作:
在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表;其中,单级流表是单表多域的。
根据硬件所实现的多级流表将单级流表拆分成对应的硬件形式的多级流表。
进一步,处理器41还用于执行以下操作:
获取软件形式的多级流表中的所有的完整匹配流。
从所有的完整匹配流中选取待处理流。
其中,待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流。
将待处理流等价转换成单级流表。
进一步,处理器41还用于执行以下操作:
生成N叉数的根节点。其中,根节点为软件形式的多级流表的第一个流表的一个流表项。
生成根节点的子节点。其中,子节点为第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;子节点与流表项具有一一对应的关系。
采用递归算法对根节点的所有子节点进行操作,建立N叉数。其中,N为一个正整数。
如果任一流表项含有跳转指令操作,根据跳转操作指令跳转到对应的流表中,未匹配到与任一流表项相同的匹配域,则删除任一流表项所代表的节点,得到更新后的二叉数。
遍历更新后的N叉数,得到更新后的N叉数的所有叶子节点。
采用递归算法查找所有叶子节点的父节点直到根节点,获得所有的完整匹配流。
进一步,可选的,处理器41还用于执行以下操作:
判断N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同。
如果存在某一节点对应的流表项的匹配域与预先下发的匹配域相同,则某一节点所在的完整匹配流为待处理流。
进一步,可选的,处理器41还用于执行以下操作:
构造一个单表多域的流表项。其中,流表项中包含匹配域和匹配域匹配成功后所要执行的策略。
遍历待处理流,将待处理流的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中。其中,待处理流的每个策略按顺序依次填充到单表多域的流表项的策略列表中。
待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中。
如果某个流表项中的操作是设置某个匹配域时,而流表项之后有匹配匹配域的操作,则匹配域不能添加到流表项中。
进一步,可选的,处理器41还用于执行以下操作:
构造硬件对应的硬件形式的多级流表,并确定硬件形式的多级流表中流表的数目和每个流表的匹配域类型。
为每个流表创建一个新流表项。
遍历单级流表中的每个完整匹配流的所有匹配域。
判断单级流表中是否有未遍历的匹配域。
若有未遍历的匹配域,则在硬件形式的多级流表中查找与每个未遍历的匹配域类型对应的流表。
根据未遍历的匹配域类型对应的流表获取未遍历的匹配域对应的流表项。
将每个未遍历的匹配域类型和匹配域的值插入未遍历的匹配域对应的新流表项中,并执行遍历单级流表中的每个完整匹配流的所有匹配域。
进一步,处理器41还用于执行以下操作:
若没有未遍历的匹配域,则遍历新流表项。
判断新流表项中是否有未遍历的新流表项。
若新流表项中有未遍历的新流表项,则查找未遍历的新流表项的匹配域。
若未遍历的表项没有匹配域,则删除未遍历的新流表项,并执行遍历新流表项。
若未遍历的新流表项含有匹配域,则在当前未遍历的新流表项中填充与完整匹配流中的匹配域类型相同的匹配域。
将填充后的新流表项插入对应的硬件形式的多级流表中,并执遍历新流表项。
单级流表中的策略列表填充到硬件形式的多级流表中最后一个新流表项中。
OpenFlow中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
本发明的实施例提供的流表转换装置,通过将软件形式的多级流表转换成硬件形式的多级流表,在软件到硬件实现过程中控制器无需适应硬件的下发规则,减小了控制器的负担和管理开销。进而,通过对流表的整合和规划,可以更好地利用每个流表的匹配域资源,优化流表的结构。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种流表转换方法,其特征在于,包括:
在控制和转发相分离的网络设备架构中,获取软件形式的多级流表中的所有的完整匹配流;
从所述所有的完整匹配流中选取待处理流;其中,所述待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流;
将所述待处理流等价转换成单级流表;其中,所述单级流表是单表多域的;
构造硬件对应的硬件形式的多级流表,并确定所述硬件形式的多级流表中流表的数目和每个所述流表的匹配域类型;
为每个所述流表创建一个新流表项;
遍历所述单级流表中的每个完整匹配流的所有匹配域;
判断所述单级流表中是否有未遍历的匹配域;
若有未遍历的匹配域,则在所述硬件形式的多级流表中查找与每个所述未遍历的匹配域类型对应的流表;
根据所述未遍历的匹配域类型对应的流表获取所述未遍历的匹配域对应的流表项;
将每个所述未遍历的匹配域类型和匹配域的值插入所述未遍历的匹配域对应的新流表项中,并执行所述遍历所述单级流表中的每个所述完整匹配流的所有匹配域。
2.根据权利要求1所述的方法,其特征在于,利用N叉数表示所述软件形式的多级流表的流表项的关系,所述获取所述软件形式的多级流表中的所有的完整匹配流,包括:
生成所述N叉数的根节点;其中,所述根节点为所述软件形式的多级流表的第一个流表的一个流表项;
生成所述根节点的子节点;其中,所述子节点为所述第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;所述子节点与所述流表项具有一一对应的关系;
采用递归算法对所述根节点的所有子节点进行操作,建立所述N叉数;其中,所述N为一个正整数;
如果任一流表项含有跳转指令操作,根据所述跳转操作指令跳转到对应的流表中,未匹配到与所述任一流表项相同的匹配域,则删除所述任一流表项所代表的节点,得到更新后的二叉数;
遍历所述更新后的N叉数,得到所述更新后的N叉数的所有叶子节点;
采用递归算法查找所述所有叶子节点的父节点直到根节点,获得所述所有的完整匹配流。
3.根据权利要求2所述的方法,其特征在于,所述从所述所有的完整匹配流中选取待处理流,包括:
判断所述N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同;
如果存在某一节点对应的流表项的匹配域与所述预先下发的匹配域相同,则所述某一节点所在的完整匹配流为待处理流。
4.根据权利要求3所述的方法,其特征在于,所述将所述待处理流等价转换成所述单级流表,包括:
构造一个单表多域的流表项;其中,所述流表项中包含匹配域和匹配域匹配成功后所要执行的策略;
遍历所述待处理流,将所述待处理流的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中;其中,所述待处理流的每个策略按顺序依次填充到所述单表多域的流表项的策略列表中。
5.根据权利要求4所述的方法,其特征在于,
所述待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中;
如果某个流表项中的操作是设置某个匹配域时,而所述流表项之后有匹配所述匹配域的操作,则所述匹配域不能添加到所述流表项中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若没有未遍历的匹配域,则遍历所述新流表项;
判断所述新流表项中是否有未遍历的新流表项;
若所述新流表项中有未遍历的新流表项,则查找所述未遍历的新流表项的匹配域;
若所述未遍历的新流表项没有匹配域,则删除所述未遍历的新流表项,并执行所述遍历所述新流表项。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述未遍历的新流表项含有匹配域,则在当前所述未遍历的新流表项中填充与所述完整匹配流中的匹配域类型相同的匹配域;
将所述填充后的新流表项插入对应的硬件形式的多级流表中,并执所述遍历所述新流表项。
8.根据权利要求6或7所述的方法,其特征在于,
所述单级流表中的策略列表填充到所述硬件形式的多级流表中最后一个新流表项中。
9.根据权利要求1所述的方法,其特征在于,
所述网络设备架构中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
10.一种流表转换装置,其特征在于,包括:
转换单元,用于在控制和转发相分离的网络设备架构中,将软件形式的多级流表等价转换成软件形式的单级流表;其中,所述单级流表是单表多域的;
拆分单元,用于根据硬件所实现的多级流表将所述单级流表拆分成对应的硬件形式的多级流表;
其中,所述转换单元包括:
获取子单元,用于获取所述软件形式的多级流表中的所有的完整匹配流;
选取子单元,用于从所述所有的完整匹配流中选取待处理流;其中,所述待处理流指需要添加到所述软件形式的多级流表中的流表项或者需要在所述软件形式的多级流表中删除的流表项所在的所有的完整的匹配流;
转换子单元,用于将所述待处理流等价转换成所述单级流表;
所述拆分单元包括:
构造子单元,用于构造所述硬件形式的多级流表,并确定所述硬件形式的多级流表中流表的数目和每个所述流表的匹配域类型;
处理子单元,用于为每个所述流表创建一个新流表项;
所述处理子单元,还用于遍历所述单级流表中的每个完整匹配流的所有匹配域;
判断子单元,用于判断所述单级流表中是否有未遍历的匹配域;
所述处理子单元,还用于若有未遍历的匹配域,则在所述硬件形式的多级流表中查找与每个所述未遍历的匹配域类型对应的流表;
所述处理子单元,还用于根据所述未遍历的匹配域类型对应的流表获取所述未遍历的匹配域对应的流表项;
所述处理子单元,还用于将每个所述未遍历的匹配域类型和匹配域的值插入所述未遍历的匹配域对应的新流表项中,并执行所述遍历所述单级流表中的每个所述完整匹配流的所有匹配域。
11.根据权利要求10所述的装置,其特征在于,利用N叉数表示所述软件形式的多级流表的流表项的关系,所述获取子单元包括:
生成模块,用于生成所述N叉数的根节点;其中,所述根节点为所述软件形式的多级流表的第一个流表的一个流表项;
所述生成模块,还用于生成所述根节点的子节点;其中,所述子节点为所述第一个流表的任一流表项跳转到指定流表且匹配域匹配成功后所得到的所有流表项;所述子节点与所述流表项具有一一对应的关系;
处理模块,用于采用递归算法对所述根节点的所有子节点进行操作,建立所述N叉数;其中,所述N为一个正整数;
删除模块,用于如果任一流表项含有跳转指令操作,根据所述跳转操作指令跳转到对应的流表中,未匹配到与所述任一流表项相同的匹配域,则删除所述任一流表项所代表的节点,得到更新后的二叉数;
所述处理模块,还用于遍历所述更新后的N叉数,得到所述更新后的N叉数的所有叶子节点;
所述处理模块,还用于采用递归算法查找所述所有叶子节点的父节点直到根节点,获得所述所有的完整匹配流。
12.根据权利要求11所述的装置,其特征在于,所述选取子单元,具体用于:
判断所述N叉数的节点对应的流表项的匹配域与预先下发的匹配域是否相同;
如果存在某一节点对应的流表项的匹配域与所述预先下发的匹配域相同,则所述某一节点所在的完整匹配流为待处理流。
13.根据权利要求12所述的装置,其特征在于,所述转换子单元包括:
构造模块,用于构造一个单表多域的流表项;其中,所述流表项中包含匹配域和匹配域匹配成功后所要执行的策略;
填充模块,用于遍历所述待处理流,将所述待处理流的所有流表项中的每一个匹配域依次填充到新构造的单表多域的流表项中;其中,所述待处理流的每个策略按顺序依次填充到所述单表多域的流表项的策略列表中。
14.根据权利要求13所述的装置,其特征在于,
所述待处理流中具有跳转命令的策略和写入命令的策略不能填充到单表多域的策略列表中;
如果某个流表项中的操作是设置某个匹配域时,而所述流表项之后有匹配所述匹配域的操作,则所述匹配域不能添加到所述流表项中。
15.根据权利要求10所述的装置,其特征在于,
所述处理子单元,还用于若没有未遍历的匹配域,则遍历所述新流表项;
所述判断子单元,还用于判断所述新流表项中是否有未遍历的新流表项;
所述处理子单元,还用于若所述新流表项中有未遍历的新流表项,则查找所述未遍历的新流表项的匹配域;
所述处理子单元,还用于若所述未遍历的新流表项没有匹配域,则删除所述未遍历的新流表项,并执行所述遍历所述新流表项。
16.根据权利要求15所述的装置,其特征在于,所述处理子单元还用于:
若所述未遍历的新流表项含有匹配域,则在当前所述未遍历的新流表项中填充与所述完整匹配流中的匹配域类型相同的匹配域;
将所述填充后的新流表项插入对应的硬件形式的多级流表中,并执行所述遍历所述新流表项。
17.根据权利要求15或16所述的装置,其特征在于,
所述单级流表中的策略列表填充到所述硬件形式的多级流表中最后一个新流表项中。
18.根据权利要求10所述的装置,其特征在于,
所述网络设备架构中不能进行等价转换的软件形式的多级流表需要上传到软件进行处理。
CN201310135991.XA 2013-04-18 2013-04-18 一种流表转换方法和装置 Active CN103259718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310135991.XA CN103259718B (zh) 2013-04-18 2013-04-18 一种流表转换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310135991.XA CN103259718B (zh) 2013-04-18 2013-04-18 一种流表转换方法和装置

Publications (2)

Publication Number Publication Date
CN103259718A CN103259718A (zh) 2013-08-21
CN103259718B true CN103259718B (zh) 2016-12-28

Family

ID=48963429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310135991.XA Active CN103259718B (zh) 2013-04-18 2013-04-18 一种流表转换方法和装置

Country Status (1)

Country Link
CN (1) CN103259718B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468357B (zh) * 2013-09-16 2019-07-12 中兴通讯股份有限公司 流表的多级化方法、多级流表处理方法及装置
CN103560958B (zh) * 2013-10-18 2017-01-18 华为技术有限公司 一种数据包的规则匹配方法及装置
CN103560951A (zh) * 2013-11-13 2014-02-05 华为技术有限公司 报文处理方法及物理转发设备
CN103647718B (zh) * 2013-12-13 2018-02-13 华为技术有限公司 数据包的处理方法和装置
CN105450525B (zh) * 2014-05-28 2018-05-01 国际商业机器公司 用于路由交换设备使用的方法和设备
CN105227462B (zh) * 2014-06-11 2018-06-29 上海诺基亚贝尔股份有限公司 一种用于更新OpenFlow流表的方法与设备
AU2014399458B2 (en) 2014-06-30 2018-01-18 Huawei Technologies Co., Ltd. Flow Entry Configuration Method, Apparatus, and System
WO2016070332A1 (zh) * 2014-11-04 2016-05-12 华为技术有限公司 流表项处理方法和装置
CN104518970B (zh) * 2014-12-12 2018-12-25 北京智谷睿拓技术服务有限公司 流表更新方法、装置及控制器
CN104518969B (zh) * 2014-12-12 2018-12-25 北京智谷睿拓技术服务有限公司 数据报文处理方法、装置及交换机
CN105812164B (zh) * 2014-12-31 2019-07-23 北京东土科技股份有限公司 基于tcam多级流表的规则索引管理实现方法和装置
CN105591909A (zh) * 2015-10-21 2016-05-18 杭州华三通信技术有限公司 提高报文转发性能的方法以及装置
CN110166379A (zh) * 2019-04-18 2019-08-23 北京字节跳动网络技术有限公司 流表的处理方法、装置、电子设备及存储介质
CN111163060B (zh) * 2019-12-11 2021-12-24 中盈优创资讯科技有限公司 一种基于应用组的转发方法、设备以及系统
CN114884858A (zh) * 2022-01-28 2022-08-09 珠海星云智联科技有限公司 流表处理的方法和相关装置、电子设备、介质和程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301663A (zh) * 2011-07-06 2011-12-28 华为技术有限公司 一种报文处理方法及相关设备
CN102726007A (zh) * 2009-04-01 2012-10-10 Nicira网络公司 用于实现和管理虚拟交换机的方法和装置
CN102783097A (zh) * 2010-03-24 2012-11-14 日本电气株式会社 分组转发系统、控制设备、转发设备以及用于准备处理规则的程序和方法
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102726007A (zh) * 2009-04-01 2012-10-10 Nicira网络公司 用于实现和管理虚拟交换机的方法和装置
CN102783097A (zh) * 2010-03-24 2012-11-14 日本电气株式会社 分组转发系统、控制设备、转发设备以及用于准备处理规则的程序和方法
CN102301663A (zh) * 2011-07-06 2011-12-28 华为技术有限公司 一种报文处理方法及相关设备
CN102843299A (zh) * 2012-09-12 2012-12-26 盛科网络(苏州)有限公司 基于TCAM实现Openflow多级流表的方法及系统

Also Published As

Publication number Publication date
CN103259718A (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
CN103259718B (zh) 一种流表转换方法和装置
Pierre et al. Topological design of computer communication networks using simulated annealing
CN105141524B (zh) 一种带约束条件的拓扑图最优路径算法
US8346697B2 (en) Direct construction of finite state machines
CN104301251A (zh) 一种QoS处理方法、系统及设备
KR101347603B1 (ko) 최단경로를 이용한 출발점 기반의 통행 배정방법
CN104202176A (zh) 光网络拓扑计算机自动构建方法
CN105721192A (zh) 实现容量规划的方法和装置
CN109246013A (zh) 一种fc-ae-1553交换型网络中的路由方法
CN107194056B (zh) 管道设计中系统图与三维模型自动匹配校验的方法
CN106055334A (zh) 代码管理系统及方法
CN108718246A (zh) 一种面向网络功能虚拟化的资源调度方法和系统
CN106547522A (zh) 一种流应用优化的方法及装置
CN101986282B (zh) 拓扑适配方法及装置
CN112985443A (zh) 路径规划方法、装置及终端设备
CN103198012A (zh) 一种基于扩展状态机图的测试用例自动产生方法
CN105247823B (zh) 调整链路开销的方法和装置
CN106095821A (zh) 一种通用表单配置管理方法
CN106302158A (zh) 一种网络拓扑中选择传输路径的方法及装置
CN107835175A (zh) 采用平衡二叉树算法的网络连接跟踪方法
CN107977310A (zh) 一种遍历测试命令生成方法及装置
CN101986625B (zh) 一种路径计算方法及装置
CN107844535A (zh) 一种外部资源库调用方法及系统
CN103428087B (zh) 采用循环深度优先遍历的最长路预置保护p圈生成方法
CN106484375A (zh) 一种指令块加载方法、软交换设备及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201228

Address after: 518101 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters building, Longgang District, Shenzhen City, Guangdong Province, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

Effective date of registration: 20201228

Address after: 313200 mubali, Yantang village, Luoshe Town, Deqing County, Huzhou City, Zhejiang Province (Deqing Kangxin Wood Industry Co., Ltd.)

Patentee after: Luo Sanjie

Address before: 518101 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.