WO2016065536A1 - 交换机处理方法、控制器、交换机及交换机处理系统 - Google Patents

交换机处理方法、控制器、交换机及交换机处理系统 Download PDF

Info

Publication number
WO2016065536A1
WO2016065536A1 PCT/CN2014/089701 CN2014089701W WO2016065536A1 WO 2016065536 A1 WO2016065536 A1 WO 2016065536A1 CN 2014089701 W CN2014089701 W CN 2014089701W WO 2016065536 A1 WO2016065536 A1 WO 2016065536A1
Authority
WO
WIPO (PCT)
Prior art keywords
switch
flow table
packet
flow
extended
Prior art date
Application number
PCT/CN2014/089701
Other languages
English (en)
French (fr)
Inventor
胡渭琦
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to JP2017522972A priority Critical patent/JP6448785B2/ja
Priority to EP14905150.0A priority patent/EP3197106B1/en
Priority to PCT/CN2014/089701 priority patent/WO2016065536A1/zh
Priority to BR112017008532-1A priority patent/BR112017008532A2/zh
Priority to RU2017115884A priority patent/RU2666243C1/ru
Priority to CN201480024931.3A priority patent/CN105745877B/zh
Priority to KR1020177012348A priority patent/KR101996337B1/ko
Publication of WO2016065536A1 publication Critical patent/WO2016065536A1/zh
Priority to US15/499,163 priority patent/US10498637B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3063Pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/583Stackable routers

Abstract

本发明实施例提供一种交换机处理方法、控制器、交换机及交换机处理系统,本发明实施例提供的方法由控制器和逻辑Switch执行,逻辑Switch包括至少两个物理Switch;该方法包括:控制器将逻辑Switch的流表分配给各物理Switch;控制器发送映射信息,以使各物理Switch获得映射信息;控制器发送流表项,以使各物理Switch获得与其对应的流表项,并对数据报文进行处理。用于执行本发明实施例提供的方法的逻辑Switch,可以在该逻辑Switch物理结构的基础上堆叠新的物理Switch,有利于保持现有网络拓扑的稳定性,提高了逻辑Switch的处理能力,降低了对网络运行的影响和扩容的成本。

Description

交换机处理方法、控制器、交换机及交换机处理系统 技术领域
本发明实施例涉及通信技术,尤其涉及一种交换机处理方法、控制器、交换机及交换机处理系统。
背景技术
软件定义网络(Software Defined Networking,简称为:SDN)是一种将控制与转发解耦的网络架构,具有集中控制和开放可编程接口的特点,即处于控制面的控制器可以通过网络通讯协议,例如通过提出的一种新型网络交换模型,即开发流(Openflow)协议对处于转发面的交换机进行控制。
在现有技术中,控制器可以通过Openflow协议对处于转发面的交换机(Switch)的行为进行控制,该Switch具体承载着业务逻辑的多级流表(Flow table),即该Switch采用基于流表的流水线对数据报文进行处理。具体的,每个流表中可以包括多个流表项,该流表项即是用来承载Openflow协议的基本处理逻辑,Switch在接收到数据报文时,依照预置的优先次序使用流表项中的匹配域对各个流表项进行逐一匹配,匹配成功后执行流表项中的执行指令,指令例如包括操作(Action)列表、修改流表间信息(Metadata)、跳转到后续流表等;由于数据报文在Switch中通常要经过多级流表的匹配处理,输入的数据报文在一个流表中匹配成功后将执行流表项中的执行指令,随后该数据报文跳转到下一个流表中继续处理。
然而,现有技术中的Switch的流水线所支持的流表级数和其所能处理的流表项的规模是有限的,因此,在运营商需要对设置在网络节点中的Switch进行功能或性能方面的扩容时,由于受Switch硬件能力的限制,而导致只能更换现有网络中的Switch,替换为更大容量的、或者能支持更多流表级数的Switch,从而提高了网络扩容的成本。
发明内容
本发明实施例提供一种交换机处理方法、控制器、交换机及交换机处理系统,以解决现有技术中,在运营商需要对设置在网络节点中的Switch进行功能或性能方面的扩容时,由于受Switch硬件能力的限制,而导致只能更换现有网络中的Switch,从而减少了网络扩容的成本。
第一方面,本发明实施例提供一种交换机处理方法,由控制器和逻辑交换机Switch执行,所述逻辑Switch包括至少两个物理Switch;所述方法包括:
所述控制器将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
所述控制器发送映射信息,以使每个所述物理Switch获得所述映射信息,所述映射信息包括所述多级流表中各流表与所述物理Switch的映射关系;
所述控制器向所述逻辑Switch发送流表项,以使每个所述物理Switch获得与其对应的流表项,并根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息。
在第一方面的第一种可能的实现方式中,所述至少两个物理Switch包括主Switch和第一扩展Switch,其中,所述控制器至少与所述主Switch连接,所述第一扩展Switch至少与所述主Switch连接;
则所述控制器发送映射信息,包括:
所述控制器至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息;
所述控制器向所述逻辑Switch发送流表项,包括:
所述控制器至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的流表项。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述物理Switch还包括第二扩展Switch,所述第二扩展Switch至少与所述第一扩展Switch连接;
则所述控制器发送映射信息,包括:
所述控制器至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息,并且所述第二扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的映射信息;
所述控制器向所述逻辑Switch发送流表项,包括:
所述控制器至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与所述主Switch对应的流表项以及与所述第一扩展Switch和/或所述第二扩展Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的与所述第一扩展Switch对应的流表项,并且使得所述第二扩展Switch接收到的流表项包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的与所述第二扩展Switch对应的流表项。
根据第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述控制器为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0,使得所述主Switch在接收到所述数据报文时通过所述table0对所述数据报文进行处理。
根据第一方面、第一方面的第一种和第二种可能的实现方式中任意一项,在第四种可能的实现方式中,所述控制器向所述逻辑Switch发送流表项,包括:
所述控制器向所述逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对所述数据报文进行处理,并根据所述映射信息确定下一跳流表的位置,在所述已确定的下一跳流表位于所述当前物理Switch中时,将所述数据报文跳转到所述下一跳流表继续进行处理,或者,在所述已确定的下一跳流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
根据第一方面,第一方面的第一种和第二种可能的实现方式中任意一项,在第五种可能的实现方式中,所述控制器向所述逻辑Switch发送流表项,包括:
所述控制器在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;
所述控制器在确定所述下一跳流表位于所述当前物理Switch中时,向所述当前物理Switch发送包含所述流表跳转指令的流表项,使得所述当前物理Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述控制器在确定所述下一跳流表位于其它物理Switch中时,将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前物理Switch发送包含所述Switch转发指令的流表项,使得所述当前物理Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
根据第一方面的第四种和第五种可能的实现方式,在第六种可能的实现方式中,所述对流水线环境的保护为所述当前物理Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第一方面的第四种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述对流水线环境的保护,用于使得所述下一跳流表对应的物理Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
根据第一方面的第四种到第六种可能的实现方式中任意一项,在第八种可能的实现方式中,所述控制器发送的与所述扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则所述方法还包括:
所述控制器向所述扩展Switch发送所述用于进行流水线恢复的流表项,使得所述扩展Switch将所述流表项添加到所述扩展Switch的第一级流表table0’中,并在接收到所述报文封装包时,通过所述table0’中添加的流表项进行对流水线环境的恢复。
根据第一方面的第八种可能的实现方式,在第九种可能的实现方式中, 所述报文封装包中包括下一跳流表ID,所述用于进行流水线恢复的流表项包括匹配部分和执行指令,所述匹配部分用于所述扩展Switch将所述下一跳流表ID作为所述流表项对应的匹配对象,所述执行指令包括流表恢复指令和/或流表跳转指令;
则所述对流水线环境的恢复为所述扩展Switch通过所述table0’中的流表项对其接收到的报文封装包进行匹配,在所述下一跳流表ID与所述table0’中的流表项匹配时,根据匹配结果顺序执行所述已匹配的流表项中的所述流表恢复指令和/或所述流表跳转指令。
第二方面,本发明实施例提供一种交换机处理方法,由控制器和逻辑Switch执行,所述逻辑Switch包括至少两个物理Switch,所述至少两个物理Switch包括主Switch和扩展Switch,其中,所述控制器至少与所述主Switch连接;所述方法包括:
所述主Switch接收所述控制器发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
所述主Switch接收所述控制器发送的流表项,所述主Switch接收到的流表项为所述控制器为所述主Switch分配的,或者所述控制器为主Switch和所述扩展Switch分配的流表集合中各流表的内容信息;
所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理。
在第二方面的第一种可能的实现方式中,所述主Switch接收所述控制器发送的映射关系之后,还包括:
所述主Switch向与其连接的扩展Switch发送所述映射信息;
所述主Switch接收所述控制器发送的流表项之后,还包括:
所述主Switch向与其连接的扩展Switch发送所述控制器分配的流表项。
根据第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
所述主Switch接收所述控制器发送的映射信息之后,还包括:
所述主Switch向所述第一扩展Switch和/或所述第二扩展Switch发送所 述映射信息;
所述主Switch接收所述控制器发送流表项之后,还包括:
所述主Switch向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项,以使所述扩展Switch根据与其对应流表项和所述映射信息对接收到的数据报文进行处理。
根据第二方面、第二方面的第一种和第二种可能的实现方式中任意一项,在第三种可能的实现方式中,所述主Switch接收到的映射信息包括所述控制器为其分配的流表,所述流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;则所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,包括:
所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息,通过所述table0对所述接收到的数据报文进行处理。
根据第二方面、第二方面的第一种到第三种可能的实现方式中任意一项,在第四种可能的实现方式中,所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,包括:
所述主Switch在接收到数据报文时,对所述数据报文进行处理,并根据所述映射信息判断下一跳流表的位置;
在所述下一跳流表位于所述主Switch中时,所述主Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
在所述下一跳流表位于所述扩展Switch中时,所述主Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第二方面、第二方面的第一种到第三种可能的实现方式中任意一项,在第五种可能的实现方式中,所述主Switch接收所述控制器发送的流表项,包括:
所述主Switch接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的下一跳流表是否位于所述主Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
则所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息 对接收到的数据报文进行处理,包括:
所述主Switch接收所述数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述主Switch接收所述数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第二方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述主Switch发起对流水线环境的保护,包括:
所述主Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第二方面的第四种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述对流水线环境的保护,用于使得所述下一跳流表对应的扩展Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
第三方面,本发明实施例提供一种交换机处理方法,由控制器和逻辑Switch执行,所述逻辑Switch包括多个物理Switch,所述多个物理Switch包括主Switch和扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,其中,所述控制器至少与所述主Switch连接,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;所述方法包括:
所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展 Switch发送的与所述当前扩展Switch对应的流表项,所述当前扩展Switch接收到的流表项为所述控制器为所述当前扩展Switch分配的流表集合中各流表的内容信息;
所述当前扩展Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的第一报文封装包进行处理,所述第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对所述数据报文进行处理的相关信息封装在一起生成的。
在第三方面的第一种可能的实现方式中,所述当前扩展Switch接收到的映射信息中,所述逻辑Switch的多级流表中的第一级流表table0与所述主Switch对应。
根据第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与所述当前扩展Switch对应的流表项之后,还包括:
所述当前扩展Switch接收到所述第一报文封装包;
所述当前扩展Switch确定所述第一报文封装包中的下一跳流表编号ID位于其它物理Switch中;
所述当前扩展Switch根据所述映射信息将所述第一报文封装包转发给所述下一跳流表ID对应的物理Switch。
根据第三方面或第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与所述当前扩展Switch对应的流表项之后,还包括:
所述当前扩展Switch接收到所述第一报文封装包;
所述当前扩展Switch确定所述第一报文封装包中的下一跳流表编号ID位于所述当前扩展Switch中;
所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
根据第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,包括:
所述当前扩展Switch对接收到的所述第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信 息,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata);
所述当前扩展Switch根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理。
根据第三方面的第三种可能的实现方式,在第五种可能的实现方式中,所述当前扩展Switch接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,包括:
所述当前扩展Switch将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;
所述当前扩展Switch通过所述table0’中添加的流表项对接收到的所述第一报文封装包进行对流水线环境的恢复。
根据第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一报文封装包中包括下一跳流表ID,所述用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,所述执行指令包括流表恢复指令和/或流表跳转指令;则所述当前扩展Switch通过所述table0’中添加的流表项对接收到的所述第一报文封装包进行对流水线环境的恢复,包括:
所述当前扩展Switch通过所述table0’中的流表项对所述第一报文封装包进行匹配;
所述当前扩展Switch在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复指令和/或流表跳转指令。
根据第三方面的第三种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,以获取所述数据报文之后,还包括:
所述当前扩展Switch获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理,并根据所述映射信息判断下一跳流表的位置;
在所述下一跳流表位于所述当前扩展Switch中时,所述当前扩展Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
在所述下一跳流表位于其它扩展Switch中时,所述当前扩展Switch发起 对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第三方面的第三种到第六种可能的实现方式中任意一项,在第八种可能的实现方式中,还包括:
所述当前扩展Switch接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的所述下一跳流表是否位于所述当前扩展Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
则所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复之后,还包括:
所述当前扩展Switch获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述当前扩展Switch获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第三方面的第七种或第八种可能的实现方式,在第九种可能的实现方式中,所述当前扩展Switch发起对流水线环境的保护,包括:
所述当前扩展Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
第四方面,本发明实施例提供一种交换机处理装置,设置于与逻辑交换机Switch相连接的控制器中,所述逻辑Switch包括至少两个物理Switch;所述装置包括:
分配模块,用于将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
发送模块,用于发送映射信息,以使每个所述物理Switch获得所述映射信息,所述映射信息包括所述多级流表中各流表与所述物理Switch的映射关系;
所述发送模块,还用于向所述逻辑Switch发送流表项,以使每个所述物理Switch获得与其对应的流表项,并根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息。
在第四方面的第一种可能的实现方式中,所述至少两个物理Switch包括主Switch和第一扩展Switch,其中,所述控制器至少与所述主Switch连接,所述第一扩展Switch至少与所述主Switch连接;
则所述发送模块用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息;
所述发送模块还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的流表项。
根据第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述物理Switch还包括第二扩展Switch,所述第二扩展Switch至少与所述第一扩展Switch连接;
则所述发送模块用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息,并且所述第二扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的映射信息;
所述发送模块还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与所述主Switch对应的流表 项以及与所述第一扩展Switch和/或所述第二扩展Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的与所述第一扩展Switch对应的流表项,并且使得所述第二扩展Switch接收到的流表项包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的与所述第二扩展Switch对应的流表项。
根据第四方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述分配模块为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0,使得所述主Switch在接收到所述数据报文时通过所述table0对所述数据报文进行处理。
根据第四方面、第四方面的第一种和第二种可能的实现方式中任意一项,在第四种可能的实现方式中,所述发送模块还用于向所述逻辑Switch发送流表项,具体包括:向所述逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对所述数据报文进行处理,并根据所述发送模块发送的映射信息确定下一跳流表的位置,在所述已确定的下一跳流表位于所述当前物理Switch中时,将所述数据报文跳转到所述下一跳流表继续进行处理,或者,在所述已确定的下一跳流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
根据第四方面,第四方面的第一种和第二种可能的实现方式中任意一项,在第五种可能的实现方式中,所述发送模块包括:判断单元,用于在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;
执行单元,用于所述判断单元确定出所述下一跳流表位于所述当前物理Switch中时,向所述当前物理Switch发送包含所述流表跳转指令的流表项,使得所述当前物理Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述执行单元,用于所述判断单元确定出所述下一跳流表位于其它物理Switch中时,将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前物理Switch发送包含所述Switch转发指令的流表项,使得所述当前物理Switch发起对流水线环境的保护以生成报文封装包,并将所述报文 封装包发送到所述下一跳流表对应的物理Switch中。
根据第四方面的第四种和第五种可能的实现方式,在第六种可能的实现方式中,所述对流水线环境的保护为所述当前物理Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第四方面的第四种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述对流水线环境的保护,用于使得所述下一跳流表对应的物理Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
根据第四方面的第四种到第六种可能的实现方式中任意一项,在第八种可能的实现方式中,所述发送模块发送的与所述扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则所述发送模块,还用于向所述扩展Switch发送所述用于进行流水线恢复的流表项,使得所述扩展Switch将所述流表项添加到所述扩展Switch的第一级流表table0’中,并在接收到所述报文封装包时,通过所述table0’中添加的流表项进行对流水线环境的恢复。
根据第四方面的第八种可能的实现方式,在第九种可能的实现方式中,所述报文封装包中包括下一跳流表ID,所述发送模块发送的用于进行流水线恢复的流表项包括匹配部分和执行指令,所述匹配部分用于所述扩展Switch将所述下一跳流表ID作为所述流表项对应的匹配对象,所述执行指令包括流表恢复指令和/或流表跳转指令;
则所述对流水线环境的恢复为所述扩展Switch通过所述table0’中的流表项对其接收到的报文封装包进行匹配,在所述下一跳流表ID与所述table0’中的流表项匹配时,根据匹配结果顺序执行所述已匹配的流表项中的所述流表恢复指令和/或所述流表跳转指令。
第五方面,本发明实施例提供一种交换机处理装置,设置于与控制器相连接的逻辑交换机Switch的物理Switch中,其中,所述逻辑Switch包括至 少两个物理Switch,所述至少两个物理Switch包括主Switch和扩展Switch,所述控制器至少与所述主Switch连接,交换机处理装置具体设置于所述主Switch中;所述装置包括:
接收模块,用于接收所述控制器发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
所述接收模块,还用于接收所述控制器发送的流表项,所述接收模块接收到的流表项为所述控制器为所述主Switch分配的,或者所述控制器为主Switch和所述扩展Switch分配的流表集合中各流表的内容信息;
处理模块,用于根据所述接收模块接收的流表项、或者根据所述接收模块接收的流表项和映射信息对所述主Switch接收到的数据报文进行处理。
在第五方面的第一种可能的实现方式中,还包括:发送模块,用于在所述接收模块接收所述控制器发送的映射关系之后,向与其连接的扩展Switch发送所述映射信息;
所述发送模块,还用于在所述接收模块接收所述控制器发送的流表项之后,向与其连接的扩展Switch发送所述控制器分配的流表项。
根据第五方面或第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述主Switch所属的逻辑Switch中,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
所述发送模块用于向与其连接的扩展Switch发送所述映射信息,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
所述发送模块还用于向与其连接的扩展Switch发送所述控制器分配的流表项,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项,以使所述扩展Switch根据与其对应流表项和所述映射信息对接收到的数据报文进行处理。
根据第五方面、第五方面的第一种和第二种可能的实现方式中任意一项,在第三种可能的实现方式中,所述接收模块接收到的映射信息包括所述控制器为主Switch分配的流表,所述流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;则所述处理模块,具体用于根据所述接收模块接收的流表项、或者根据所述接收模块接收的流表项和映射信息,通过所述table0对 所述接收到的数据报文进行处理。
根据第五方面、第五方面的第一种到第三种可能的实现方式中任意一项,在第四种可能的实现方式中,所述处理模块包括:处理单元,用于在接收到数据报文时,对所述数据报文进行处理;
判断单元,用于并根据所述接收模块接收的映射信息判断下一跳流表的位置;
则所述处理单元,还用于在所述判断单元判断出所述下一跳流表位于所述主Switch中时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述处理单元,还用于在所述判断单元判断出所述下一跳流表位于所述扩展Switch中时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第五方面、第五方面的第一种到第三种可能的实现方式中任意一项,在第五种可能的实现方式中,所述接收模块还用于接收所述控制器发送的流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的下一跳流表是否位于所述主Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
则所述处理模块,具体用于在接收到的所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述处理模块,具体用于在接收到的所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第五方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述处理模块发起对流水线环境的保护,包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第五方面的第四种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述对流水线环境的保护,用于使得所述下一跳流表对应的扩展Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
第六方面,本发明实施例提供一种交换机处理装置,设置于与控制器相连接的逻辑交换机Switch的物理Switch中,其中,所述逻辑Switch包括多个物理Switch,所述多个物理Switch包括主Switch和所述扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述控制器至少与所述主Switch连接,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接,交换机处理装置具体设置于扩展Switch中;所述装置包括:
接收模块,用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
所述接收模块,还用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与当前扩展Switch对应的流表项,所述接收模块接收到的流表项为所述控制器为所述当前扩展Switch分配的流表集合中各流表的内容信息;
处理模块,用于根据所述接收模块接收的流表项、或者根据所述接收模块接收的流表项和映射信息对所述当前扩展Switch接收到的第一报文封装包进行处理,所述第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对所述数据报文进行处理的相关信息封装在一起生成的。
在第六方面的第一种可能的实现方式中,所述接收模块接收到的映射信息中,所述逻辑Switch的多级流表中的第一级流表table0与所述主Switch对应。
根据第六方面或第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收模块,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收所述第一报文封装包;
所述处理模块,具体用于在确定出所述接收模块接收的第一报文封装包中的下一跳流表编号ID位于其它物理Switch中时,根据所述接收模块接收的映射信息将所述接收模块接收到的第一报文封装包转发给所述下一跳流表ID对应的物理Switch。
根据第六方面或第六方面的第一种可能的实现方式,在第三种可能的实现方式中,所述接收模块,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收到所述第一报文封装包;
所述处理模块,具体用于在确定出所述接收模块接收的第一报文封装包中的下一跳流表编号ID位于所述当前扩展Switch中时,对所述接收模块接收到的第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
根据第六方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理模块包括:解析单元,用于对所述接收模块接收到的第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata);
处理单元,用于根据所述解析单元获得的解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理。
根据第六方面的第三种可能的实现方式,在第五种可能的实现方式中,所述接收模块接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述处理模块包括:添加单元,用于将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;处理单元,通过所述table0’中添加的流表项对所述接收模块接收到的所述第一报文封装包进行对流水线环境的恢复。
根据第六方面的第五种可能的实现方式,在第六种可能的实现方式中,所述接收模块接收到的第一报文封装包中包括下一跳流表ID,所述接收模块接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,所述执行指令包括流表恢复指令和/或流表跳转指令;则所述处理单元,具体用于通过所述table0’中的流表项对所述接收模块接收到的第一报文封装包进行匹配;并在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述 已匹配的流表项中的流表恢复指令和/或流表跳转指令。
根据第六方面的第三种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述处理模块,还用于对所述接收模块接收到的第一报文封装包进行流水线环境的恢复之后,在获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理;则所述装置还包括:判断模块,用于根据所述映射信息判断下一跳流表的位置;
则所述处理模块,还用于在所述判断模块判断出所述下一跳流表位于所述当前扩展Switch中时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述处理模块,还用于在所述判断模块判断出所述下一跳流表位于其它扩展Switch中时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第六方面的第三种到第六种可能的实现方式中任意一项,在第八种可能的实现方式中,所述接收模块,还用于接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的所述下一跳流表是否位于所述当前扩展Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
则所述处理模块,还用于对所述接收模块接收到的第一报文封装包进行流水线环境的恢复之后,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第六方面的第七种或第八种可能的实现方式,在第九种可能的实现方式中,所述处理模块用于发起对流水线环境的保护,具体包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当 前对应的动作集(Action set)和流表间信息(Metadata)。
第七方面,本发明实施例提供一种控制器,与逻辑交换机Switch相连接,所述逻辑Switch包括至少两个物理Switch;所述控制器包括:
处理器,用于将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
发送器,用于发送映射信息,以使每个所述物理Switch获得所述映射信息,所述映射信息包括所述多级流表中各流表与所述物理Switch的映射关系;
所述发送器,还用于向所述逻辑Switch发送流表项,以使每个所述物理Switch获得与其对应的流表项,并根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息。
在第七方面的第一种可能的实现方式中,所述至少两个物理Switch包括主Switch和第一扩展Switch,其中,所述控制器至少与所述主Switch连接,所述第一扩展Switch至少与所述主Switch连接;
则所述发送器用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息;
所述发送器还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的流表项。
根据第七方面的第一种可能的实现方式,在第二种可能的实现方式中,所述物理Switch还包括第二扩展Switch,所述第二扩展Switch至少与所述第一扩展Switch连接;
则所述发送器用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息,并且所述第二扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的映射信息;
所述发送器还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与所述主Switch对应的流表项以及与所述第一扩展Switch和/或所述第二扩展Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的与所述第一扩展Switch对应的流表项,并且使得所述第二扩展Switch接收到的流表项包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的与所述第二扩展Switch对应的流表项。
根据第七方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述处理器为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0,使得所述主Switch在接收到所述数据报文时通过所述table0对所述数据报文进行处理。
根据第七方面、第七方面的第一种和第二种可能的实现方式中任意一项,在第四种可能的实现方式中,所述发送器还用于向所述逻辑Switch发送流表项,具体包括:向所述逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对所述数据报文进行处理,并根据所述发送器发送的映射信息判断下一跳流表的是否位于所述当前物理Switch中,若是,则将所述数据报文跳转到所述下一跳流表继续进行处理,若否,则发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
根据第七方面,第七方面的第一种和第二种可能的实现方式中任意一项,在第五种可能的实现方式中,所述发送器还用于向所述逻辑Switch发送流表项,具体包括:在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;若是,则向所述当前物理Switch发送包含所述流表跳转指令的流表项,使得所述当前物理Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;若否,则将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前物理Switch发送包含所述Switch转发指令的流表项,使得所述当前物理Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
根据第七方面的第四种和第五种可能的实现方式,在第六种可能的实现方式中,所述对流水线环境的保护为所述当前物理Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第七方面的第四种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述对流水线环境的保护,用于使得所述下一跳流表对应的物理Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
根据第七方面的第四种到第六种可能的实现方式中任意一项,在第八种可能的实现方式中,所述发送器发送的与所述扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则所述发送器,还用于向所述扩展Switch发送所述用于进行流水线恢复的流表项,使得所述扩展Switch将所述流表项添加到所述扩展Switch的第一级流表table0’中,并在接收到所述报文封装包时,通过所述table0’中添加的流表项进行对流水线环境的恢复。
根据第七方面的第八种可能的实现方式,在第九种可能的实现方式中,所述报文封装包中包括下一跳流表ID,所述发送器发送的用于进行流水线恢复的流表项包括匹配部分和执行指令,所述匹配部分用于所述扩展Switch将所述下一跳流表ID作为所述流表项对应的匹配对象,所述执行指令包括流表恢复指令和/或流表跳转指令;
则所述对流水线环境的恢复为所述扩展Switch通过所述table0’中的流表项对其接收到的报文封装包进行匹配,在所述下一跳流表ID与所述table0’中的流表项匹配时,根据匹配结果顺序执行所述已匹配的流表项中的所述流表恢复指令和/或所述流表跳转指令。
第八方面,本发明实施例提供一种主交换机,所述主交换机Switch为与控制器相连接的逻辑Switch中的物理Switch,其中,所述逻辑Switch包括至少两个物理Switch,所述至少两个物理Switch包括所述主Switch和扩展 Switch,所述控制器至少与所述主Switch连接;所述主交换机包括:
接收器,用于接收所述控制器发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
所述接收器,还用于接收所述控制器发送的流表项,所述接收器接收到的流表项为所述控制器为所述主Switch分配的,或者所述控制器为主Switch和所述扩展Switch分配的流表集合中各流表的内容信息;
处理器,用于根据所述接收器接收的流表项、或者根据所述接收器接收的流表项和映射信息对所述主Switch接收到的数据报文进行处理。
在第八方面的第一种可能的实现方式中,还包括:发送器,还用于在所述接收器接收所述控制器发送的映射关系之后,向与其连接的扩展Switch发送所述映射信息;
所述发送器,还用于在所述接收器接收所述控制器发送的流表项之后,向与其连接的扩展Switch发送所述控制器分配的流表项。
根据第八方面或第八方面的第一种可能的实现方式,在第二种可能的实现方式中,所述主Switch所属的逻辑Switch中,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
所述发送器用于向与其连接的扩展Switch发送所述映射信息,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
所述发送器还用于向与其连接的扩展Switch发送所述控制器分配的流表项,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项,以使所述扩展Switch根据与其对应流表项和所述映射信息对接收到的数据报文进行处理。
根据第八方面、第八方面的第一种和第二种可能的实现方式中任意一项,在第三种可能的实现方式中,所述接收器接收到的映射信息包括所述控制器为主Switch分配的流表,所述流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;则所述处理器,具体用于根据所述接收器接收的流表项、或者根据所述接收器接收的流表项和映射信息,通过所述table0对所述接收到的数据报文进行处理。
根据第八方面、第八方面的第一种到第三种可能的实现方式中任意一项, 在第四种可能的实现方式中,所述处理器包括:具体用于在接收到数据报文时,对所述数据报文进行处理;并根据所述接收器接收的映射信息判断下一跳流表是否位于所述主Switch中,若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理,若否,则发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第八方面、第八方面的第一种到第三种可能的实现方式中任意一项,在第五种可能的实现方式中,所述接收器还用于接收所述控制器发送的流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的下一跳流表是否位于所述主Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
则所述处理器,具体用于在接收到的所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
所述处理器,具体用于在接收到的所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第八方面的第四种或第五种可能的实现方式,在第六种可能的实现方式中,所述处理器发起对流水线环境的保护,包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第八方面的第四种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述对流水线环境的保护,用于使得所述下一跳流表对应的扩展Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
第九方面,本发明实施例提供一种扩展交换机,所述扩展交换机Switch 为与控制器相连接的逻辑Switch中的物理Switch,其中,所述逻辑Switch包括多个物理Switch,所述多个物理Switch包括主Switch和所述扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述控制器至少与所述主Switch连接,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;所述扩展交换机包括:
接收器,用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
所述接收器,还用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与当前扩展Switch对应的流表项,所述接收器接收到的流表项为所述控制器为所述当前扩展Switch分配的流表集合中各流表的内容信息;
处理器,用于根据所述接收器接收的流表项、或者根据所述接收器接收的流表项和映射信息对所述当前扩展Switch接收到的第一报文封装包进行处理,所述第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对所述数据报文进行处理的相关信息封装在一起生成的。
在第九方面的第一种可能的实现方式中,所述接收器接收到的映射信息中,所述逻辑Switch的多级流表中的第一级流表table0与所述主Switch对应。
根据第九方面或第九方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收器,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收所述第一报文封装包;
所述处理器,具体用于在确定出所述接收器接收的第一报文封装包中的下一跳流表编号ID位于其它物理Switch中时,根据所述接收器接收的映射信息将所述接收器接收到的第一报文封装包转发给所述下一跳流表ID对应的物理Switch。
根据第九方面或第九方面的第一种可能的实现方式,在第三种可能的实现方式中,所述接收器,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收到所述第一报文封装包;
所述处理器,具体用于在确定出所述接收器接收的第一报文封装包中的下一跳流表编号ID位于所述当前扩展Switch中时,对所述接收器接收到的第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
根据第九方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器,具体用于对所述接收器接收到的第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata);并根据所述解析信息进行流水线环境的恢复,将所述数据报文跳转到下一跳流表中继续进行处理。
根据第九方面的第三种可能的实现方式,在第五种可能的实现方式中,所述接收器接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述处理器,具体用于将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;并通过所述table0’中添加的流表项对所述接收器接收到的第一报文封装包进行对流水线环境的恢复。
根据第九方面的第五种可能的实现方式,在第六种可能的实现方式中,所述接收器接收到的第一报文封装包中包括下一跳流表ID,所述接收器接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,所述执行指令包括流表恢复指令和/或流表跳转指令;
则所述处理器用于通过所述table0’中添加的流表项对所述接收器接收到的所述第一报文封装包进行对流水线环境的恢复,具体包括:通过所述table0’中的流表项对所述接收器接收到的第一报文封装包进行匹配;并在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复指令和/或流表跳转指令。
根据第九方面的第三种到第六种可能的实现方式中任意一项,在第七种可能的实现方式中,所述处理器,还用于对所述接收器接收到的第一报文封装包进行流水线环境的恢复之后,在获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理;
则所述处理器,还用于根据所述映射信息判断下一跳流表是否位于所述当前扩展Switch中;若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理;若否,则发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第九方面的第三种到第六种可能的实现方式中任意一项,在第八种可能的实现方式中,所述接收器,还用于接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的所述下一跳流表是否位于所述当前扩展Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
则所述处理器,还用于对所述接收器接收到的第一报文封装包进行流水线环境的恢复之后,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第九方面的第七种或第八种可能的实现方式,在第九种可能的实现方式中,所述处理器用于发起对流水线环境的保护,具体包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
第十方面,本发明实施例提供一种交换机处理系统,包括:控制器和逻辑Switch,所述逻辑Switch包括至少两个物理Switch,所述系统包括:
所述控制器,用于将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
所述控制器,还用于发送映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
每个所述物理Switch,用于接收所述映射信息;
所述控制器,还用于向所述逻辑Switch发送流表项;
每个所述物理Switch,还用于接收所述流表项,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息;
每个所述物理Switch,还用于根据所述流表项、或者根据所述的流表项 和所述映射信息对其接收的数据报文进行处理。
在第十方面的第一种可能的实现方式中,所述至少两个物理Switch包括主Switch和扩展Switch,其中,所述控制器至少与所述主Switch连接,所述扩展Switch至少与所述主Switch连接;
则所述控制器用于发送映射信息,具体包括:至少向所述主Switch发送映射信息;
所述主Switch,还用于在接收到所述控制器发送的映射关系之后,向与其连接的扩展Switch发送所述映射信息;
则所述控制器还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项;
所述主Switch,还用于在接收到所述控制器发送的流表项之后,向与其连接的扩展Switch发送所述控制器分配的流表项。
根据第十方面或第十方面的第一种可能的实现方式,在第二种可能的实现方式中,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
所述主Switch用于向与其连接的扩展Switch发送所述映射信息,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
所述主Switch用于向与其连接的扩展Switch发送所述控制器分配的流表项,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项。
根据第十方面的第二种可能的实现方式,在第三种可能的实现方式中,每个所述扩展Switch用于接收所述映射信息,具体包括:所述第一扩展Switch,用于接收所述控制器和/或所述主Switch发送的映射信息;所述第二扩展Switch,用于接收所述控制器和/或主Switch和/或所述第一扩展Switch发送的映射信息;
每个所述扩展Switch用于接收所述流表项,具体包括:所述第一扩展Switch,用于接收所述控制器和/或所述主Switch发送的流表项;所述第二扩 展Switch,用于接收所述控制器和/或主Switch和/或所述第一扩展Switch发送的流表项。
根据第十方面、第十方面的第一种到第三种可能的实现方式中任意一项,在第四种可能的实现方式中,所述控制器为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;
则所述主Switch用于对其接收的数据报文进行处理,具体包括:根据所述流表项、或者根据所述流表项和所述映射信息,通过所述table0对接收到的所述数据报文进行处理。
根据第十方面、第十方面的第一种到第四种可能的实现方式中任意一项,在第五种可能的实现方式中,所述主Switch对其接收的数据报文进行处理,具体包括:在接收到所述数据报文时,对所述数据报文进行处理;并根据所述映射信息判断下一跳流表是否位于所述主Switch中,若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理,若否,则发起对流水线环境的保护以生成第一报文封装包,并将所述第一报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第十方面、第十方面的第一种到第四种可能的实现方式中任意一项,在第六种可能的实现方式中,所述控制器用于向主Switch发送流表项,具体包括:在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述主Switch中;若是,则向所述主Switch发送包含所述流表跳转指令的流表项;若否,则将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述主Switch发送包含所述Switch转发指令的流表项;
相应地,所述主Switch用于接收流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项;
则所述主Switch用于对其接收的数据报文进行处理,具体包括:在接收到的所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;在接收到的所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第一报文封装包,并将所述第一报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第十方面的第五种或第六种可能的实现方式,在第七种可能的实现 方式中,所述主Switch用于发起对流水线环境的保护,具体包括:所述主Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第一报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
根据第十方面、第十方面的第一种到第七种可能的实现方式中任意一项,在第八种可能的实现方式中,所述当前扩展Switch,还用于在接收到与其对应的流表项之后,接收所述第一报文封装包;
所述当前扩展Switch,还用于判断所述第一报文封装包中的下一跳流表编号ID是否位于所述当前扩展Switch,若否,则根据所述映射信息将所述第一报文封装包转发给所述下一跳流表ID对应的物理Switch,若是,则对所述第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
根据第十方面的第八种可能的实现方式,在第九种可能的实现方式中,所述当前扩展Switch用于对所述第一报文封装包进行流水线环境的恢复,具体包括:对所述第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息;并根据所述解析信息进行流水线环境的恢复,将所述数据报文跳转到下一跳流表中继续进行处理。
根据第十方面的第八种可能的实现方式,在第十种可能的实现方式中,所述当前扩展Switch接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述当前扩展Switch,还用于将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;并通过所述table0’中添加的流表项对所述第一报文封装包进行对流水线环境的恢复。
根据第十方面的第十种可能的实现方式,在第十一种可能的实现方式中,所述当前扩展Switch接收到的所述第一报文封装包中包括下一跳流表ID,所述当前扩展Switch接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,所述执行指令包括流表恢复指令和/或流表跳转指令;
则所述当前扩展Switch用于通过所述table0’中添加的流表项对所述第一报文封装包进行对流水线环境的恢复,具体包括:通过所述table0’中的流表项对所述接收器接收到的第一报文封装包进行匹配;并在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复 指令和/或流表跳转指令。
根据第十方面的第八种到第十一种可能的实现方式中任意一项,在第十二种可能的实现方式中,所述当前扩展Switch,还用于对所述第一报文封装包进行流水线环境的恢复之后,在获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理;
则所述当前扩展Switch,还用于根据所述映射信息判断下一跳流表是否位于所述当前扩展Switch中;若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理;若否,则发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第十方面的第八种到第十一种可能的实现方式中任意一项,在第十三种可能的实现方式中,所述控制器用于向当前扩展Switch发送流表项,具体包括:在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前扩展Switch中;若是,则向所述当前扩展Switch发送包含所述流表跳转指令的流表项;若否,则将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前扩展Switch发送包含所述Switch转发指令的流表项;
相应地,所述当前扩展Switch用于接收流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项;
则所述当前扩展Switch,还用于对所述第一报文封装包进行流水线环境的恢复之后,获取到所述第一报文封装包中的数据报文,并通过所述当前流表对所述获取的数据报文进行处理。
根据第十方面的第十三种可能的实现方式,在第十四种可能的实现方式中,所述当前扩展Switch用于对所述获取的数据报文进行处理,具体包括:在所述获取的数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,在所述获取的数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
根据第十方面的第十二种到第十四种可能的实现方式中任意一项,在第十五种可能的实现方式中,所述当前扩展Switch用于发起对流水线环境的保 护,具体包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
本发明所提供的交换机处理方法、控制器、交换机及交换机处理系统,由控制器和逻辑Switch执行该交换机处理方法,该逻辑Switch包括至少两个物理Switch,通过控制器将逻辑Switch的多级流表中各流表分配给每个物理Switch,并发送映射信息和流表项,使得每个物理Switch获取映射信息和与其对应的流表项,进而使得每个物理Switch可以根据获取的流表项和映射关系,或者根据流表项对接收到的数据报文进行处理;用于执行本发明提供的交换机处理方法的交换机处理系统,可以在该逻辑Switch物理结构的基础上堆叠新的物理Switch,有利于保持现有网络拓扑的稳定性,提高了逻辑Switch的处理能力,降低了对网络运行的影响和扩容的成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的一种交换机处理方法的流程图;
图2为图1所示实施例所提供的一种应用场景的示意图;
图3为图1所示实施例所提供的另一种应用场景的示意图;
图4为图1所示实施例所提供的又一种应用场景的示意图;
图5为本发明实施例二所提供的一种交换机处理方法的流程图;
图6为本发明实施例所提供的另一种交换机处理方法的流程图;
图7为本发明实施例三所提供的一种交换机处理方法的流程图;
图8为本发明实施例四所提供的一种交换机处理方法的流程图;
图9为本发明实施例五所提供的一种交换机处理方法的流程图;
图10为本发明实施例所提供的又一种交换机处理方法的流程图;
图11为本发明实施例六所提供的一种交换机处理方法的流程图;
图12为本发明实施例七所提供的一种交换机处理装置的结构示意图;
图13为本发明实施例所提供的另一种交换机处理装置的结构流程图;
图14为本发明实施例八所提供的一种交换机处理装置的结构示意图;
图15为本发明实施例所提供的又一种交换机处理装置的结构示意图;
图16为本发明实施例九所提供的一种交换机处理装置的结构示意图;
图17为本发明实施例所提供的再一种交换机处理装置的结构示意图;
图18为本发明实施例所提供的一种控制器的结构示意图;
图19为本发明实施例所提供的一种主交换机的结构示意图;
图20为本发明实施例所提供的一种扩展交换机的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的交换机处理方法具体可以应用于网络中的逻辑Switch的流水线所支持的流表级数和其所能处理的流表项的规模需要进行扩展的情况,具体的,本发明实施例提供的交换机处理方法可以通过控制器对多个物理Switch分配多级流表中的各流表,该多个物理Switch应被视为一个逻辑Switch,从而实现该逻辑Switch的流水线所支持较多的流表级数,和/或,可以处理的较大规模的流表项。本实施例提供的交换机处理方法具体可以通过交换机处理系统来执行,该交换机处理系统中包括控制器和多个物理Switch,控制器和每个物理Switch中可以集成有数据处理装置,该数据处理装置可以采用软件和/或硬件的方式来实现。以下对本实施例提供的交换机处理方法进行详细地说明。
实施例一
图1为本发明实施例一所提供的一种交换机处理方法的流程图。本实施例提供的交换机处理方法通过控制器和逻辑Switch来执行,该逻辑Switch至少包括两个物理Switch,如图1所示,本实施例的方法具体包括以下步骤:
S110,控制器将逻辑Switch的多级流表中各流表分配给每个物理Switch,该多级流表为逻辑Switch的流水线。
S120,控制器发送映射信息,以使每个物理Switch获得映射信息,该映射信息包括多级流表中各流表与各物理Switch的映射关系。
在本实施例中,逻辑Switch由至少两个物理Switch组成,因此,控制器需要将多级流表中的各流表分别给不同的物理Switch来承担,还需要将各流表与每个物理Switch的映射关系下发给所述参与处理的物理Switch,使得每个物理Switch在通过分配到的当前流表对接收到的数据报文进行处理后,可以将数据报文转发到后续流表或其它物理Switch中继续进行处理。
S130,控制器向逻辑Switch发送流表项,以使各物理Switch获得与其对应的流表项,并根据流表项、或者根据流表项和映射信息对接收到的数据报文进行处理,该流表项为控制器为各物理Switch分配的流表集合中各流表的内容信息。
在本实施例中,控制器向每个物理Switch分配多级流表中的各流表,并下发映射关系之后,需要将与物理Switch被分配到的流表对应的流表项下发给每个物理Switch,每个物理Switch接收到的流表项具体为控制器为其分配的流表集合中各流表的内容信息,例如包括匹配部分(Match Fields)、优先级(Priority)、统计数据(Counters)、指令(Instructions)、老化时间(Timeouts)和流表关联值(Cookie),以使每个物理Switch将接收到的流表项填充到与之对应的流表中,在物理Switch获知被分配到的流表、映射关系和各流表中的流表项后,可以对接收到的数据报文进行处理。
举例来说,图2为图1所示实施例所提供的一种应用场景的示意图,图2所示场景中,逻辑Switch包括两个物理Switch,物理Switch具体包括主Switch和第一扩展Switch,其中,控制器至少与主Switch连接,第一扩展Switch至少与主Switch连接,在图2所示构架中,控制器发送映射信息和流表项的方式可以为:其一、控制器直接将映射信息和与每个物理Switch对应的流表项分别发送到相应地物理Switch中,即控制器需要与每个物理Switch相连接,对应图2中实线所示的连接关系;其二、控制器将映射信息和所有流表项均发送到主Switch中,因此,主Switch接收到的流表项不仅包括与主Switch对应的流表项,还包括与第一扩展Switch对应的流表项,并由主Switch 将映射信息和与第一扩展Switch对应的流表项发送给该第一扩展Switch,在该发送方式中,第一扩展Switch可以仅与主Switch相连接,对应图2中虚线所示的连接关系。通常地,控制器的发送映射信息和流表项的方式可以包括上述两种情况,即各物理Switch与控制器的连接关系满足上述任意条件。
再举例来说,图3为图1所示实施例所提供的另一种应用场景的示意图,图3所示场景中,逻辑Switch包括三个物理Switch,物理Switch包括主Switch、第一扩展Switch和第二扩展Switch,主Switch和第一扩展Switch的连接方式与图2所示场景类似,并且第二扩展Switch至少与第一扩展Switch连接,在图3所示构架中,控制器发送映射信息和流表项的方式可以为:其一、控制器直接将映射信息和与每个物理Switch对应的流表项发送到相应地物理Switch中,即,控制器需要与每个物理Switch相连接,对应图3中实线“1”所示的连接关系;其二、控制器将映射信息和所有流表项均发送到主Switch中,即主Switch接收到的流表项不仅包括与主Switch对应的流表项,还包括与其它扩展Switch对应的流表项,进而由主Switch将映射信息和与其它物理Switch对应的流表项发送给相应的物理Switch,在该发送方式中,控制器仅与主Switch相连接,第一扩展Switch和第二扩展Switch均与主Switch相连接,对应图3中实线“2”所示的连接关系;其三、控制器将映射信息和所有流表项均发送到主Switch中,由主Switch将映射信息和与其它物理Switch对应的流表项仅发送给第一扩展Switch,第一扩展Switch接收到的流表项不仅包括与该第一扩展Switch对应的流表项,还包括与第二扩展Switch对应的流表项,进而,由该第一扩展Switch映射信息和与第二扩展Switch对应的流表项发送给相应的第二扩展Switch,在该发送方式中,控制器和第一扩展Switch与主Switch相连接,第二扩展Switch仅与第一扩展Switch相连接,对应图3中实线“3”所示的连接关系;其四、控制器还可以向主Switch发送映射信息和与主Switch对应的流表项,并向第一扩展Switch发送映射信息和与所有扩展Switch对应的流表项,进而由第一扩展Switch向第二扩展Switch发送映射信息和与该第二扩展Switch对应的流表项,在该发送方式中,第一扩展Switch和主Switch都与控制器相连接,第二扩展Switch仅与第一扩展Switch相连接,对应图3中实线“4”所示的连接关系。另外,控制器还可以先向扩展Switch发送映射信息和流表项,例如控制器具体向第一扩展Switch发送映射信息和 流表项,流表项中包括与主Switch对应的流表项和与扩展Switch对应的流表项,由第一扩展Switch向主Switch转发映射关系和与其对应的流表项,第二扩展Switch接收的映射信息可以是控制器和/或第一扩展Switch发送的,在该发送方式中,第一扩展Switch与控制器和主Switch相连接,第二扩展Switch与第一扩展Switch和/或控制器连接。通常地,控制器的发送映射信息和流表项的方式可以包括上述情况中的多种,即各物理Switch与控制器的连接关系满足上述任意条件。本发明提供的交换机处理方法并不限制控制器发送映射信息和流表项的具体过程,只要是可以实现每个物理Switch都接收到映射信息和与其对应的流表项的发送方法,都可以应用于本发明实施例提供的交换机处理方法中。
需要说明的是,图2和图3也为本发明实施例提供的交换机处理系统的结构示意图,在该系统中,主Switch是网络中确定的与控制器相连接的交换机,并且,控制器为主Switch分配的流表至少包括逻辑Switch的多级流表中的第一级流表(table0),使得主Switch在接收到数据报文时首先通过table0对数据报文进行处理,其它物理Switch依据与主Switch,以及与上级和下级物理Switch的连接关系执行映射信息和流表项的接收和转发。
现有技术中,在运营商需要对设置在网络节点中的Switch进行功能或性能方面的扩容时,由于受Switch硬件能力的限制,因此只能更换现有网络中的已固化的Switch,使得网络扩容的成本较高。相比之下,在本实施例中,由于逻辑Switch并非一个固化的物理Switch,而是由多个物理Switch通过堆叠的方式组成的,在网络容量扩大、业务流量增多,或者需要该逻辑Switch完成更为复杂的逻辑处理功能时,运营商依然能够持续使用目前已有的物理Switch,通过将多个已有的物理Switch堆叠形成新的逻辑Switch,以实现扩容的目的,因此,无需淘汰掉旧设备而购买更大容量的设备,充分保障了运营商对已有设备的投资,降低了扩容的开销。在具体实现中,由于原有设备和扩展设备构成的整体可以看作一个与原有设备在网络拓扑上完全等价的逻辑实体,使用这种方法在升级前后网络拓扑能够保持稳定,从而实现在SDN域内以低复杂度和高可靠性完成节点级别的平滑升级。具体地,本实施例提供的方法,首先可以扩展逻辑Switch中物理Switch的数量,从而拓展了逻辑Switch的处理能力,在现有逻辑Switch能支持的流表级数受限而无法处理复 杂逻辑时,扩容时所加入的物理Switch与现有物理Switch可以一起使用并构成新的逻辑Switch,即形成扩容后的逻辑Switch;进一步地,提高了扩容后逻辑Switch处理复杂逻辑的能力,在现有逻辑Switch的计算处理能力不足时,通过扩容后的逻辑Switch执行本实施例提供的交换机处理方法时,在提高计算处理能力的同时,可以保持现有网络拓扑以实现平滑升级,从而使扩容更容易实施,从而降低对网络运行的影响。
举例来说,当原有逻辑Switch支持的流表级数不足以处理新的业务逻辑,或者当要承载的业务流量大幅增加而导致原有逻辑Switch的计算资源不足时,可以通过增加新的物理Switch来实现逻辑功能的升级,并可以提高逻辑Switch的处理能力,实现逻辑Switch的性能升级。图4为图1所示实施例所提供的又一种应用场景的示意图,如图4所示,原有逻辑Switch包括Switch1、Switch2、Switch3和Switch4,其中,Switch1为主Switch,Switch2和Switch3为第一扩展Switch,Switch4为第二扩展Switch,原有逻辑Switch只能支持n级流表,当需要处理更复杂的逻辑时,可以将新增的Switch5以堆叠方式加入在Switch1和Switch2之间,与原有逻辑Switch一起构成能够支持n+m级流表的新的逻辑Switch,即Switch1~Switch5,并在网络拓扑中替代原有逻辑Switch,从而达到逻辑Switch功能升级的效果;图4中Switch间的实线为升级前存在的数据连接,虚线为升级后新添加的数据连接,控制器与扩展Switch间的连接关系以虚线示出。可以看出,逻辑在升级前后网络拓扑保持稳定,意味着升级过程将是非常平滑的,对运行网络的影响非常小,进而网络的可靠性也就非常有保障。类似地,当原有逻辑Switch,即Switch1~Switch4支持的流表级数n能够满足业务逻辑复杂度的需要,但随着其承载流量的增大而需要更大的处理能力时,可以将新增的Switch5以堆叠方式加入在Switch1和Switch2之间,并在网络拓扑中以Switch1~Switch5替代原有逻辑Switch,虽然升级后的逻辑Switch依然支持n级流表,但由于物理Switch的增加而实现了更大的计算处理能力,从而达到逻辑Switch性能升级的效果。需要说明的是,在图4所示的应用场景中,原有逻辑Switch例如也可以仅包括Switch1,在Switch1上堆叠Switch2以形成新的逻辑Switch。
本实施例所提供的交换机处理方法,由控制器和逻辑Switch执行,该逻辑Switch包括至少两个物理Switch,通过控制器将逻辑Switch的多级流表中 各流表分配给每个物理Switch,并发送映射信息和流表项,使得每个物理Switch获取映射信息和与其对应的流表项,进而使得每个物理Switch可以根据获取的流表项和映射关系,或者根据流表项对接收到的数据报文进行处理;用于执行本实施例提供的交换机处理方法的逻辑Switch,可以在该逻辑Switch物理结构的基础上堆叠新的物理Switch,有利于保持现有网络拓扑的稳定性,提高了逻辑Switch的处理能力,降低了对网络运行的影响和扩容的成本。
实施例二
图5为本发明实施例二所提供的一种交换机处理方法的流程图。本实施例提供的交换机处理方法通过控制器和逻辑Switch来执行,该逻辑Switch至少包括两个物理Switch,如图5所示,本实施例的方法具体包括以下步骤:
S210,控制器将逻辑Switch的多级流表中各流表分配给每个物理Switch,该多级流表为逻辑Switch的流水线。
S220,控制器发送映射信息,以使每个物理Switch获得映射信息,该映射信息包括多级流表中各流表与各物理Switch的映射关系。
具体地,S210~S220的实现方式参照实施例一中S110~S120。
S230,控制器向逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对数据报文进行处理,并根据映射信息确定下一跳流表的位置,在已确定的下一跳流表位于当前物理Switch中时,将数据报文跳转到下一跳流表继续进行处理,或者,在已确定的下一跳流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将该报文封装包发送到下一跳流表对应的物理Switch中。
在本实施例中,当前物理Switch在接收到数据报文并进行处理时,结合接收的映射信息确定对该数据报文进行处理的下一跳流表的位置,一方面,可能仍由当前物理Switch的流表进行处理,即可直接将数据报文跳转到该当前物理Switch的下一跳流表继续处理;另一方面,当前物理Switch发现数据报文需要由其它物理Switch继续处理时,需要进行对多级流表的流水线环境保护。本实施例提供的方法具体为Switch控制的流水线环境的保护,由Switch决策、发起和执行,控制器在下发流表项时无需考虑各流表是否位于相同的物理switch中,具体地,由当前物理Switch判断下一跳流表的位置,具体在 下一跳流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将生成的报文封装包发送到下一跳流表对应的物理Switch中。
可选地,在本实施例的另一种可能的实现方式中,如图6所示,为本发明实施例所提供的另一种交换机处理方法的流程图。具体为控制器控制的流水线环境的保护,由控制器进行决策,Switch直接执行相应指令即可,在上述图5所示方法的基础上,S220之后具体包括:S230,控制器在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于当前物理Switch中;若是,则执行S240,若否,则执行S250。
S240,控制器向当前物理Switch发送包含该流表跳转指令的流表项,使得当前物理Switch将数据报文跳转到下一跳流表中继续进行处理。
S250,控制器将待发送流表项中的流表跳转指令替换为Switch转发指令,并向当前物理Switch发送包含该Switch转发指令的流表项,使得当前物理Switch发起对流水线环境的保护以生成报文封装包,并将报文封装包发送到该下一跳流表对应的物理Switch中。
控制器通常通过Flow_Mod消息向Switch发送流表项,在本实施例中,流表跳转指令例如可以为“Goto_table”类型的指令,Switch转发指令例如可以为“转发至后续Switch”类型的指令,具体地,控制器发现需要发送的流表项中的执行指令包括“Goto_table”时,进行对下一跳流表位置的判断,具体判断下一跳流表是否位于当前物理Switch中;若是,则使用“Goto_table”指令,即控制器将包括“Goto_table”的流表项直接发送给当前物理Switch,若否,则使用“转发至后续Switch”指令,即控制器现将流表项中的“Goto_table”替换为“转发至后续Switch”,从而将替换指令后的流表项发送给当前物理Switch,该当前物理Switch根据流表项中的“转发至后续Switch”指令类型发起对流水线环境的保护。
需要说明的是,由于本实施例提供的方法由至少两个物理Switch执行,在处理数据报文并跳转到下一跳流表中时,与现有技术仅通过一个固定的物理Switch执行不同,为了数据报文的保密性,在不同的物理Switch间跳转数据报文,需要发起对流水线环境的保护。图5和图6中所示实施例,虽然控制方式不同,但是当前物理Switch对流水线环境的保护方式是相同的,具体为:当前物理Switch将对数据报文进行处理的相关信息和数据报文同时封装 于报文封装包中,其中,对数据报文进行处理的相关信息至少包括下一跳流表编号(Identity,简称为:ID),还选择性的包括任意数量的以下信息:输入端口(Ingress port)、数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
进一步地,在当前物理Switch执行了流水线环境的保护之后,将进行流水线环境保护生成的报文封装包发送至下一跳流表对应的物理Switch,相应地,该下一跳流表对应的物理Switch需要进行流水线环境的恢复,以获取数据报文,本实施例提供的方法由下一跳流表对应的物理Switch控制流水线环境的恢复,具体地,该物理Switch对接收到的报文封装包进行解析获得解析信息,该解析信息包括该数据报文和对该数据报文进行处理的相关信息,对数据报文进行处理的相关信息同样包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata,以根据该解析信息进行流水线环境的恢复,并将解析获取的数据报文跳转到下一跳流表中继续进行处理,跳转到下一跳流表的方法与上述实施例相同,故在此不再赘述。
可选地,在本实施例的另一种可能的实现方式中,可以由控制器控制流水线环境的恢复,对流水线环境的恢复可以在上述图5或图6所示实施例的基础上进行,本实施例以上述图6为基础为例予以示出,如图6所示,在S250之后还包括:
S260,控制器向扩展Switch发送用于进行流水线恢复的流表项,使得该扩展Switch将流表项添加到该扩展Switch的第一级流表table0’中,并在接收到报文封装包时,通过table0’中添加的流表项进行对流水线环境的恢复。需要说明的是,控制器发送流表项通常是预先发送的,本实施例中S250和S260没有明确的先后顺序,图6以S250在S260之前为例予以示出。
在本实施例中,扩展Switch通过接收到的由控制器发送的用于进行流水线环境恢复的流表项,执行对流水线环境的恢复,用于进行流水线恢复的流表项可以包括匹配部分和执行指令,报文封装包中的下一跳流表ID具体作为流表项匹配部分的匹配对象,该执行指令可以包括流表恢复指令和/或流表跳转指令,对流水线环境恢复的具体过程为:扩展Switch通过table0’中的流表项对其接收到的报文封装包进行匹配,在下一跳流表ID与table0’中的流表项匹配时,根据匹配结果顺序执行已匹配的流表项中的流表恢复指令和/或流表 跳转指令。举例来说,该扩展Switch接收到的报文封装包的下一跳流表ID等于逻辑流表3,则必然发生对应于逻辑流表3中的流表项能够匹配成功,根据Openflow协议的基本运作方式,匹配成功后该扩展Switch执行已匹配的流表项中的执行指令。
本实施例提供的交换机处理方法通过控制器和包括至少两个物理Switch的逻辑Switch执行,数据报文在不同物理Switch之间转发时,通过对流水线环境的保护和恢复实现数据报文在同一逻辑Switch的各物理Switch之间无缝地衔接处理,本实施例提供的交换机处理方法,具有与上述实施例相同的有益效果,故在此不再赘述。
实施例三
图7为本发明实施例三所提供的一种交换机处理方法的流程图。本实施例提供的交换机处理方法通过控制器和逻辑Switch来执行,与上述实施例类似地,该逻辑Switch至少包括至少两个物理Switch,其中,该至少两个物理Switch包括主Switch和扩展Switch,并且控制器至少与主Switch连接。如图7所示,本实施例的方法具体包括以下步骤:
S310,主Switch接收控制器发送的映射信息,该映射信息包括逻辑Switch的多级流表中各流表分别与该物理Switch的映射关系。
S320,主Switch接收控制器发送的流表项,主Switch接收到的流表项为控制器为主Switch分配的,或者控制器为主Switch和扩展Switch分配的流表集合中各流表的内容信息。
在本实施例中,控制器在将多级流表中的各流表分别给不同的物理Switch来承担时,逻辑Switch的多级流表中的第一级流表table0是必然分配给主Switch的。若扩展Switch仅与主Switch相连接,主Switch接收到映射信息之后,还可以向与其连接的扩展Switch发送该映射信息,类似地,主Switch接收到控制器发送的流表项之后,还可以向与其连接的扩展Switch发送控制器分配的流表项。与上述实施例类似地,本实施例中的扩展Switch也可以包括第一扩展Switch和第二扩展Switch,其中,主Switch至少与第一扩展Switch连接,第二扩展Switch至少与第一扩展Switch连接,映射信息和流表项的分发方式与上述实施例相同,与各物理Switch和控制器的连接关系相关,本实施例中各物理Switch与控制器的连接关系可以参考上述图2和图 3,故在此不再赘述。
S330,主Switch根据流表项、或者根据流表项和映射信息对接收到的数据报文进行处理。
在本实施例中,主Switch获取到控制器发送的映射信息,即获知了该主Switch被分配的流表,也获知了其它各物理Switch被分配的流表,并将接收到的流表项填充在对应的流表中,流表项的内容与上述实施例类似,进而根据已接收的流表项,或者流表项和映射信息对数据报文进行处理,由于主Switch包括逻辑Switch的多级流表中的table0,因此,对数据报文的处理具体从该table0开始。需要说明的是,本实施例中,主Switch接收到的数据报文通常可以为外部节点(Host),例如为可以与主Switch相互访问的计算机发送的。
本实施例所提供的交换机处理方法,由控制器和逻辑Switch执行,构成该逻辑Switch的物理Switch至少包括主Switch和扩展Switch,主Switch通过控制器发送的映射信息和流表项对接收到的数据报文进行处理,其中主Switch接收到的流表项可以为控制器为该主Switch分配的流表项,还可以为控制器为主Switch和扩展Switch分配的流表项,在此分发方式中,主Switch还可以向扩展Switch发送映射信息和与扩展Switch对应的流表项,最终使得每个物理Switch获取到控制器发送的映射信息和与之对应的流表项,进而使得扩展Switch也可以根据获取的流表项和映射关系,或者根据流表项对接收到的数据报文进行处理;用于执行本实施例提供的交换机处理方法的逻辑Switch,可以在该逻辑Switch物理结构的基础上堆叠新的物理Switch,有利于保持现有网络拓扑的稳定性,提高了逻辑Switch的处理能力,降低了对网络运行的影响和扩容的成本。
实施例四
图8为本发明实施例四所提供的一种交换机处理方法的流程图。本实施例提供的交换机处理方法通过控制器和逻辑Switch来执行,与上述实施例类似地,该逻辑Switch至少包括主Switch和扩展Switch,如图8所示,本实施例的方法具体包括以下步骤:
S410,主Switch接收控制器发送的映射信息,该映射信息包括逻辑Switch的多级流表中各流表分别与该物理Switch的映射关系。
S420,主Switch接收控制器发送的流表项,主Switch接收到的流表项为控制器为主Switch分配的,或者控制器为主Switch和扩展Switch分配的流表集合中各流表的内容信息。
具体地,S410~S420的实现方式参照实施例二中S310~S320。
S430,主Switch在接收到数据报文时,通过table0对该数据报文进行处理。如上述实施例所述的,由于主Switch包括逻辑Switch的多级流表中的第一级流表table0,因此,主Switch对数据报文的处理具体从该table0开始。
S440,主Switch根据映射信息判断下一跳流表是否位于主Switch中;若是,则执行S450,若否,则执行S460。
S450,主Switch将数据报文跳转到下一跳流表中继续进行处理;
S460,主Switch发起对流水线环境的保护以生成报文封装包,并将该报文封装包发送到下一跳流表对应的扩展Switch中。
在本实施例中,主Switch在接收到数据报文并进行处理时,结合接收的映射信息确定对该数据报文进行处理的下一跳流表的位置,一方面,在下一跳流表位于主Switch中时,仍由该主Switch中的流表进行处理,即可直接将数据报文跳转到该主Switch的下一跳流表中继续处理;另一方面,主Switch发现数据报文需要由扩展Switch继续处理时,即主Switch判断出下一跳流表的位于扩展Switch中时,需要进行对多级流表的流水线环境保护以生成报文封装包,并将生成的报文封装包发送到下一跳流表对应的物理Switch中。本实施例提供的方法为主Switch控制的流水线环境的保护,具体由主Switch决策、发起和执行,控制器在下发流表项时无需考虑各流表是否位于相同的物理switch中。
可选地,在本实施例的另一种可能的实现方式中,可以由控制器控制流水线环境的保护,具体由控制器进行决策,主Switch直接执行相应指令即可,在上述图7所示实施例的基础上,S320替换为:主Switch接收控制器发送的包括流表跳转指令或Switch转发指令的流表项,该流表项中的流表跳转指令或Switch转发指令为控制器根据该流表项中的下一跳流表是否位于主Switch中确定的,若是,该流表项中包括流表跳转指令,若否,该流表项中包括Switch转发指令。相应地,S330替换为:主Switch接收数据报文,在该数据报文匹配到的流表项中包括流表跳转指令时,将该数据报文跳转到下一跳流表中继 续进行处理;或者,主Switch接收数据报文,在该数据报文匹配到的流表项中包括Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将该报文封装包发送到下一跳流表对应的扩展Switch中。本实施例中控制器发送流表项的方式,以及控制器在流表项中包括例如为“Goto_table”类型的指令时,对下一跳流表位置的判断和后续的处理方式均与上述实施例类似,故在此不再赘述。
需要说明的是,由于本实施例提供的方法由包括主Switch和扩展Switch的逻辑Switch执行,在主Switch将处理数据报文跳转到扩展Switch中时,与现有技术仅通过一个固定的物理Switch的执行方式不同,为了数据报文的保密性,主Switch将数据报文跳转到扩展Switch中前,需要发起对流水线环境的保护。在具体实现中,主Switch将对数据报文进行处理的相关信息和数据报文同时封装于报文封装包中,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata。
进一步地,在主Switch执行了流水线环境的保护之后,将进行流水线环境保护生成的报文封装包发送至下一跳流表对应的扩展Switch,相应地,该扩展Switch需要进行流水线环境的恢复,以获取数据报文,本实施例提供的方法由扩展Switch控制流水线环境的恢复,具体地,该扩展Switch对接收到的报文封装包进行解析获得解析信息,该解析信息包括该数据报文和对该数据报文进行处理的相关信息,对数据报文进行处理的相关信息同样包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata,以根据该解析信息进行流水线环境的恢复,并将解析获取的数据报文跳转到下一跳流表中继续进行处理,将数据报文跳转到下一跳流表的方法与上述实施例相同,故在此不再赘述。类似地,对流水线环境的恢复还可以为控制器控制的方式实现,具体实现方式与上述实施例相同,由于本实施例为以主Switch作为执行主体的实施方式,主Switch执行的处理不涉及对流水线环境的恢复,故在此不再赘述。
本实施例提供的交换机处理方法通过由主Switch和扩展Switch构成的逻辑Switch和控制器来执行,由主Switch将数据报文向扩展Switch转发时,通过主Switch对流水线环境的保护和扩展Switch对流水线环境的恢复实现数 据报文在同一逻辑Switch的各物理Switch之间无缝地衔接处理,本实施例提供的交换机处理方法,具有与上述实施例相同的有益效果,故在此不再赘述。
实施例五
图9为本发明实施例五所提供的一种交换机处理方法的流程图。本实施例提供的交换机处理方法通过控制器和逻辑Switch来执行,与上述实施例类似地,该逻辑Switch至少包括多个物理Switch,其中,该多个物理Switch包括主Switch和扩展Switch,该扩展Switch包括第一扩展Switch和第二扩展Switch,并且控制器至少与主Switch连接,主Switch至少与第一扩展Switch连接,第二扩展Switch至少与第一扩展Switch连接。如图9所示,本实施例的方法具体包括以下步骤:
S510,当前扩展Switch接收控制器和/或主Switch和/或其它扩展Switch发送的映射信息,该映射信息包括逻辑Switch的多级流表中各流表分别与物理Switch的映射关系。
S520,当前扩展Switch接收控制器和/或主Switch和/或其它扩展Switch发送的与该当前扩展Switch对应的流表项,该当前扩展Switch接收到的流表项为控制器为该当前扩展Switch分配的流表集合中各流表的内容信息。
本实施例可以由第一扩展Switch或者第二扩展Switch执行的,扩展Switch对控制器发送的映射信息和流表项的接收方式与上述实施例类似,即,当前扩展Switch接收到的映射信息和/流表项可以是由控制器直接发送的,也可以是由主Switch转发的,还可以是由其它扩展Switch转发的,也可是上述多种方式的结合。需要说明的是,控制器在将多级流表中的各流表分别给不同的物理Switch来承担时,逻辑Switch的多级流表中的第一级流表table0是必然分配给主Switch的,因此,扩展Switch接收到的映射信息中,逻辑Switch的多级流表中的table0具体与主Switch对应。本实施例中,映射信息和流表项的分发方式与上述实施例相同,与各物理Switch和控制器的连接关系相关,本实施例中各物理Switch与控制器的连接关系可以参考上述图3,故在此不再赘述。
S530,当前扩展Switch根据流表项、或者根据流表项和映射信息对接收到的第一报文封装包进行处理,该第一报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对数据报文进行处理的相关信息封装在一起 生成的。
在本实施例中,当前扩展Switch获取到控制器发送的映射信息和流表项后,具体对接收到的第一报文封装包进行处理,不同于图7和图8所示实施例中主Switch对数据报文的处理方式,由于当前扩展Switch接收到的第一报文封装包具体为上一跳流表所在的物理Switch执行流水线环境保护后所生成的,因此,当前扩展Switch接收到该第一报文封装包后的处理方式,通常包括直接转发给报文封装包中下一跳流表ID对应的物理Switch,或者对该第一报文封装包进行流水线环境的恢复,以获取数据报文。本实施例的具体实现方式如图10所示,为本发明实施例所提供的又一种交换机处理方法的流程图。在上述图9所示实施例的基础上,S520之后具体包括:
S530,当前扩展Switch接收到第一报文封装包。
S540,当前扩展Switch判断该第一报文封装包中的下一跳流表ID是否位于该当前扩展Switch中;若否,则执行S550,若是,则执行S560。
S550,当前扩展Switch根据映射信息将该第一报文封装包转发给下一跳流表ID对应的物理Switch;
S560,当前扩展Switch对第一报文封装包进行流水线环境的恢复,以获取数据报文。
在本实施例中,当前扩展Switch在接收到第一报文封装包并进行处理时,根据该第一报文封装包中的下一跳流表ID确定对其进行处理的方式,当前扩展Switch进行流水线环境的恢复,可以由当前扩展Switch控制流水线环境的恢复,即S560具体包括:当前扩展Switch对接收到的第一报文封装包进行解析获得解析信息,解析信息包括数据报文和对数据报文进行处理的相关信息,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata;进而当前扩展Switch根据该解析信息进行流水线环境的恢复,并将数据报文跳转到下一跳流表中继续进行处理,将数据报文跳转到下一跳流表的方法与上述实施例相同,故在此不再赘述。
可选地,在本实施例的另一种可能的实现方式中,还可以由控制器控制流水线环境的恢复,具体由控制器进行决策,Switch直接执行相应指令即可,在具体实现中,当前扩展Switch接收到的流表项包括控制器发送的用于进行 流水线恢复的流表项,相应地,在上述图10所示方法的基础上,S560包括:S561,当前扩展Switch将用于进行流水线恢复的流表项添加到该当前扩展Switch的第一级流表table0’中。
S562,当前扩展Switch通过table0’中添加的流表项对接收到的第一报文封装包进行对流水线环境的恢复。
在本实施中,第一报文封装包中包括下一跳流表ID,用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,该执行指令包括流表恢复指令和/或流表跳转指令;则S562具体包括:当前扩展Switch通过table0’中的流表项对第一报文封装包进行匹配;在table0’中的流表项匹配成功时,根据匹配结果顺序执行已匹配的流表项中的流表恢复指令和/或流表跳转指令。
进一步地,当前扩展Switch执行了流水线环境的恢复之后,可以继续对获取的数据报文进行处理,对数据报文的处理方式与上述实施例类似,同样可以结合映射信息确定对该数据报文进行处理的下一跳流表的位置,确定处理方式,具体地,在上述图10所示实施例的基础上,还包括:当前扩展Switch获取到数据报文时,通过当前流表对该数据报文进行处理,并根据映射信息判断下一跳流表的位置,一方面,在下一跳流表位于当前扩展Switch中时,仍由当前扩展Switch中的流表进行处理,即可直接将数据报文跳转到该下一跳流表中继续处理;另一方面,当前扩展Switch发现数据报文需要由其它扩展Switch继续处理时,即当前扩展Switch判断出下一跳流表的位于其它扩展Switch中时,需要进行对多级流表的流水线环境保护以生成第二报文封装包,并将生成的第二报文封装包发送到下一跳流表对应的扩展Switch中。本实施例提供的方法具体为当前扩展Switch控制的流水线环境的保护,由当前扩展Switch决策、发起和执行,控制器在下发流表项时无需考虑各流表是否位于相同的物理switch中。
可选地,与上述实施例类似,在本实施例的另一种可能的实现方式中,可以由控制器控制流水线环境的保护,由控制器进行决策,当前扩展Switch直接执行相应指令即可,在上述图10所示方法的基础上,还包括:当前扩展Switch接收控制器发送的包括流表跳转指令或Switch转发指令的流表项,该流表项中的流表跳转指令或Switch转发指令为控制器根据该流表项中的下一跳流表是否位于当前扩展Switch中确定的,若是,该流表项中包括流表跳转 指令,若否,该流表项中包括Switch转发指令。相应地,S560之后还包括:当前扩展Switch获取到第一报文封装包中的数据报文,在该数据报文匹配到的流表项中包括流表跳转指令时,将该数据报文跳转到下一跳流表中继续进行处理;或者,当前扩展Switch获取到第一报文封装包中的数据报文,在该数据报文匹配到的流表项中包括Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将该第二报文封装包发送到下一跳流表对应的扩展Switch中。本实施例中控制器发送流表项的方式,以及控制器在流表项中包括例如为“Goto_table”类型的指令时,对下一跳流表位置的判断和后续的处理方式均与上述实施例类似,故在此不再赘述。
需要说明的是,由于本实施例提供的方法通过包括当前扩展Switch的逻辑Switch和控制器来执行,在当前扩展Switch接收到报文封装包,或则将获取的数据报文跳转到其它扩展Switch中时,与现有技术仅通过一个固定的物理Switch的执行方式不同,为了实现数据报文在同一逻辑Switch的各物理Switch之间无缝地衔接处理,当前拓展需要发起对流水线环境的恢复和保护。本实施例提供的交换机处理方法,具有与上述实施例相同的有益效果,故在此不再赘述。
实施例六
图11为本发明实施例六所提供的一种交换机处理方法的流程图。本实施例提供的交换机处理方法通过控制器和逻辑Switch来执行,与上述实施例类似地,该逻辑Switch至少包括多个物理Switch,其中,该多个物理Switch包括主Switch和扩展Switch,该扩展Switch可以为多个,例如包括第一扩展Switch和第二扩展Switch,并且控制器至少与主Switch连接,主Switch至少与第一扩展Switch连接,第二扩展Switch至少与第一扩展Switch连接。如图11所示,本实施例的方法具体包括以下步骤:
S601,控制器将逻辑Switch的多级流表中各流表分配给每个物理Switch,该多级流表为逻辑Switch的流水线。
S602,控制器发送映射信息和流表项,该映射信息包括多级流表中各流表与各物理Switch的映射关系,流表项为控制器为每个物理Switch分配的流表集合中各流表的内容信息。
在本实施例中,主Switch接收到的流表项可以仅包括与主Switch对应的 流表项,还可以包括与每个物理Switch对应的流表项,在此情况中,本实施例提供的方法还包括:
S603,主Switch向与其连接的扩展Switch转发映射信息和控制器分配的流表项。需要说明的是,该步骤是可选项,具体与各物理Switch和控制器的连接方式相关。
在本实施例中,当前扩展Switch接收映射信息和流表项的方式,与上述发送方式是对应的,当前扩展Switch接收的映射信息和流表项可以为控制器直接发送的,也可以是主Switch转发的,还可以是其它扩展Switch转发的,也可是上述多种方式的结合。
需要说明的是,控制器在将多级流表中的各流表分别给不同的物理Switch来承担时,逻辑Switch的多级流表中的第一级流表table0是必然分配给主Switch的。本实施例中,映射信息和流表项的分发方式与上述实施例相同,与各物理Switch和控制器的连接关系相关,本实施例中各物理Switch与控制器的连接关系可以参考上述图3,故在此不再赘述。还需要说明的是,控制器对映射信息和流水项的发送,以及各物理Switch对映射信息和流水项的接收,通常为分别进行的,图11所示实施例的步骤中,仅示出映射信息和流水项的发送和接收的执行主体,并非说明映射信息和流水项是同时发送或同时接收的。
在本实施例中,主Switch在接收到数据报文后的处理方式具体可以为:
S604,主Switch接收到数据报文;主Switch接收到的数据报文通常可以为Host,例如为可以与主Switch相互访问的计算机发送的。
S605,主Switch通过table0对该数据报文进行处理。
S606,主Switch根据映射信息判断下一跳流表是否位于主Switch中;若是,则执行S607,若否,则执行S608。
S607,主Switch将数据报文跳转到下一跳流表中继续进行处理;
S608,主Switch发起对流水线环境的保护以生成第一报文封装包,并将该第一报文封装包发送到下一跳流表对应的扩展Switch中。
S605~S608所述的方式为主Switch控制的流水线环境的保护。
在本实施的另一种可能的实现方式中,由控制器控制对流水线环境的保护,具体地,主Switch接收到的流表项的包括流表跳转指令或Switch转发指 令,相应地,上述S605~S608替换为:
S609,控制器在发送给主Switch的流表项中包括流表跳转指令时,判断下一跳流表是否位于主Switch中;若是,则执行S610,若否,则执行S612。
S610,控制器向主Switch发送包含该流表跳转指令的流表项;
相应地,S611,主Switch将数据报文跳转到下一跳流表中继续进行处理。
S612,控制器将待发送流表项中的流表跳转指令替换为Switch转发指令;
S613,向主Switch发送包含该Switch转发指令的流表项;
相应地,S614,主Switch发起对流水线环境的保护以生成第一报文封装包;
S615,主Switch将第一报文封装包发送到该下一跳流表对应的扩展Switch中。
在本实施例中,主Switch将进行流水线环境保护后生成的第一报文封装包发送至当前扩展Switch中后,由该当前扩展Switch对该第一报文封装进行处理,具体包括;
S616,前扩展Switch判断该第一报文封装包中的下一跳流表ID是否位于该当前扩展Switch中;若否,则执行S617,若是,则执行S618。
S617,当前扩展Switch根据映射信息将该第一报文封装包转发给下一跳流表ID对应的其它扩展Switch;
S618,当前扩展Switch对第一报文封装包进行流水线环境的恢复,以获取数据报文。
在本实施例中,当前扩展Switch在接收到第一报文封装包并进行处理时,根据该第一报文封装包中的下一跳流表ID确定对其进行处理的方式,当前扩展Switch进行流水线环境的恢复,可以由当前扩展Switch控制流水线环境的恢复,即,S618替换为:当前扩展Switch对接收到的第一报文封装包进行解析获得解析信息,解析信息包括数据报文和对数据报文进行处理的相关信息,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata。
可选地,在本实施例的另一种可能的实现方式中,还可以由控制器控制流水线环境的恢复,在具体实现中,还包括:S619,当前扩展Switch接收控制器发送的用于进行流水线恢复的流表项;S620,当前扩展Switch将用于进 行流水线恢复的流表项添加到该当前扩展Switch的第一级流表table0’中;S621,当前扩展Switch通过table0’中添加的流表项对接收到的第一报文封装包进行对流水线环境的恢复。
在本实施中,第一报文封装包中包括下一跳流表ID,用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,该执行指令包括流表恢复指令和/或流表跳转指令;则S621具体包括:当前扩展Switch通过table0’中的流表项对第一报文封装包进行匹配;在table0’中的流表项匹配成功时,根据匹配结果顺序执行已匹配的流表项中的流表恢复指令和/或流表跳转指令。
进一步地,当前扩展Switch执行了流水线环境的恢复之后,可以继续对获取的数据报文进行处理,对数据报文的处理方式与上述实施例类似,同样可以结合映射信息确定对该数据报文进行处理的下一跳流表的位置,确定处理方式,具体地,本实施例提供的方法还包括:
S622,当前扩展Switch获取到数据报文,通过当前流表对该数据报文进行处理;
S623,当前扩展Switch映射信息判断对数据报文进行处理的下一跳流表的是否位于当前扩展Switch中;若是,则执行S624,若否,则执行S625。
S624,当前扩展Switch将数据报文跳转到所述下一跳流表中继续进行处理;
S625,当前扩展Switch发起对流水线环境的保护并生成第二报文封装包;
上述S623~S625所述的方式为当前扩展Switch控制的流水线环境保护的方式。
可选地,与上述实施例类似,在本实施例的另一种可能的实现方式中,可以由控制器控制的流水线环境的保护,当前扩展Switch接收到的流表项的包括流表跳转指令或Switch转发指令,在具体实现中,上述S623~S625替换为:
S626,控制器在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;若是,则执行S627,若否,则执行S629。
S627,控制器向当前扩展Switch发送包含该流表跳转指令的流表项;
相应地,S628,当前扩展Switch将数据报文跳转到下一跳流表中继续进行处理。
S629,控制器将待发送流表项中的流表跳转指令替换为Switch转发指令;
S630,控制器向当前扩展Switch发送包含该Switch转发指令的流表项。
相应地,本实施例提供的方法还包括:S631,当前扩展Switch发起对流水线环境的保护以生成第二报文封装包;
S632,当前扩展Switch将第二报文封装包发送到该下一跳流表对应的扩展Switch中继续进行处理。
需要说明的是,由于本实施例提供的方法通过控制器,由主Switch和扩展Switch构成的逻辑Switch来执行,在处理数据报文并跳转到下一跳流表中时,与现有技术仅通过一个固定的物理Switch的执行方式不同,为了数据报文的保密性,主Switch或当前扩展Switch将数据报文跳转到其它物理Switch中前,需要发起对流水线环境的保护。当前扩展Switch在接收到经过流水线环境保护的报文封包后,需要发起对流水线环境的恢复,以获取数据报文,类似地,当前扩展Switch向其它扩展Switch转发处理后的数据报文时,同样需要进行对流水线环境的保护。本实施例提供的交换机处理方法包括上述任一实施例所述的方法,具体实现方式与有益效果均与上述实施例相同,故在此不再赘述。
实施例七
图12为本发明实施例七所提供的一种交换机处理装置的结构示意图。该交换机处理装置应用于图2或图3所示的交换机处理系统中,具体设置于与逻辑Switch相连接的控制器中,如图2或图3所示,逻辑Switch包括至少两个物理Switch;设置于控制器中的装置具体包括:分配模块11和发送模块12。
其中,分配模块11,用于将逻辑Switch的多级流表中各流表分配给每个物理Switch,多级流表为逻辑Switch的流水线。
发送模块12,用于发送映射信息,以使每个物理Switch获得映射信息,映射信息包括多级流表中各流表与物理Switch的映射关系。
发送模块12,还用于向逻辑Switch发送流表项,以使每个物理Switch获得与其对应的流表项,并根据流表项、或者根据流表项和映射信息对接收到的数据报文进行处理,流表项为控制器为每个物理Switch分配的流表集合中各流表的内容信息。
本实施例中与控制器连接的逻辑Switch,其物理Switch包括主Switch和第一扩展Switch时,控制器与逻辑Switch中各物理Switch的连接关系如图2所示;本实施例中与控制器连接的逻辑Switch,其物理Switch还包括第二扩展Switch时,控制器与逻辑Switch中各物理Switch的连接关系如图3所示;控制器的发送映射信息和流表项的方式与上述实施例相同,包括多种发送方式及各种发送方式的结合使用。
需要说明的是,在图2和图3所示的交换机处理系统中,主Switch是网络中确定的与控制器相连接的交换机,并且,分配模块11为主Switch分配的流表至少包括逻辑Switch的多级流表中的第一级流表(table0),使得主Switch在接收到数据报文时首先通过table0对数据报文进行处理,其它物理Switch依据与主Switch,以及与上级和下级物理Switch的连接关系执行映射信息和流表项的接收和转发。
本发明实施例提供的交换机处理装置用于执行本发明图1所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
可选地,发送模块12还用于向逻辑Switch发送流表项,具体包括:向逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对数据报文进行处理,并根据发送模块12发送的映射信息确定下一跳流表的位置,在已确定的下一跳流表位于当前物理Switch中时,将数据报文跳转到下一跳流表继续进行处理,或者,在已确定的下一跳流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将报文封装包发送到下一跳流表对应的物理Switch中。本实施例提供的交换机处理装置在执行的流水线环境的保护时,由Switch决策、发起和执行,控制器在下发流表项时无需考虑各流表是否位于相同的物理switch中。
本发明实施例提供的交换机处理装置用于执行本发明图5所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
在本实施例的另一种可能的实现方式中,如图13所示,为本发明实施例所提供的另一种交换机处理装置的结构流程图。具体为控制器控制的流水线环境的保护,由控制器进行决策,Switch直接执行相应指令即可,在上述图 12所示装置的结构基础上,发送模块12包括:判断单元13,用于在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于当前物理Switch中;执行单元14,用于判断单元13确定出下一跳流表位于当前物理Switch中时,向当前物理Switch发送包含流表跳转指令的流表项,使得当前物理Switch将数据报文跳转到下一跳流表中继续进行处理;或者,执行单元14,用于判断单元确定出下一跳流表位于其它物理Switch中时,将待发送流表项中的流表跳转指令替换为Switch转发指令,并向当前物理Switch发送包含Switch转发指令的流表项,使得当前物理Switch发起对流水线环境的保护以生成报文封装包,并将报文封装包发送到下一跳流表对应的物理Switch中。
需要说明的是,上述实施例中,虽然发其对流水线环境的保护时的控制方式不同,但是当前物理Switch对流水线环境的保护方式是相同的,具体为:当前物理Switch将对数据报文进行处理的相关信息和数据报文同时封装于报文封装包中,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata。
进一步地,在当前物理Switch执行了流水线环境的保护之后,将进行流水线环境保护生成的报文封装包发送至下一跳流表对应的物理Switch,相应地,该下一跳流表对应的物理Switch需要进行流水线环境的恢复,以获取数据报文,本实施例提供的装置由下一跳流表对应的物理Switch控制流水线环境的恢复,具体地,该物理Switch对接收到的报文封装包进行解析获得解析信息,该解析信息包括该数据报文和对该数据报文进行处理的相关信息,以根据该解析信息进行流水线环境的恢复,并将解析获取的数据报文跳转到下一跳流表中继续进行处理,跳转到下一跳流表的方法与上述实施例相同,故在此不再赘述。
可选地,在本实施例的另一种可能的实现方式中,可以由控制器控制流水线环境的恢复,具体地,发送模块12发送的与扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则发送模块12,还用于向扩展Switch发送用于进行流水线恢复的流表项,使得扩展Switch将流表项添加到扩展Switch的第一级流表table0’中,并在接收到报文封装包时,通过table0’中添加的流表项进行对流水线环境的恢复。需要说明的是,发送模块12发送流表项通常是预先发送的,本实施例中不限制发送模块12发送包括Switch转发 指令的流表项和用于进行流水线恢复的流表项的发送顺序。
在本实施例中,扩展Switch通过接收到的由控制器发送的用于进行流水线环境恢复的流表项,执行对流水线环境的恢复,发送模块12发送的用于进行流水线恢复的流表项可以包括匹配部分和执行指令,报文封装包中的下一跳流表ID具体作为流表项匹配部分的匹配对象,该执行指令可以包括流表恢复指令和/或流表跳转指令,对流水线环境恢复的具体过程为:扩展Switch通过table0’中的流表项对其接收到的报文封装包进行匹配,在下一跳流表ID与table0’中的流表项匹配时,根据匹配结果顺序执行已匹配的流表项中的流表恢复指令和/或流表跳转指令。
本发明实施例提供的交换机处理装置用于执行本发明图6所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
实施例八
图14为本发明实施例八所提供的一种交换机处理装置的结构示意图。该交换机处理装置应用于图2或图3所示的交换机处理系统中,具体设置于与控制器相连接的逻辑Switch的物理Switch中,如图2或图3所示,逻辑Switch包括至少两个物理Switch,至少两个物理Switch包括主Switch和扩展Switch,控制器至少与主Switch连接,交换机处理装置具体设置于该主Switch中;设置于主Switch中的装置具体包括:接收模块21和处理模块22。
接收模块21,用于接收控制器发送的映射信息,映射信息包括逻辑Switch的多级流表中各流表分别与物理Switch的映射关系。
接收模块21,还用于接收控制器发送的流表项,接收模块21接收到的流表项为控制器为主Switch分配的,或者控制器为主Switch和扩展Switch分配的流表集合中各流表的内容信息。
处理模块22,用于根据接收模块21接收的流表项、或者根据接收模块21接收的流表项和映射信息对主Switch接收到的数据报文进行处理。
在本实施例中,控制器在将多级流表中的各流表分别给不同的物理Switch来承担时,逻辑Switch的多级流表中的第一级流表table0是必然分配给主Switch的,则处理模块22,具体用于根据接收模块21接收的流表项、或者根据接收模块21接收的流表项和映射信息,通过table0对所述接收到的 数据报文进行处理。与上述实施例类似地,本实施例中的扩展Switch也可以包括第一扩展Switch和第二扩展Switch,其中,主Switch至少与第一扩展Switch连接,第二扩展Switch至少与第一扩展Switch连接,映射信息和流表项的分发方式与上述实施例相同,与各物理Switch和控制器的连接关系相关,本实施例中各物理Switch与控制器的连接关系可以参考上述图2和图3,故在此不再赘述。需要说明的是,本实施例中,主Switch接收到的数据报文通常可以为外部节点,例如为可以与主Switch相互访问的计算机发送的。
本发明实施例提供的交换机处理装置用于执行本发明图7所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
图15为本发明实施例所提供的又一种交换机处理装置的结构示意图。在上述图14所示交换机处理装置的结构基础上,处理模块22包括处理单元23,用于在接收到数据报文时,对数据报文进行处理;判断单元24,用于并根据接收模块21接收的映射信息判断下一跳流表的位置;则处理单元23,还用于在判断单元24判断出下一跳流表位于主Switch中时,将数据报文跳转到下一跳流表中继续进行处理;或者,处理单元23,还用于在判断单元24判断出下一跳流表位于扩展Switch中时,发起对流水线环境的保护以生成报文封装包,并将报文封装包发送到下一跳流表对应的扩展Switch中。图15所示实施例为主Switch控制的流水线环境的保护,具体由主Switch决策、发起和执行,控制器在下发流表项时无需考虑各流表是否位于相同的物理switch中。
本发明实施例提供的交换机处理装置用于执行本发明图8所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
可选地,在本发明的另一种可能的实现方式中,可以由控制器控制流水线环境的保护,具体由控制器进行决策,主Switch直接执行相应指令即可,可以由上述图14所示装置执行,接收模块21还用于接收控制器发送的流表项,具体包括:接收控制器发送的包括流表跳转指令或Switch转发指令的流表项,流表项中的流表跳转指令或Switch转发指令为控制器根据流表项中的下一跳流表是否位于主Switch中确定的,若是,流表项中包括流表跳转指令, 若否,流表项中包括Switch转发指令;则处理模块22,具体用于在接收到的数据报文匹配到的流表项中包括流表跳转指令时,将数据报文跳转到下一跳流表中继续进行处理;或者,处理模块22,具体用于在接收到的数据报文匹配到的流表项中包括Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将报文封装包发送到下一跳流表对应的扩展Switch中。
本实施例在具体实现中,处理模块22发起对流水线环境的保护,包括:将对数据报文进行处理的相关信息和数据报文同时封装于报文封装包中,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata。
进一步地,在处理模块22执行了流水线环境的保护之后,将进行流水线环境保护生成的报文封装包发送至下一跳流表对应的扩展Switch,相应地,该扩展Switch需要进行流水线环境的恢复,以获取数据报文,本实施例提供的交换机处理装置在执行流水线环境的恢复时由扩展Switch控制,具体地,该扩展Switch对接收到的报文封装包进行解析获得解析信息,该解析信息包括该数据报文和对该数据报文进行处理的相关信息,对数据报文进行处理的相关信息同样包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata,以根据该解析信息进行流水线环境的恢复,并将解析获取的数据报文跳转到下一跳流表中继续进行处理,将数据报文跳转到下一跳流表的方法与上述实施例相同,故在此不再赘述。类似地,对流水线环境的恢复还可以为控制器控制的方式实现,具体实现方式与上述实施例相同,由于本实施例提供的交换机处理装置具体设置于主Switch中,主Switch执行的处理不涉及对流水线环境的恢复,故在此不再赘述。
实施例九
图16为本发明实施例九所提供的一种交换机处理装置的结构示意图。该交换机处理装置应用于图3所示的交换机处理系统中,具体设置于与控制器相连接的逻辑Switch的物理Switch中,如图2或图3所示,逻辑Switch包括多个物理Switch,多个物理Switch包括主Switch和扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,控制器至少与主Switch连接,主Switch至少与第一扩展Switch连接,第二扩展Switch至少与第一扩展Switch连接,交换机处理装置具体设置于扩展Switch中;设置于扩展Switch 中的装置具体包括:接收模块31和处理模块32。
其中,接收模块31,用于接收控制器和/或主Switch和/或其它扩展Switch发送的映射信息,映射信息包括逻辑Switch的多级流表中各流表分别与物理Switch的映射关系;
接收模块31,还用于接收控制器和/或主Switch和/或其它扩展Switch发送的与当前扩展Switch对应的流表项,接收模块31接收到的流表项为控制器为当前扩展Switch分配的流表集合中各流表的内容信息;
处理模块32,用于根据接收模块31接收的流表项、或者根据接收模块31接收的流表项和映射信息对当前扩展Switch接收到的第一报文封装包进行处理,该第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对数据报文进行处理的相关信息封装在一起生成的。
本实施例可以由第一扩展Switch或者第二扩展Switch执行的,扩展Switch对控制器发送的映射信息和流表项的接收方式与上述实施例类似,即,当前扩展Switch接收到的映射信息和/流表项可以是由控制器直接发送的,也可以是由主Switch转发的,还可以是由其它扩展Switch转发的,也可是上述多种方式的结合。需要说明的是,控制器在将多级流表中的各流表分别给不同的物理Switch来承担时,逻辑Switch的多级流表中的第一级流表table0是必然分配给主Switch的,因此,接收模块31接收到的映射信息中,逻辑Switch的多级流表中的table0具体与主Switch对应。本实施例中,映射信息和流表项的分发方式与上述实施例相同,与各物理Switch和控制器的连接关系相关,本实施例中各物理Switch与控制器的连接关系可以参考上述图3,故在此不再赘述。
本发明实施例提供的交换机处理装置用于执行本发明图9所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。
在本实施例中,接收模块31,还用于在接收到与当前扩展Switch对应的流表项之后,接收第一报文封装包;处理模块32,具体用于在确定出接收模块31接收的第一报文封装包中的下一跳流表编号ID位于其它物理Switch中时,根据接收模块31接收的映射信息将接收模块31接收到的第一报文封装包转发给下一跳流表ID对应的物理Switch;或者,处理模块32,具体用于 在确定出接收模块31接收的第一报文封装包中的下一跳流表ID位于当前扩展Switch中时,对接收模块31接收到的第一报文封装包进行流水线环境的恢复,以获取数据报文。
图17为本发明实施例所提供的再一种交换机处理装置的结构示意图。本实施例在具体实现中,当前扩展Switch的处理模块32进行流水线环境的恢复时,可以由当前扩展Switch控制流水线环境的恢复,则处理模块32包括:解析单元33,用于对接收模块31接收到的第一报文封装包进行解析获得解析信息,解析信息包括数据报文和对数据报文进行处理的相关信息,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还选择性的包括任意数量的以下信息:Ingress port、Action set和Metadata;处理单元34,用于根据解析单元33获得的解析信息进行流水线环境的恢复,并将数据报文跳转到下一跳流表中继续进行处理,将数据报文跳转到下一跳流表的方法与上述实施例相同,故在此不再赘述。
可选地,在本实施例的另一种可能的实现方式中,还可以由控制器控制流水线环境的恢复,具体由控制器进行决策,Switch直接执行相应指令即可,在具体实现中,当前扩展Switch接收到的流表项包括控制器发送的用于进行流水线恢复的流表项,相应地,接收模块31接收到的流表项包括控制器发送的用于进行流水线恢复的流表项;则处理模块32包括:添加单元,用于将用于进行流水线恢复的流表项添加到当前扩展Switch的第一级流表table0’中;处理单元,通过table0’中添加的流表项对接收模块接收到的第一报文封装包进行对流水线环境的恢复。在具体实现中,接收模块31接收到的第一报文封装包中包括下一跳流表ID,接收模块31接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,执行指令包括流表恢复指令和/或流表跳转指令;则处理单元,具体用于通过table0’中的流表项对接收模块31接收到的第一报文封装包进行匹配;并在table0’中的流表项匹配成功时,根据匹配结果顺序执行已匹配的流表项中的流表恢复指令和/或流表跳转指令
进一步地,当前扩展Switch的处理模块32执行了流水线环境的恢复之后,可以继续对获取的数据报文进行处理,对数据报文的处理方式与上述实施例类似,同样可以结合映射信息确定对该数据报文进行处理的下一跳流表的位置,确定处理方式,具体地,在上述图17所示交换机处理装置的结构基 础上,处理模块32,还用于对接收模块31接收到的第一报文封装包进行流水线环境的恢复之后,在获取到数据报文时,通过当前流表对数据报文进行处理;则装置还包括:判断模块35,用于根据映射信息判断下一跳流表的位置;则处理模块32,还用于在判断模块35判断出下一跳流表位于当前扩展Switch中时,将数据报文跳转到下一跳流表中继续进行处理;或者,处理模块32,还用于在判断模块判断出下一跳流表位于其它扩展Switch中时,发起对流水线环境的保护以生成第二报文封装包,并将第二报文封装包发送到下一跳流表对应的扩展Switch中。本实施例提供的方法具体为当前扩展Switch控制的流水线环境的保护,由当前扩展Switch决策、发起和执行,控制器在下发流表项时无需考虑各流表是否位于相同的物理switch中。
可选地,与上述实施例类似,在本实施例的另一种可能的实现方式中,可以由控制器控制流水线环境的保护,由控制器进行决策,当前扩展Switch直接执行相应指令即可,具体实现方式为:接收模块31,还用于接收控制器发送的包括流表跳转指令或Switch转发指令的流表项,流表项中的流表跳转指令或Switch转发指令为控制器根据流表项中的下一跳流表是否位于当前扩展Switch中确定的,若是,流表项中包括流表跳转指令,若否,流表项中包括Switch转发指令;则处理模块32,还用于对接收模块31接收到的第一报文封装包进行流水线环境的恢复之后,获取到第一报文封装包中的数据报文,在数据报文匹配到的流表项中包括流表跳转指令时,将数据报文跳转到下一跳流表中继续进行处理;或者,获取到第一报文封装包中的数据报文,在数据报文匹配到的流表项中包括Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将第二报文封装包发送到下一跳流表对应的扩展Switch中。
需要说明的是,上述实施例中,处理模块32用于发起对流水线环境的恢复的方式是相同的,具体包括:将对数据报文进行处理的相关信息和数据报文同时封装于第二报文封装包中,其中,对数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:Ingress port、Action set和Metadata。
本发明实施例提供的交换机处理装置用于执行本发明图10所示实施例提供的交换机处理方法,具备相应的功能模块,其实现原理和技术效果类似, 此处不再赘述。
图18为本发明实施例所提供的一种控制器的结构示意图。该控制器应用于图2或图3所示的交换机处理系统中,具体与逻辑Switch相连接,如图2和图3所示,逻辑Switch包括至少两个物理Switch;该物理Switch包括主Switch和第一扩展Switch,控制器至少与第一扩展Switch相连接,第一扩展Switch至少与主Switch相连接,如图3所示,该物理Switch还包括第二扩展Switch,该第二扩展Switch至少与第一扩展Switch相连接,如图18所示,本实施例提供的控制器具体包括处理器41和发送器42,本实施例提供的控制器发送映射信息和流表项的方式以及与逻辑Switch中各物理Switch的连接方式均与上述实施例相同,故在此不再赘述。
本实施例提供的控制器中,处理器41用于实现图12到图13所示实施例中交换机处理装置的分配模块11的功能,发送器42用于实现图12到图13所示实施例中交换机处理装置的发送模块12的功能;本发明实施例提供的控制器用于执行本发明图1、图5和图6所示实施例提供的交换机处理方法,具备相应的实体装置,其实现原理和技术效果类似,此处不再赘述。
图19为本发明实施例所提供的一种主交换机的结构示意图。该主交换机应用于图2或图3所示的交换机处理系统中,为与控制器相连接的逻辑Switch中的物理Switch,如图2所示,逻辑Switch包括至少两个物理Switch,该物理Switch包括主Switch和第一扩展Switch,控制器至少与第一扩展Switch相连接,第一扩展Switch至少与主Switch相连接,如图3所示,该物理Switch还包括第二扩展Switch,该第二扩展Switch至少与第一扩展Switch相连接,如图19所示,本实施例提供的主Switch具体包括接收器51和处理器52,本实施例提供的主Switch接收和转发映射信息和流表项的方式,以及与逻辑Switch中各扩展Switch和控制器的连接方式均与上述实施例相同,故在此不再赘述。
本实施例提供的控制器中,接收器51用于实现图14到图15所示实施例中交换机处理装置的接收模块21的功能,处理器52用于实现图14到图15所示实施例中交换机处理装置的处理模块22的功能;本发明实施例提供的主Switch用于执行本发明图7到图8所示实施例提供的交换机处理方法,具备相应的实体装置,其实现原理和技术效果类似,此处不再赘述。
图20为本发明实施例所提供的一种扩展交换机的结构示意图。该扩展交换机应用于图2或图3所示的交换机处理系统中,为与控制器相连接的逻辑Switch中的物理Switch,如图2所示,逻辑Switch包括至少两个物理Switch,该物理Switch包括主Switch和第一扩展Switch,控制器至少与第一扩展Switch相连接,第一扩展Switch至少与主Switch相连接,如图3所示,该物理Switch还包括第二扩展Switch,该第二扩展Switch至少与第一扩展Switch相连接,如图20所示,本实施例提供的扩展Switch具体包括接收器61和处理器62,本实施例提供的扩展Switch接收和转发映射信息和流表项的方式,以及与逻辑Switch中其它物理Switch和控制器的连接方式均与上述实施例相同,故在此不再赘述。
本实施例提供的控制器中,接收器61用于实现图16到图17所示实施例中交换机处理装置的接收模块31的功能,处理器62用于实现图16到图17所示实施例中交换机处理装置的处理模块32的功能;本发明实施例提供的扩展Switch用于执行本发明图9到图10所示实施例提供的交换机处理方法,具备相应的实体装置,其实现原理和技术效果类似,此处不再赘述。
图2和图3同样为本发明实施例所提供的交换机处理系统的结构示意图。如图2和图3所示,本实施例提供的交换机处理系统包括图18所示的控制器,图19所示的主Switch,图20所示的扩展Switch,在本实施例中,控制器,主Switch和扩展Switch的连接关系如图2和图3所示,控制器发送映射信息和流表项,以及各物理Switch接收和转发映射信息和流表项的方式均与上述各实施例相同,故在此不再赘述。本实施例提供的交换机处理系统中的控制器,主Switch和扩展Switch用于实现图1、图5到图11实施例所示的交换机处理方法,具体相应的实体器件,其实现原理和技术效果类似,此处不再赘述。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (100)

  1. 一种交换机处理方法,其特征在于,由控制器和逻辑交换机Switch执行,所述逻辑Switch包括至少两个物理Switch;所述方法包括:
    所述控制器将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
    所述控制器发送映射信息,以使每个所述物理Switch获得所述映射信息,所述映射信息包括所述多级流表中各流表与所述物理Switch的映射关系;
    所述控制器向所述逻辑Switch发送流表项,以使每个所述物理Switch获得与其对应的流表项,并根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息。
  2. 根据权利要求1所述的方法,其特征在于,所述至少两个物理Switch包括主Switch和第一扩展Switch,其中,所述控制器至少与所述主Switch连接,所述第一扩展Switch至少与所述主Switch连接;
    则所述控制器发送映射信息,包括:
    所述控制器至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息;
    所述控制器向所述逻辑Switch发送流表项,包括:
    所述控制器至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的流表项。
  3. 根据权利要求2所述的方法,其特征在于,所述物理Switch还包括第二扩展Switch,所述第二扩展Switch至少与所述第一扩展Switch连接;
    则所述控制器发送映射信息,包括:
    所述控制器至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息,并且所述第二扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送 的映射信息;
    所述控制器向所述逻辑Switch发送流表项,包括:
    所述控制器至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与所述主Switch对应的流表项以及与所述第一扩展Switch和/或所述第二扩展Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的与所述第一扩展Switch对应的流表项,并且使得所述第二扩展Switch接收到的流表项包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的与所述第二扩展Switch对应的流表项。
  4. 根据权利要求2或3所述的方法,其特征在于,所述控制器为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0,使得所述主Switch在接收到所述数据报文时通过所述table0对所述数据报文进行处理。
  5. 根据权利要求1~4中任一项所述的方法,其特征在于,所述控制器向所述逻辑Switch发送流表项,包括:
    所述控制器向所述逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对所述数据报文进行处理,并根据所述映射信息确定下一跳流表的位置,在所述已确定的下一跳流表位于所述当前物理Switch中时,将所述数据报文跳转到所述下一跳流表继续进行处理,或者,在所述已确定的下一跳流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
  6. 根据权利要求1~4中任一项所述的方法,其特征在于,所述控制器向所述逻辑Switch发送流表项,包括:
    所述控制器在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;
    所述控制器在确定所述下一跳流表位于所述当前物理Switch中时,向所述当前物理Switch发送包含所述流表跳转指令的流表项,使得所述当前物理Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    所述控制器在确定所述下一跳流表位于其它物理Switch中时,将所述待 发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前物理Switch发送包含所述Switch转发指令的流表项,使得所述当前物理Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
  7. 根据权利要求5或6所述的方法,其特征在于,所述对流水线环境的保护为所述当前物理Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  8. 根据权利要求5~7中任一项所述的方法,其特征在于,所述对流水线环境的保护,用于使得所述下一跳流表对应的物理Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
  9. 根据权利要求5~7中任一项所述的方法,其特征在于,所述控制器发送的与所述扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则所述方法还包括:
    所述控制器向所述扩展Switch发送所述用于进行流水线恢复的流表项,使得所述扩展Switch将所述流表项添加到所述扩展Switch的第一级流表table0’中,并在接收到所述报文封装包时,通过所述table0’中添加的流表项进行对流水线环境的恢复。
  10. 根据权利要求9所述的方法,其特征在于,所述报文封装包中包括下一跳流表ID,所述用于进行流水线恢复的流表项包括匹配部分和执行指令,所述匹配部分用于所述扩展Switch将所述下一跳流表ID作为所述流表项对应的匹配对象,所述执行指令包括流表恢复指令和/或流表跳转指令;
    则所述对流水线环境的恢复为所述扩展Switch通过所述table0’中的流表项对其接收到的报文封装包进行匹配,在所述下一跳流表ID与所述table0’中的流表项匹配时,根据匹配结果顺序执行所述已匹配的流表项中的所述流表恢复指令和/或所述流表跳转指令。
  11. 一种交换机处理方法,其特征在于,由控制器和逻辑Switch执行,所述逻辑Switch包括至少两个物理Switch,所述至少两个物理Switch包括主Switch和扩展Switch,其中,所述控制器至少与所述主Switch连接;所述方法包括:
    所述主Switch接收所述控制器发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    所述主Switch接收所述控制器发送的流表项,所述主Switch接收到的流表项为所述控制器为所述主Switch分配的,或者所述控制器为主Switch和所述扩展Switch分配的流表集合中各流表的内容信息;
    所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理。
  12. 根据权利要求11所述的方法,其特征在于,所述主Switch接收所述控制器发送的映射关系之后,还包括:
    所述主Switch向与其连接的扩展Switch发送所述映射信息;
    所述主Switch接收所述控制器发送的流表项之后,还包括:
    所述主Switch向与其连接的扩展Switch发送所述控制器分配的流表项。
  13. 根据权利要求11或12所述的方法,其特征在于,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
    所述主Switch接收所述控制器发送的映射信息之后,还包括:
    所述主Switch向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
    所述主Switch接收所述控制器发送流表项之后,还包括:
    所述主Switch向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项,以使所述扩展Switch根据与其对应流表项和所述映射信息对接收到的数据报文进行处理。
  14. 根据权利要求11~13中任一项所述的方法,其特征在于,所述主Switch接收到的映射信息包括所述控制器为其分配的流表,所述流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;则所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理, 包括:
    所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息,通过所述table0对所述接收到的数据报文进行处理。
  15. 根据权利要求11~14中任一项所述的方法,其特征在于,所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,包括:
    所述主Switch在接收到数据报文时,对所述数据报文进行处理,并根据所述映射信息判断下一跳流表的位置;
    在所述下一跳流表位于所述主Switch中时,所述主Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    在所述下一跳流表位于所述扩展Switch中时,所述主Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
  16. 根据权利要求11~14中任一项所述的方法,其特征在于,所述主Switch接收所述控制器发送的流表项,包括:
    所述主Switch接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的下一跳流表是否位于所述主Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
    则所述主Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,包括:
    所述主Switch接收所述数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    所述主Switch接收所述数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
  17. 根据权利要求15或16所述的方法,其特征在于,所述主Switch发起对流水线环境的保护,包括:
    所述主Switch将对所述数据报文进行处理的相关信息和所述数据报文同 时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  18. 根据权利要求15~17中任一项所述的方法,其特征在于,所述对流水线环境的保护,用于使得所述下一跳流表对应的扩展Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
  19. 一种交换机处理方法,其特征在于,由控制器和逻辑Switch执行,所述逻辑Switch包括多个物理Switch,所述多个物理Switch包括主Switch和扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,其中,所述控制器至少与所述主Switch连接,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;所述方法包括:
    所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与所述当前扩展Switch对应的流表项,所述当前扩展Switch接收到的流表项为所述控制器为所述当前扩展Switch分配的流表集合中各流表的内容信息;
    所述当前扩展Switch根据所述流表项、或者根据所述流表项和所述映射信息对接收到的第一报文封装包进行处理,所述第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对所述数据报文进行处理的相关信息封装在一起生成的。
  20. 根据权利要求19所述的方法,其特征在于,所述当前扩展Switch接收到的映射信息中,所述逻辑Switch的多级流表中的第一级流表table0与所述主Switch对应。
  21. 根据权利要求19或20所述的方法,其特征在于,所述当前扩展Switch 接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与所述当前扩展Switch对应的流表项之后,还包括:
    所述当前扩展Switch接收到所述第一报文封装包;
    所述当前扩展Switch确定所述第一报文封装包中的下一跳流表编号ID位于其它物理Switch中;
    所述当前扩展Switch根据所述映射信息将所述第一报文封装包转发给所述下一跳流表ID对应的物理Switch。
  22. 根据权利要求19或20所述的方法,其特征在于,所述当前扩展Switch接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与所述当前扩展Switch对应的流表项之后,还包括:
    所述当前扩展Switch接收到所述第一报文封装包;
    所述当前扩展Switch确定所述第一报文封装包中的下一跳流表编号ID位于所述当前扩展Switch中;
    所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
  23. 根据权利要求22所述的方法,其特征在于,所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,包括:
    所述当前扩展Switch对接收到的所述第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata);
    所述当前扩展Switch根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理。
  24. 根据权利要求22所述的方法,其特征在于,所述当前扩展Switch接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,包括:
    所述当前扩展Switch将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;
    所述当前扩展Switch通过所述table0’中添加的流表项对接收到的所述第 一报文封装包进行对流水线环境的恢复。
  25. 根据权利要求24所述的方法,其特征在于,所述第一报文封装包中包括下一跳流表ID,所述用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,所述执行指令包括流表恢复指令和/或流表跳转指令;则所述当前扩展Switch通过所述table0’中添加的流表项对接收到的所述第一报文封装包进行对流水线环境的恢复,包括:
    所述当前扩展Switch通过所述table0’中的流表项对所述第一报文封装包进行匹配;
    所述当前扩展Switch在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复指令和/或流表跳转指令。
  26. 根据权利要求22~25中任一项所述的方法,其特征在于,所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复,以获取所述数据报文之后,还包括:
    所述当前扩展Switch获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理,并根据所述映射信息判断下一跳流表的位置;
    在所述下一跳流表位于所述当前扩展Switch中时,所述当前扩展Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    在所述下一跳流表位于其它扩展Switch中时,所述当前扩展Switch发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  27. 根据权利要求22~25中任一项所述的方法,其特征在于,还包括:
    所述当前扩展Switch接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的所述下一跳流表是否位于所述当前扩展Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
    则所述当前扩展Switch对所述第一报文封装包进行流水线环境的恢复之后,还包括:
    所述当前扩展Switch获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转 到所述下一跳流表中继续进行处理;或者,
    所述当前扩展Switch获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  28. 根据权利要求26或27所述的方法,其特征在于,所述当前扩展Switch发起对流水线环境的保护,包括:
    所述当前扩展Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  29. 一种交换机处理装置,其特征在于,设置于与逻辑交换机Switch相连接的控制器中,所述逻辑Switch包括至少两个物理Switch;所述装置包括:
    分配模块,用于将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
    发送模块,用于发送映射信息,以使每个所述物理Switch获得所述映射信息,所述映射信息包括所述多级流表中各流表与所述物理Switch的映射关系;
    所述发送模块,还用于向所述逻辑Switch发送流表项,以使每个所述物理Switch获得与其对应的流表项,并根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息。
  30. 根据权利要求29所述的装置,其特征在于,所述至少两个物理Switch包括主Switch和第一扩展Switch,其中,所述控制器至少与所述主Switch连接,所述第一扩展Switch至少与所述主Switch连接;
    则所述发送模块用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息;
    所述发送模块还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的流表项。
  31. 根据权利要求30所述的装置,其特征在于,所述物理Switch还包括第二扩展Switch,所述第二扩展Switch至少与所述第一扩展Switch连接;
    则所述发送模块用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息,并且所述第二扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的映射信息;
    所述发送模块还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与所述主Switch对应的流表项以及与所述第一扩展Switch和/或所述第二扩展Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的与所述第一扩展Switch对应的流表项,并且使得所述第二扩展Switch接收到的流表项包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的与所述第二扩展Switch对应的流表项。
  32. 根据权利要求30或31所述的装置,其特征在于,所述分配模块为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0,使得所述主Switch在接收到所述数据报文时通过所述table0对所述数据报文进行处理。
  33. 根据权利要求29~32中任一项所述的装置,其特征在于,所述发送模块还用于向所述逻辑Switch发送流表项,具体包括:向所述逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对所述数据报文进行处理,并根据所述发送模块发送的映射信息确定下一跳流表的位置,在所述已确定的下一跳流表位于所述当前物理Switch中时,将所述数据报文跳转到所述下一跳流表继续进行处理,或者,在所述已确定的下一跳 流表位于其它物理Switch中时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
  34. 根据权利要求29~32中任一项所述的装置,其特征在于,所述发送模块包括:判断单元,用于在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;
    执行单元,用于所述判断单元确定出所述下一跳流表位于所述当前物理Switch中时,向所述当前物理Switch发送包含所述流表跳转指令的流表项,使得所述当前物理Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    所述执行单元,用于所述判断单元确定出所述下一跳流表位于其它物理Switch中时,将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前物理Switch发送包含所述Switch转发指令的流表项,使得所述当前物理Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
  35. 根据权利要求33或34所述的装置,其特征在于,所述对流水线环境的保护为所述当前物理Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  36. 根据权利要求33~35中任一项所述的装置,其特征在于,所述对流水线环境的保护,用于使得所述下一跳流表对应的物理Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
  37. 根据权利要求33~36中任一项所述的装置,其特征在于,所述发送模块发送的与所述扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则所述发送模块,还用于向所述扩展Switch发送所述用于进行流水线恢复的流表项,使得所述扩展Switch将所述流表项添加到所述扩展Switch的第一级流表table0’中,并在接收到所述报文封装包时,通过所述table0’中添加 的流表项进行对流水线环境的恢复。
  38. 根据权利要求37所述的装置,其特征在于,所述报文封装包中包括下一跳流表ID,所述发送模块发送的用于进行流水线恢复的流表项包括匹配部分和执行指令,所述匹配部分用于所述扩展Switch将所述下一跳流表ID作为所述流表项对应的匹配对象,所述执行指令包括流表恢复指令和/或流表跳转指令;
    则所述对流水线环境的恢复为所述扩展Switch通过所述table0’中的流表项对其接收到的报文封装包进行匹配,在所述下一跳流表ID与所述table0’中的流表项匹配时,根据匹配结果顺序执行所述已匹配的流表项中的所述流表恢复指令和/或所述流表跳转指令。
  39. 一种交换机处理装置,其特征在于,设置于与控制器相连接的逻辑交换机Switch的物理Switch中,其中,所述逻辑Switch包括至少两个物理Switch,所述至少两个物理Switch包括主Switch和扩展Switch,所述控制器至少与所述主Switch连接,交换机处理装置具体设置于所述主Switch中;所述装置包括:
    接收模块,用于接收所述控制器发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    所述接收模块,还用于接收所述控制器发送的流表项,所述接收模块接收到的流表项为所述控制器为所述主Switch分配的,或者所述控制器为主Switch和所述扩展Switch分配的流表集合中各流表的内容信息;
    处理模块,用于根据所述接收模块接收的流表项、或者根据所述接收模块接收的流表项和映射信息对所述主Switch接收到的数据报文进行处理。
  40. 根据权利要求39所述的装置,其特征在于,还包括:发送模块,用于在所述接收模块接收所述控制器发送的映射关系之后,向与其连接的扩展Switch发送所述映射信息;
    所述发送模块,还用于在所述接收模块接收所述控制器发送的流表项之后,向与其连接的扩展Switch发送所述控制器分配的流表项。
  41. 根据权利要求39或40所述的装置,其特征在于,所述主Switch所属的逻辑Switch中,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少 与所述第一扩展Switch连接;
    所述发送模块用于向与其连接的扩展Switch发送所述映射信息,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
    所述发送模块还用于向与其连接的扩展Switch发送所述控制器分配的流表项,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项,以使所述扩展Switch根据与其对应流表项和所述映射信息对接收到的数据报文进行处理。
  42. 根据权利要求39~41中任一项所述的装置,其特征在于,所述接收模块接收到的映射信息包括所述控制器为主Switch分配的流表,所述流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;则所述处理模块,具体用于根据所述接收模块接收的流表项、或者根据所述接收模块接收的流表项和映射信息,通过所述table0对所述接收到的数据报文进行处理。
  43. 根据权利要求39~42中任一项所述的装置,其特征在于,所述处理模块包括:处理单元,用于在接收到数据报文时,对所述数据报文进行处理;
    判断单元,用于并根据所述接收模块接收的映射信息判断下一跳流表的位置;
    则所述处理单元,还用于在所述判断单元判断出所述下一跳流表位于所述主Switch中时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    所述处理单元,还用于在所述判断单元判断出所述下一跳流表位于所述扩展Switch中时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
  44. 根据权利要求39~42中任一项所述的装置,其特征在于,所述接收模块还用于接收所述控制器发送的流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的下一跳流表是否位于所述主Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
    则所述处理模块,具体用于在接收到的所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进 行处理;或者,
    所述处理模块,具体用于在接收到的所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
  45. 根据权利要求43或44所述的装置,其特征在于,所述处理模块发起对流水线环境的保护,包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  46. 根据权利要求43~45中任一项所述的装置,其特征在于,所述对流水线环境的保护,用于使得所述下一跳流表对应的扩展Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
  47. 一种交换机处理装置,其特征在于,设置于与控制器相连接的逻辑交换机Switch的物理Switch中,其中,所述逻辑Switch包括多个物理Switch,所述多个物理Switch包括主Switch和所述扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述控制器至少与所述主Switch连接,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接,交换机处理装置具体设置于扩展Switch中;所述装置包括:
    接收模块,用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    所述接收模块,还用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与当前扩展Switch对应的流表项,所述接收模块接收到的流表项为所述控制器为所述当前扩展Switch分配的流表集合中各流表的内容信息;
    处理模块,用于根据所述接收模块接收的流表项、或者根据所述接收模 块接收的流表项和映射信息对所述当前扩展Switch接收到的第一报文封装包进行处理,所述第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对所述数据报文进行处理的相关信息封装在一起生成的。
  48. 根据权利要求47所述的装置,其特征在于,所述接收模块接收到的映射信息中,所述逻辑Switch的多级流表中的第一级流表table0与所述主Switch对应。
  49. 根据权利要求47或48所述的装置,其特征在于,所述接收模块,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收所述第一报文封装包;
    所述处理模块,具体用于在确定出所述接收模块接收的第一报文封装包中的下一跳流表编号ID位于其它物理Switch中时,根据所述接收模块接收的映射信息将所述接收模块接收到的第一报文封装包转发给所述下一跳流表ID对应的物理Switch。
  50. 根据权利要求47或48所述的装置,其特征在于,所述接收模块,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收到所述第一报文封装包;
    所述处理模块,具体用于在确定出所述接收模块接收的第一报文封装包中的下一跳流表编号ID位于所述当前扩展Switch中时,对所述接收模块接收到的第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
  51. 根据权利要求50所述的装置,其特征在于,所述处理模块包括:解析单元,用于对所述接收模块接收到的第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata);
    处理单元,用于根据所述解析单元获得的解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理。
  52. 根据权利要求50所述的装置,其特征在于,所述接收模块接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述处理模块包括:添加单元,用于将所述用于进行流水线恢复的流表项添加到所述当 前扩展Switch的第一级流表table0’中;处理单元,通过所述table0’中添加的流表项对所述接收模块接收到的所述第一报文封装包进行对流水线环境的恢复。
  53. 根据权利要求52所述的装置,其特征在于,所述接收模块接收到的第一报文封装包中包括下一跳流表ID,所述接收模块接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,所述执行指令包括流表恢复指令和/或流表跳转指令;则所述处理单元,具体用于通过所述table0’中的流表项对所述接收模块接收到的第一报文封装包进行匹配;并在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复指令和/或流表跳转指令。
  54. 根据权利要求50~53中任一项所述的装置,其特征在于,所述处理模块,还用于对所述接收模块接收到的第一报文封装包进行流水线环境的恢复之后,在获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理;则所述装置还包括:判断模块,用于根据所述映射信息判断下一跳流表的位置;
    则所述处理模块,还用于在所述判断模块判断出所述下一跳流表位于所述当前扩展Switch中时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    所述处理模块,还用于在所述判断模块判断出所述下一跳流表位于其它扩展Switch中时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  55. 根据权利要求50~53中任一项所述的装置,其特征在于,所述接收模块,还用于接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的所述下一跳流表是否位于所述当前扩展Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
    则所述处理模块,还用于对所述接收模块接收到的第一报文封装包进行流水线环境的恢复之后,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转 到所述下一跳流表中继续进行处理;或者,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  56. 根据权利要求54或55所述的装置,其特征在于,所述处理模块用于发起对流水线环境的保护,具体包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  57. 一种控制器,其特征在于,与逻辑交换机Switch相连接,所述逻辑Switch包括至少两个物理Switch;所述控制器包括:
    处理器,用于将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
    发送器,用于发送映射信息,以使每个所述物理Switch获得所述映射信息,所述映射信息包括所述多级流表中各流表与所述物理Switch的映射关系;
    所述发送器,还用于向所述逻辑Switch发送流表项,以使每个所述物理Switch获得与其对应的流表项,并根据所述流表项、或者根据所述流表项和所述映射信息对接收到的数据报文进行处理,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息。
  58. 根据权利要求57所述的控制器,其特征在于,所述至少两个物理Switch包括主Switch和第一扩展Switch,其中,所述控制器至少与所述主Switch连接,所述第一扩展Switch至少与所述主Switch连接;
    则所述发送器用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息;
    所述发送器还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述 主Switch发送的流表项。
  59. 根据权利要求58所述的控制器,其特征在于,所述物理Switch还包括第二扩展Switch,所述第二扩展Switch至少与所述第一扩展Switch连接;
    则所述发送器用于发送映射信息,具体包括:至少向所述主Switch发送映射信息,以使所述主Switch接收到所述映射信息,使得所述第一扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch发送的映射信息,并且所述第二扩展Switch接收到的映射信息包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的映射信息;
    所述发送器还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,以使所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与所述主Switch对应的流表项以及与所述第一扩展Switch和/或所述第二扩展Switch对应的流表项,使得所述第一扩展Switch接收到的流表项包括所述控制器和/或所述主Switch发送的与所述第一扩展Switch对应的流表项,并且使得所述第二扩展Switch接收到的流表项包括所述控制器和/或所述主Switch和/或所述第一扩展Switch发送的与所述第二扩展Switch对应的流表项。
  60. 根据权利要求58或59所述的控制器,其特征在于,所述处理器为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0,使得所述主Switch在接收到所述数据报文时通过所述table0对所述数据报文进行处理。
  61. 根据权利要求57~60中任一项所述的控制器,其特征在于,所述发送器还用于向所述逻辑Switch发送流表项,具体包括:向所述逻辑Switch发送流表项,使得当前物理Switch在接收到数据报文时,通过当前流表对所述数据报文进行处理,并根据所述发送器发送的映射信息判断下一跳流表的是否位于所述当前物理Switch中,若是,则将所述数据报文跳转到所述下一跳流表继续进行处理,若否,则发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
  62. 根据权利要求57~60中任一项所述的控制器,其特征在于,所述发送器还用于向所述逻辑Switch发送流表项,具体包括:在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前物理Switch中;若是, 则向所述当前物理Switch发送包含所述流表跳转指令的流表项,使得所述当前物理Switch将所述数据报文跳转到所述下一跳流表中继续进行处理;若否,则将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前物理Switch发送包含所述Switch转发指令的流表项,使得所述当前物理Switch发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的物理Switch中。
  63. 根据权利要求61或62所述的控制器,其特征在于,所述对流水线环境的保护为所述当前物理Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  64. 根据权利要求61~63中任一项所述的控制器,其特征在于,所述对流水线环境的保护,用于使得所述下一跳流表对应的物理Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
  65. 根据权利要求61~63中任一项所述的控制器,其特征在于,所述发送器发送的与所述扩展Switch对应的流表项包括用于进行流水线恢复的流表项;则所述发送器,还用于向所述扩展Switch发送所述用于进行流水线恢复的流表项,使得所述扩展Switch将所述流表项添加到所述扩展Switch的第一级流表table0’中,并在接收到所述报文封装包时,通过所述table0’中添加的流表项进行对流水线环境的恢复。
  66. 根据权利要求65所述的控制器,其特征在于,所述报文封装包中包括下一跳流表ID,所述发送器发送的用于进行流水线恢复的流表项包括匹配部分和执行指令,所述匹配部分用于所述扩展Switch将所述下一跳流表ID作为所述流表项对应的匹配对象,所述执行指令包括流表恢复指令和/或流表跳转指令;
    则所述对流水线环境的恢复为所述扩展Switch通过所述table0’中的流表项对其接收到的报文封装包进行匹配,在所述下一跳流表ID与所述table0’ 中的流表项匹配时,根据匹配结果顺序执行所述已匹配的流表项中的所述流表恢复指令和/或所述流表跳转指令。
  67. 一种主交换机,其特征在于,所述主交换机Switch为与控制器相连接的逻辑Switch中的物理Switch,其中,所述逻辑Switch包括至少两个物理Switch,所述至少两个物理Switch包括所述主Switch和扩展Switch,所述控制器至少与所述主Switch连接;所述主交换机包括:
    接收器,用于接收所述控制器发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    所述接收器,还用于接收所述控制器发送的流表项,所述接收器接收到的流表项为所述控制器为所述主Switch分配的,或者所述控制器为主Switch和所述扩展Switch分配的流表集合中各流表的内容信息;
    处理器,用于根据所述接收器接收的流表项、或者根据所述接收器接收的流表项和映射信息对所述主Switch接收到的数据报文进行处理。
  68. 根据权利要求67所述的主交换机,其特征在于,还包括:发送器,还用于在所述接收器接收所述控制器发送的映射关系之后,向与其连接的扩展Switch发送所述映射信息;
    所述发送器,还用于在所述接收器接收所述控制器发送的流表项之后,向与其连接的扩展Switch发送所述控制器分配的流表项。
  69. 根据权利要求67或68所述的主交换机,其特征在于,所述主Switch所属的逻辑Switch中,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
    所述发送器用于向与其连接的扩展Switch发送所述映射信息,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
    所述发送器还用于向与其连接的扩展Switch发送所述控制器分配的流表项,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项,以使所述扩展Switch根据与其对应流表项和所述映射信息对接收到的数据报文进行处理。
  70. 根据权利要求67~69中任一项所述的主交换机,其特征在于,所述接收器接收到的映射信息包括所述控制器为主Switch分配的流表,所述流表 至少包括所述逻辑Switch的多级流表中的第一级流表table0;则所述处理器,具体用于根据所述接收器接收的流表项、或者根据所述接收器接收的流表项和映射信息,通过所述table0对所述接收到的数据报文进行处理。
  71. 根据权利要求67~70中任一项所述的主交换机,其特征在于,所述处理器包括:具体用于在接收到数据报文时,对所述数据报文进行处理;并根据所述接收器接收的映射信息判断下一跳流表是否位于所述主Switch中,若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理,若否,则发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
  72. 根据权利要求67~70中任一项所述的主交换机,其特征在于,所述接收器还用于接收所述控制器发送的流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的下一跳流表是否位于所述主Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
    则所述处理器,具体用于在接收到的所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,
    所述处理器,具体用于在接收到的所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成报文封装包,并将所述报文封装包发送到所述下一跳流表对应的扩展Switch中。
  73. 根据权利要求71或72所述的主交换机,其特征在于,所述处理器发起对流水线环境的保护,包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  74. 根据权利要求71~73中任一项所述的主交换机,其特征在于,所述对流水线环境的保护,用于使得所述下一跳流表对应的扩展Switch对其接收到的报文封装包进行解析获得解析信息,以根据所述解析信息进行流水线环 境的恢复,并将所述数据报文跳转到下一跳流表中继续进行处理,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息。
  75. 一种扩展交换机,其特征在于,所述扩展交换机Switch为与控制器相连接的逻辑Switch中的物理Switch,其中,所述逻辑Switch包括多个物理Switch,所述多个物理Switch包括主Switch和所述扩展Switch,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述控制器至少与所述主Switch连接,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;所述扩展交换机包括:
    接收器,用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    所述接收器,还用于接收所述控制器和/或所述主Switch和/或其它扩展Switch发送的与当前扩展Switch对应的流表项,所述接收器接收到的流表项为所述控制器为所述当前扩展Switch分配的流表集合中各流表的内容信息;
    处理器,用于根据所述接收器接收的流表项、或者根据所述接收器接收的流表项和映射信息对所述当前扩展Switch接收到的第一报文封装包进行处理,所述第一述报文封装包为上一跳流表所在的物理Switch将其接收到的数据报文和对所述数据报文进行处理的相关信息封装在一起生成的。
  76. 根据权利要求75所述的扩展交换机,其特征在于,所述接收器接收到的映射信息中,所述逻辑Switch的多级流表中的第一级流表table0与所述主Switch对应。
  77. 根据权利要求75或76所述的扩展交换机,其特征在于,所述接收器,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收所述第一报文封装包;
    所述处理器,具体用于在确定出所述接收器接收的第一报文封装包中的下一跳流表编号ID位于其它物理Switch中时,根据所述接收器接收的映射信息将所述接收器接收到的第一报文封装包转发给所述下一跳流表ID对应的物理Switch。
  78. 根据权利要求75或76所述的扩展交换机,其特征在于,所述接收器,还用于在接收到与所述当前扩展Switch对应的流表项之后,接收到所述 第一报文封装包;
    所述处理器,具体用于在确定出所述接收器接收的第一报文封装包中的下一跳流表编号ID位于所述当前扩展Switch中时,对所述接收器接收到的第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
  79. 根据权利要求78所述的扩展交换机,其特征在于,所述处理器,具体用于对所述接收器接收到的第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata);并根据所述解析信息进行流水线环境的恢复,将所述数据报文跳转到下一跳流表中继续进行处理。
  80. 根据权利要求78所述的扩展交换机,其特征在于,所述接收器接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述处理器,具体用于将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;并通过所述table0’中添加的流表项对所述接收器接收到的第一报文封装包进行对流水线环境的恢复。
  81. 根据权利要求80所述的扩展交换机,其特征在于,所述接收器接收到的第一报文封装包中包括下一跳流表ID,所述接收器接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,其中,所述执行指令包括流表恢复指令和/或流表跳转指令;
    则所述处理器用于通过所述table0’中添加的流表项对所述接收器接收到的所述第一报文封装包进行对流水线环境的恢复,具体包括:通过所述table0’中的流表项对所述接收器接收到的第一报文封装包进行匹配;并在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复指令和/或流表跳转指令。
  82. 根据权利要求78~81中任一项所述的扩展交换机,其特征在于,所述处理器,还用于对所述接收器接收到的第一报文封装包进行流水线环境的恢复之后,在获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理;
    则所述处理器,还用于根据所述映射信息判断下一跳流表是否位于所述 当前扩展Switch中;若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理;若否,则发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  83. 根据权利要求78~81中任一项所述的扩展交换机,其特征在于,所述接收器,还用于接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项,所述流表项中的流表跳转指令或Switch转发指令为所述控制器根据所述流表项中的所述下一跳流表是否位于所述当前扩展Switch中确定的,若是,所述流表项中包括流表跳转指令,若否,所述流表项中包括Switch转发指令;
    则所述处理器,还用于对所述接收器接收到的第一报文封装包进行流水线环境的恢复之后,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,获取到所述第一报文封装包中的数据报文,在所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  84. 根据权利要求82或83所述的扩展交换机,其特征在于,所述处理器用于发起对流水线环境的保护,具体包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  85. 一种交换机处理系统,其特征在于,包括:控制器和逻辑Switch,所述逻辑Switch包括至少两个物理Switch,所述系统包括:
    所述控制器,用于将逻辑Switch的多级流表中各流表分配给每个所述物理Switch,所述多级流表为所述逻辑Switch的流水线;
    所述控制器,还用于发送映射信息,所述映射信息包括逻辑Switch的多级流表中各流表分别与所述物理Switch的映射关系;
    每个所述物理Switch,用于接收所述映射信息;
    所述控制器,还用于向所述逻辑Switch发送流表项;
    每个所述物理Switch,还用于接收所述流表项,所述流表项为所述控制器为每个所述物理Switch分配的流表集合中各流表的内容信息;
    每个所述物理Switch,还用于根据所述流表项、或者根据所述的流表项和所述映射信息对其接收的数据报文进行处理。
  86. 根据权利要求85所述的系统,其特征在于,所述至少两个物理Switch包括主Switch和扩展Switch,其中,所述控制器至少与所述主Switch连接,所述扩展Switch至少与所述主Switch连接;
    则所述控制器用于发送映射信息,具体包括:至少向所述主Switch发送映射信息;
    所述主Switch,还用于在接收到所述控制器发送的映射关系之后,向与其连接的扩展Switch发送所述映射信息;
    则所述控制器还用于向所述逻辑Switch发送流表项,具体包括:至少向所述主Switch发送所述逻辑Switch的流表项,所述主Switch接收到的流表项包括与所述主Switch对应的流表项,或者与每个所述物理Switch对应的流表项;
    所述主Switch,还用于在接收到所述控制器发送的流表项之后,向与其连接的扩展Switch发送所述控制器分配的流表项。
  87. 根据权利要求85或86所述的系统,其特征在于,所述扩展Switch包括第一扩展Switch和第二扩展Switch,所述主Switch至少与所述第一扩展Switch连接,所述第二扩展Switch至少与所述第一扩展Switch连接;
    所述主Switch用于向与其连接的扩展Switch发送所述映射信息,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述映射信息;
    所述主Switch用于向与其连接的扩展Switch发送所述控制器分配的流表项,具体包括:向所述第一扩展Switch和/或所述第二扩展Switch发送所述控制器分配的流表项。
  88. 根据权利要求87所述的系统,其特征在于,每个所述扩展Switch用于接收所述映射信息,具体包括:所述第一扩展Switch,用于接收所述控制器和/或所述主Switch发送的映射信息;所述第二扩展Switch,用于接收所述控制器和/或主Switch和/或所述第一扩展Switch发送的映射信息;
    每个所述扩展Switch用于接收所述流表项,具体包括:所述第一扩展 Switch,用于接收所述控制器和/或所述主Switch发送的流表项;所述第二扩展Switch,用于接收所述控制器和/或主Switch和/或所述第一扩展Switch发送的流表项。
  89. 根据权利要求85~88中任一项所述的系统,其特征在于,所述控制器为所述主Switch分配的流表至少包括所述逻辑Switch的多级流表中的第一级流表table0;
    则所述主Switch用于对其接收的数据报文进行处理,具体包括:根据所述流表项、或者根据所述流表项和所述映射信息,通过所述table0对接收到的所述数据报文进行处理。
  90. 根据权利要求85~89中任一项所述的系统,其特征在于,所述主Switch对其接收的数据报文进行处理,具体包括:在接收到所述数据报文时,对所述数据报文进行处理;并根据所述映射信息判断下一跳流表是否位于所述主Switch中,若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理,若否,则发起对流水线环境的保护以生成第一报文封装包,并将所述第一报文封装包发送到所述下一跳流表对应的扩展Switch中。
  91. 根据权利要求85~89中任一项所述的系统,其特征在于,所述控制器用于向主Switch发送流表项,具体包括:在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述主Switch中;若是,则向所述主Switch发送包含所述流表跳转指令的流表项;若否,则将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述主Switch发送包含所述Switch转发指令的流表项;
    相应地,所述主Switch用于接收流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项;
    则所述主Switch用于对其接收的数据报文进行处理,具体包括:在接收到的所述数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;在接收到的所述数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第一报文封装包,并将所述第一报文封装包发送到所述下一跳流表对应的扩展Switch中。
  92. 根据权利要求90或91所述的系统,其特征在于,所述主Switch用 于发起对流水线环境的保护,具体包括:所述主Switch将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第一报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括所述下一跳流表编号ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
  93. 根据权利要求85~92中任一项所述的系统,其特征在于,所述当前扩展Switch,还用于在接收到与其对应的流表项之后,接收所述第一报文封装包;
    所述当前扩展Switch,还用于判断所述第一报文封装包中的下一跳流表编号ID是否位于所述当前扩展Switch,若否,则根据所述映射信息将所述第一报文封装包转发给所述下一跳流表ID对应的物理Switch,若是,则对所述第一报文封装包进行流水线环境的恢复,以获取所述数据报文。
  94. 根据权利要求93所述的系统,其特征在于,所述当前扩展Switch用于对所述第一报文封装包进行流水线环境的恢复,具体包括:对所述第一报文封装包进行解析获得解析信息,所述解析信息包括所述数据报文和对所述数据报文进行处理的相关信息;并根据所述解析信息进行流水线环境的恢复,将所述数据报文跳转到下一跳流表中继续进行处理。
  95. 根据权利要求93所述的系统,其特征在于,所述当前扩展Switch接收到的流表项包括所述控制器发送的用于进行流水线恢复的流表项;则所述当前扩展Switch,还用于将所述用于进行流水线恢复的流表项添加到所述当前扩展Switch的第一级流表table0’中;并通过所述table0’中添加的流表项对所述第一报文封装包进行对流水线环境的恢复。
  96. 根据权利要求95所述的系统,其特征在于,所述当前扩展Switch接收到的所述第一报文封装包中包括下一跳流表ID,所述当前扩展Switch接收到的用于进行流水线恢复的流表项包括匹配部分和执行指令,所述执行指令包括流表恢复指令和/或流表跳转指令;
    则所述当前扩展Switch用于通过所述table0’中添加的流表项对所述第一报文封装包进行对流水线环境的恢复,具体包括:通过所述table0’中的流表项对所述接收器接收到的第一报文封装包进行匹配;并在所述table0’中的流表项匹配成功时,根据匹配结果顺序执行所述已匹配的流表项中的流表恢复 指令和/或流表跳转指令。
  97. 根据权利要求93~96中任一项所述的系统,其特征在于,所述当前扩展Switch,还用于对所述第一报文封装包进行流水线环境的恢复之后,在获取到所述数据报文时,通过所述当前流表对所述数据报文进行处理;
    则所述当前扩展Switch,还用于根据所述映射信息判断下一跳流表是否位于所述当前扩展Switch中;若是,则将所述数据报文跳转到所述下一跳流表中继续进行处理;若否,则发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  98. 根据权利要求93~96中任一项所述的系统,其特征在于,所述控制器用于向当前扩展Switch发送流表项,具体包括:在待发送流表项中包括流表跳转指令时,判断下一跳流表是否位于所述当前扩展Switch中;若是,则向所述当前扩展Switch发送包含所述流表跳转指令的流表项;若否,则将所述待发送流表项中的流表跳转指令替换为Switch转发指令,并向所述当前扩展Switch发送包含所述Switch转发指令的流表项;
    相应地,所述当前扩展Switch用于接收流表项,具体包括:接收所述控制器发送的包括流表跳转指令或Switch转发指令的流表项;
    则所述当前扩展Switch,还用于对所述第一报文封装包进行流水线环境的恢复之后,获取到所述第一报文封装包中的数据报文,并通过所述当前流表对所述获取的数据报文进行处理。
  99. 根据权利要求98所述的系统,其特征在于,所述当前扩展Switch用于对所述获取的数据报文进行处理,具体包括:在所述获取的数据报文匹配到的流表项中包括所述流表跳转指令时,将所述数据报文跳转到所述下一跳流表中继续进行处理;或者,在所述获取的数据报文匹配到的流表项中包括所述Switch转发指令时,发起对流水线环境的保护以生成第二报文封装包,并将所述第二报文封装包发送到所述下一跳流表对应的扩展Switch中。
  100. 根据权利要求97~99中任一项所述的系统,其特征在于,所述当前扩展Switch用于发起对流水线环境的保护,具体包括:将对所述数据报文进行处理的相关信息和所述数据报文同时封装于所述第二报文封装包中,其中,所述对所述数据报文进行处理的相关信息至少包括下一跳流表ID,还包括任意数量的以下信息:输入端口(Ingress port)、所述数据报文当前对应的动作集(Action set)和流表间信息(Metadata)。
PCT/CN2014/089701 2014-10-28 2014-10-28 交换机处理方法、控制器、交换机及交换机处理系统 WO2016065536A1 (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2017522972A JP6448785B2 (ja) 2014-10-28 2014-10-28 スイッチ処理方法、コントローラ、スイッチ、およびスイッチ処理システム
EP14905150.0A EP3197106B1 (en) 2014-10-28 2014-10-28 Switch processing method, controller, switch, and switch processing system
PCT/CN2014/089701 WO2016065536A1 (zh) 2014-10-28 2014-10-28 交换机处理方法、控制器、交换机及交换机处理系统
BR112017008532-1A BR112017008532A2 (zh) 2014-10-28 2014-10-28 Switch approach, controllers, switches and switch processing system
RU2017115884A RU2666243C1 (ru) 2014-10-28 2014-10-28 Способ коммутационной обработки, контроллер, коммутатор и система коммутационной обработки
CN201480024931.3A CN105745877B (zh) 2014-10-28 2014-10-28 交换机处理方法、控制器、交换机及交换机处理系统
KR1020177012348A KR101996337B1 (ko) 2014-10-28 2014-10-28 교환기 처리 방법, 제어기, 교환기 및 교환기 처리 시스템
US15/499,163 US10498637B2 (en) 2014-10-28 2017-04-27 Switch processing method, controller, switch, and switch processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/089701 WO2016065536A1 (zh) 2014-10-28 2014-10-28 交换机处理方法、控制器、交换机及交换机处理系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/499,163 Continuation US10498637B2 (en) 2014-10-28 2017-04-27 Switch processing method, controller, switch, and switch processing system

Publications (1)

Publication Number Publication Date
WO2016065536A1 true WO2016065536A1 (zh) 2016-05-06

Family

ID=55856356

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/089701 WO2016065536A1 (zh) 2014-10-28 2014-10-28 交换机处理方法、控制器、交换机及交换机处理系统

Country Status (8)

Country Link
US (1) US10498637B2 (zh)
EP (1) EP3197106B1 (zh)
JP (1) JP6448785B2 (zh)
KR (1) KR101996337B1 (zh)
CN (1) CN105745877B (zh)
BR (1) BR112017008532A2 (zh)
RU (1) RU2666243C1 (zh)
WO (1) WO2016065536A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536379B2 (en) * 2017-09-28 2020-01-14 Argela Yazilim Ve Bilisim Teknolojileri San Ve Tic. A.S. System and method for control traffic reduction between SDN controller and switch
CN107623635B (zh) * 2017-10-30 2020-07-21 深圳市德赛微电子技术有限公司 一种网络交换芯片可识别流表的智能匹配方法
CN112764679B (zh) * 2021-01-19 2022-04-12 福建天泉教育科技有限公司 一种动态扩容的方法及终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546351A (zh) * 2012-03-15 2012-07-04 北京邮电大学 openflow网络和现有IP网络互联的系统和方法
US20130003549A1 (en) * 2011-06-30 2013-01-03 Broadcom Corporation Resilient Hashing for Load Balancing of Traffic Flows
CN103200101A (zh) * 2013-04-15 2013-07-10 昆山天元昌电子有限公司 基于交换芯片的openflow多表查询的方法及装置
CN103347013A (zh) * 2013-06-21 2013-10-09 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法
US20140169158A1 (en) * 2012-12-17 2014-06-19 Telefonaktiebolaget L M Ericsson (Publ) Extending the reach and effectiveness of header compression in access networks using sdn

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8391282B1 (en) * 2001-07-02 2013-03-05 Haw-Minn Lu Systems and methods for overlaid switching networks
JP2007274305A (ja) * 2006-03-31 2007-10-18 Nec Corp リングネットワーク、通信装置及びそれらに用いる運用管理方法
EP2804350B1 (en) * 2009-04-01 2019-07-24 Nicira, Inc. Method and apparatus for implementing and managing virtual switches
CN103168453B (zh) * 2010-10-15 2016-08-03 日本电气株式会社 交换机系统和数据转发方法
AU2012296330B2 (en) * 2011-08-17 2016-03-17 Nicira, Inc. Hierarchical controller clusters for interconnecting different logical domains
AU2013249152B2 (en) * 2012-04-18 2016-04-28 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US10263848B2 (en) * 2013-03-20 2019-04-16 Wolting Holding B.V. Compiler for and method for software defined networks
CN103428094B (zh) * 2013-08-12 2016-08-17 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130003549A1 (en) * 2011-06-30 2013-01-03 Broadcom Corporation Resilient Hashing for Load Balancing of Traffic Flows
CN102546351A (zh) * 2012-03-15 2012-07-04 北京邮电大学 openflow网络和现有IP网络互联的系统和方法
US20140169158A1 (en) * 2012-12-17 2014-06-19 Telefonaktiebolaget L M Ericsson (Publ) Extending the reach and effectiveness of header compression in access networks using sdn
CN103200101A (zh) * 2013-04-15 2013-07-10 昆山天元昌电子有限公司 基于交换芯片的openflow多表查询的方法及装置
CN103347013A (zh) * 2013-06-21 2013-10-09 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法

Also Published As

Publication number Publication date
CN105745877B (zh) 2019-04-12
CN105745877A (zh) 2016-07-06
JP2017532912A (ja) 2017-11-02
EP3197106B1 (en) 2020-01-01
KR20170068525A (ko) 2017-06-19
JP6448785B2 (ja) 2019-01-09
US10498637B2 (en) 2019-12-03
EP3197106A4 (en) 2017-11-15
BR112017008532A2 (zh) 2018-06-19
KR101996337B1 (ko) 2019-07-04
US20170289026A1 (en) 2017-10-05
EP3197106A1 (en) 2017-07-26
RU2666243C1 (ru) 2018-09-06

Similar Documents

Publication Publication Date Title
US20200204486A1 (en) Network interface card, computing device, and data packet processing method
US20200213222A1 (en) Network Interface Card, Computing Device, and Data Packet Processing Method
US10831527B2 (en) Providing link aggregation and high availability through network virtualization layer
US20210149706A1 (en) Data Processing Method and Related Device
US10324137B2 (en) Intelligent method for calibrating battery capacity
US10193811B1 (en) Flow distribution using telemetry and machine learning techniques
US20160320827A1 (en) Method and system for boosting power supply
CN110958169B (zh) 根据需求生成灵活、可编程且可扩展的网络隧道
US20120207026A1 (en) Computer-readable medium storing communication control program, information processing device, and packet communication method
US10031685B2 (en) Power management of storage subsystem
US10003503B2 (en) Tunnel type selection method and apparatus
WO2016065536A1 (zh) 交换机处理方法、控制器、交换机及交换机处理系统
US11381497B2 (en) Path selection method and device
CN105391647A (zh) 一种流量控制的方法及系统
CN108650337B (zh) 一种服务器探测方法、系统及存储介质
CN107018072B (zh) 一种数据帧发送方法和接入设备
US11689447B2 (en) Enhanced dynamic encryption packet segmentation
US9819571B2 (en) Control apparatus and method for supplying switch with entry
CN117411878A (zh) 云系统、报文处理方法、装置、及网卡
CN116599839A (zh) 云网关系统、数据处理方法、设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14905150

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2014905150

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017522972

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20177012348

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017115884

Country of ref document: RU

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112017008532

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112017008532

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20170425