报文处理方法及物理转发设备的制作方法

文档序号:7776375阅读:179来源:国知局
报文处理方法及物理转发设备的制作方法【专利摘要】本发明适用于数据通信【
技术领域
】,提供了一种报文处理方法及物理转发设备,所述方法包括:物理转发设备接收报文;所述物理转发设备从第一流表的流表描述符中获取所述报文的关键字中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址;所述物理转发设备根据所述字段的获取方式的信息从所述报文获取关键字;所述物理转发设备根据所述第一流表的存储地址确定所述第一流表;所述物理转发设备根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述关键字匹配的表项;所述物理转发设备根据与所述关键字匹配的表项对所述报文进行处理。通过本发明可以解决现有技术存在的不便于部署新的业务的问题。【专利说明】报文处理方法及物理转发设备【
技术领域
】[0001]本发明涉及数据通信【
技术领域
】,尤其涉及报文处理方法及物理转发设备。【
背景技术
】[0002]在目前的网络架构中,网络处理器(英文:networkprocessor,简称:NP)芯片凭借自身灵活的可编程优势,使其在各种交换机设备、路由器上广泛应用。传统网络在安全性、灵活性、网络管理等方面面临诸多问题。随着网络用户的增多,以及物联网和大数据时代的到来,传统的交换机、路由器等转发设备已经变得极度复杂,整个网络也逐渐变得臃肿不堪。不但使得运营商的管理成本升高,而且使得网络本身也变得脆弱。[0003]软件定义网络(英文:software-definednetworks,简称:SDN)将传统网络设备的转发和控制两个功能模块分离,通过集中式的控制器以及标准化的接口对各种网络设备进行配置和管理。SDN进一步将控制器在功能上当作网络操作系统,为上层应用提供统一的编程接口,用户可以根据需求开发出各种应用程序,通过软件定义网络转发方式和拓扑结构,从而满足网络安全性、灵活性、管理等方面的需求。[0004]SDN提供的软件可编程接口。软件可编程接口要求网络设备的转发层的设计从底层转发设备上移到控制设备,从而在底层转发设备上实现控制和转发的分离、软件和硬件的解耦。软件可编程接口要求底层转发设备的实现必须满足SDN软件可编程的需求。而现有的基于NP芯片的转发设备,其转发层的实现方法都是将转发流程都固化在转发设备中,不能够满足SDN通过软件可编程接口实现软件定义网络的目的。[0005]具体地,如图1所示为例,现有的传统网络设备由于控制层和转发层同在一个设备上,转发层面的设计是面向整个业务处理流程。报文进入设备后会依次经过报文分析表(英文:packetanalysis,简称:PA)、入端口属性表(英文:inputportattributetable,简称:IPAT)、入虚拟局域网(英文:inputvirtuallocalareanetwork,简称:IVLAN)表、入口流(英文:inputflow)分类/属性表、媒体访问控制(英文:mediaaccesscontrol,简称:MAC)转发表、出口流(英文:exportflow,简称EFL0W)分类/属性表、出虚拟局域网(英文:exportvirtuallocalareanetwork,简称:EVLAN)表、出端口属性(英文:exportportattributetable,简称:EPAT)表的处理。控制平面和转发平面在同一设备上,控制平面通过生成和维护上述表来控制转发流程。上述技术方案不便于部署新的业务。【
发明内容】[0006]本发明实施例的目的在于提供报文处理方法及物理转发设备,以解决现有技术存在的不便于部署新的业务的问题。[0007]第一方面,所述报文处理方法包括:[0008]物理转发设备接收报文;所述物理转发设备从第一流表的流表描述符FTD中获取所述报文的关键字KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址;所述物理转发设备根据所述字段的获取方式的信息从所述报文获取所述KEY;所述物理转发设备根据所述第一流表的存储地址确定所述第一流表;所述物理转发设备根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项;所述物理转发设备根据与所述KEY匹配的表项对所述报文进行处理。[0009]在第一方面的第一种可能的实现方式中,所述字段的获取方式的信息是所述字段的获取方式的标识,或者,所述字段的获取方式的信息是所述字段的开始位置的信息以及所述字段的长度的信息。[0010]结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述物理转发设备接收报文之前,所述方法还包括:[0011]所述物理转发设备接收控制器发送的第一消息;[0012]所述物理转发设备根据所述第一消息,为虚拟转发设备分配第一硬件资源,所述第一硬件资源是所述物理转发设备的硬件资源,所述虚拟转发设备运行在所述物理转发设备上;[0013]所述物理转发设备接收所述控制器发送的第二消息;[0014]所述物理转发设备根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源;[0015]所述物理转发设备接收所述控制器发送的第三消息;[0016]所述物理转发设备根据所述第三消息,生成所述第一流表的FTD;[0017]所述物理转发设备接收所述控制器发送的第四消息;[0018]所述物理转发设备根据所述第四消息,将所述与所述KEY匹配的表项添加到所述第一流表中。[0019]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一消息包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸;所述第一硬件资源包括所述用于存储流表的存储空间以及所述用于存储指令的存储空间。[0020]结合第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能实现方式中,所述第二消息包括用于存储所述第一流表的存储空间的尺寸。[0021]结合第一方面的第二种可能的实现方式、第三种可能的实现方式或者第四种可能的实现方式,在第一方面的第五种可能实现方式中,所述第三消息包括所述字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址。[0022]第二方面,所述物理转发设备包括:[0023]接收单元,用于接收报文;[0024]第一获取单元,用于从第一流表的流表描述符FTD获取所述报文的关键字KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址;[0025]第二获取单元,用于根据所述字段的获取方式的信息从所述报文获取所述KEY;[0026]确定单元,用于根据所述第一流表的存储地址确定所述第一流表;[0027]查找单元,用于根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项;[0028]处理单元,用于根据与所述KEY匹配的表项对所述报文进行处理。[0029]在第二方面的第一种可能的实现方式中,所述字段的获取方式的信息是所述字段的获取方式的标识,或者,所述字段的获取方式的信息是所述字段的开始位置的信息以及所述字段的长度的信息。[0030]结合第二方面或者第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,所述接收单元还用于:[0031]接收控制器发送的第一消息、第二消息、第三消息和第四消息;[0032]所述物理转发设备还包括:[0033]第一分配单元,用于根据所述第一消息,为虚拟转发设备分配第一硬件资源,所述第一硬件资源是所述物理转发设备的硬件资源,所述虚拟转发设备运行在所述物理转发设备上;[0034]第二分配单元,用于根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源;[0035]生成单元,用于根据所述第三消息,生成所述第一流表的FTD;[0036]添加单元,用于根据所述第四消息,将所述与所述KEY匹配的表项添加到所述第一流表中。[0037]结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一消息包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸;所述第一硬件资源包括所述用于存储流表的存储空间以及所述用于存储指令的存储空间。[0038]上述技术方案中,物理转发设备接收报文后,可以从第一流表的流表描述符中获取报文的KEY中的字段的获取方式的信息、第一流表的查找方式的信息和第一流表的存储地址。物理转发设备可以根据字段的获取方式的信息获取KEY。物理转发设备根据第一流表的存储地址确定第一流表。物理转发设备根据第一流表的查找方式的信息在第一流表中查找与KEY匹配的表项。物理转发设备根据与KEY匹配的表项对报文进行处理。上述技术方案中,流表描述符记载了KEY中的字段的获取方式的信息以及流表的查找方式的信息。因此,可以通过修改流表描述符改变KEY中的字段的获取方式以及流表的查找方式。有助于部署新的业务。【专利附图】【附图说明】[0039]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0040]图1是现有技术提供的传统网络设备的报文流程图;[0041]图2是本发明一实施例提供的报文处理方法的实现流程图;[0042]图3是本发明另一实施例提供的报文处理方法的实现流程图;[0043]图4是本发明另一实施例提供的报文处理方法的实现流程图;[0044]图5是本发明另一实施例提供的物理转发设备的组成结构图;[0045]图6是本发明另一实施例提供的物理转发设备的组成结构图;[0046]图7是本发明另一实施例提供的物理转发设备的硬件结构图;[0047]图8是本发明另一实施例提供的物理转发设备的硬件结构图。【具体实施方式】[0048]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0049]图2示出了本发明一实施例提供的报文处理方法的实现流程。该实施例的执行主体可以为物理转发设备。所述物理转发设备可以是路由器、网络交换机、防火墙或者负载均衡器。所述网络交换机可以是开放流(英文=OpenFlow)交换机。图2所示的方法的执行主体也可以是NP。图2所示的方法详述如下:[0050]在S201中,接收报文。[0051]举例来说,S201的执行主体可以是NP。[0052]举例来说,所述报文可以是因特网(英文:internetprotocol,简称:IP)报文、媒体访问控制(英文:mediaaccesscontrol,简称:MAC)协议巾贞或者多协议标记交换(英文:multiprotocollabelswitching,简称:MPLS)协议报文。[0053]在S202中,从第一流表的流表描述符(英文:flowtabledescriptor,简称:FTD)中获取所述报文的关键字(英文:KEY)中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址。[0054]举例来说,S202的执行主体可以是所述NP。[0055]举例来说,所述关键字可以包括一个字段或者多个字段。例如,在所述报文是MAC协议帧的场景下,所述关键字可以是所述MAC协议帧的目的MAC协议地址。在所述报文是IP报文的场景下,所述关键字是所述IP报文的目的IP地址。在所述报文是IP报文的场景下,所述关键字是所述IP报文的目的IP地址、源地址、目的端口、源端口以及协议号。[0056]需要说明的是,在本文中,“第一”、“第二”等并不用表示顺序,仅作为标识,在本实施例中,第一流表中的“第一”并不代表先后顺序,仅用于标识流表,第一流表确定方式有两种方式,一种方式是设置当报文进入OpenFlow交换机时读取的流表,也称为入口流表,有报文进入到OpenFlow交换机时,首先查找该流表,另一种方式是用表标识(英文:identity,简称:ID)为O的流表作为第一流表,当然也可以用表ID为其他值的流表作为第一流表。[0057]还需要说明的是,流表的查找方式可以是:线性查找,精确匹配查找(英文=ExactMatchLookup,简称:EML)、TCAM查找或者最长前缀匹配(英文:LongestPrefixMatch,简称:LPM)查找。[0058]还需要说明的是,所述字段的获取方式的信息可以是所述字段的获取方式的标识。所述字段的获取方式的信息可以是所述字段的开始位置的信息以及所述字段的长度的信息。[0059]在S203中,根据所述字段的获取方式的信息从所述报文获取所述KEY。[0060]举例来说,S203的执行主体可以是所述NP。[0061]具体来说,根据所述字段的获取方式的信息指示的获取方式,从所述报文中获取所述KEY。[0062]在本实施例中,根据所述字段的获取方式的信息和所述报文获取所述KEY的方法可以包括:[0063]根据所述字段的获取方式的信息,调用第一微码指令。所述第一微码指令包括所述字段的开始位置的信息以及所述字段的长度的信息;[0064]执行所述第一微码指令以从所述报文中获取所述KEY。[0065]举例来说,在所述报文是IP报文,所述KEY的字段是源IP地址和目的IP地址的场景下,所述字段的获取方式的信息可以是I和2。所述第一微码指令包括用于获取源IP地址的微码指令以及用于获取目的IP地址的微码指令。I对应用于获取源IP地址的微码指令。2对应用于获取目的IP地址的微码指令。所述NP可以根据I调用用于获取源IP地址的微码指令。所述NP可以根据2调用用于获取目的IP地址的微码指令。用于获取源IP地址的微码指令中可以包含源IP地址在所述IP报文的中的位置的信息。源IP地址在所述IP报文的中的位置的信息可以包括源IP地址在所述IP报文的开始位置的信息以及所述源IP地址的长度的信息。用于获取目的IP地址的微码指令中可以包含目的IP地址在所述IP报文的中的位置的信息。目的IP地址在所述IP报文的中的位置的信息可以包括目的IP地址在所述IP报文的开始位置的信息以及所述目的IP地址的长度的信息。[0066]需要说明的是,所述字段的开始位置的信息可以是偏移。所述字段的开始位置也可以是基础地址与所述偏移的和。[0067]在本实施例中,根据所述字段的获取方式的信息和所述报文获取所述KEY的方法还包括:[0068]根据所述字段的开始位置的信息以及所述字段的长度的信息,从所述报文中获取所述KEY。[0069]在S204中,根据所述第一流表的存储地址确定所述第一流表。[0070]本实施例不限定S203和S204的先后顺序。[0071]举例来说,S204的执行主体可以是所述NP。[0072]举例来说,所述存储地址可以是所述第一流表的开始地址或者所述第一流表的结束地址。[0073]在S205中,根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项。[0074]举例来说,S205的执行主体可以是所述NP。[0075]在S206中,根据与所述KEY匹配的表项对所述报文进行处理。[0076]举例来说,S206的执行主体可以是所述NP。[0077]举例来说,对所述报文进行处理可以是转发所述报文,修改所述报文,对所述报文进行封装、丢弃所述报文,对所述报文执行计数(英文counter)操作或者对所述报文执行承诺接入速率(英文:committedaccessrate,简称:CAR)操作。[0078]在本实施例中,根据与所述KEY匹配的表项对所述报文进行处理可以为:根据与所述KEY匹配的表项中指令流对所述报文进行处理,当表项中为流表跳转指令时,根据流表跳转指令携带的表ID,跳转到表ID对应的第二流表,返回执行从第二流表的FTD中获取所述报文的关键字KEY中的至少一个字段的类型的信息、所述第二流表的查找方式的信息和所述第二流表的存储地址的步骤;当表项中为报文发送指令时,将所述报文发送。[0079]可选的,图2所述的方法中,还可以包括:[0080]在没有获取所述KEY的情况下或者在没有查找与所述KEY匹配的表项的情况下,所述物理转发设备将所述报文发送至控制器。[0081]在本实施例中,物理转发设备接收报文后,可以从第一流表的流表描述符中获取报文的KEY中的字段的获取方式的信息、第一流表的查找方式的信息和第一流表的存储地址。物理转发设备可以根据字段的获取方式的信息获取KEY。物理转发设备根据第一流表的存储地址确定第一流表。物理转发设备根据第一流表的查找方式的信息在第一流表中查找与KEY匹配的表项。物理转发设备根据与KEY匹配的表项对报文进行处理。上述技术方案中,流表描述符记载了KEY中的字段的获取方式的信息以及流表的查找方式的信息。因此,可以通过修改流表描述符改变KEY中的字段的获取方式以及流表的查找方式。有助于部署新的业务。[0082]图3示出了本发明另一实施例提供的报文处理方法的实现流程,该实施例的执行主体可以为物理转发设备,物理转发设备包括OpenFlow交换机,该方法过程详述如下:[0083]在S301中,接收报文。[0084]在S302中,判断所述第一流表对应的FTD是否有效,若是,则执行S303,若否,则进入异常处理流程。[0085]需要说明的是,每张流表都有对应的FTD,FTD中有一个字段来标识所述FTD是否有效。[0086]在S303中,从第一流表的FTD中获取所述报文的KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址。[0087]在S304中,根据所述字段的获取方式的信息从所述报文获取所述KEY。[0088]在S305中,根据所述第一流表的存储地址确定所述第一流表。[0089]在S306中,根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项。[0090]需要说明的是,流表包括KEY和与KEY对应的关联数据(英文AssociatedData,简称:AD),关联数据中存储了指令流存储的首位地址。指令流包括操作指令、编辑指令、报文发送指令和流表跳转指令,上述指令由操作码和数据区组成,采用变长指令格式,长度为1-8个字节,其中操作码长度统一为I个字节,数据区长度为0-7个字节。操作指令,用于提供一些最基础的运算处理、存储等操作;编辑指令用于提供一些报文编辑的指令,用于快速完成常用的报文编辑处理,满足网络所有第二、第三层编辑需求;报文发送指令和流表跳转指令用于对转发流程进行控制。[0091]在步骤S307中,根据与所述KEY匹配的表项对所述报文进行处理。[0092]在步骤S308中,判断是否需要将所述报文发送至控制器,若是,则执行S309,若否,则丢弃所述报文。[0093]在步骤S309中,将所述报文发送至控制器。[0094]可以对图1所示的方法进行扩展以得到图4所示的方法。图4示出了本发明另一实施例提供的报文处理方法的实现流程。图4所示的方法的执行主体可以与图1所示的方法的执行主体相同。图4所示的方法中的步骤可以发生在S201之前。图4所示的方法详述如下:[0095]在S401中,接收控制器发送的第一消息。[0096]需要说明的是,在包含控制器和开放流交换机的系统中,可能存在多个控制器。因此第一消息可以包括所述控制器的标识(英文:identity,简称:ID),用于区分根据所述第一消息对应的虚拟转发设备对应哪台控制器。举例来说,所述第一消息还包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸。[0097]在S402中,根据所述第一消息,为虚拟转发设备分配第一硬件资源。[0098]举例来说,所述虚拟转发设备运行在所述物理转发设备上。[0099]需要说明的是,所述第一硬件资源可以包括所述用于存储流表的存储空间以及所述用于存储指令的存储空间。[0100]在S403中,接收所述控制器发送的第二消息。[0101]需要说明的是,第二消息的目的是为了在第一硬件资源内创建流表,所述第二消息可以包括所述控制器的ID,使得根据第二消息创建的第一流表可以与第一硬件资源对应。第二消息还包括第一流表的存储空间的尺寸。[0102]在S404中,根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源。[0103]在S405中,接收所述控制器发送的第三消息。[0104]需要说明的是,上述第三消息包括所述字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址。[0105]在S406中,根据所述第三消息,生成所述第一流表的FTD。[0106]在S407中,接收所述控制器发送的第四指令。[0107]在S408中,根据所述第四指令,将所述与所述KEY匹配的表项添加到所述第一流表中。[0108]在本实施例中,步骤S409至步骤S417与图3对应实施例中步骤S301至S309相同。[0109]图5示出了本发明另一实施例提供的物理转发设备的组成结构图。所述物理转发设备可以是路由器、网络交换机、防火墙或者负载均衡器。所述网络交换机可以是OpenFlow交换机。所述物理转发设备也可以是NP。图5所示的物理转发设备可以用于执行图2所示方法以及图4所示的方法。图5所示的物理转发设备包括:[0110]接收单元51,用于接收报文。[0111]第一获取单元52,用于从第一流表的FTD获取所述报文的KEY的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址。[0112]第二获取单元53,用于根据所述字段的获取方式的信息从所述报文获取所述KEY;[0113]确定单元54,用于根据所述第一流表的存储地址确定所述第一流表;[0114]查找单元55,用于根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项;[0115]处理单元56,用于根据与所述KEY匹配的表项对所述报文进行处理。[0116]本实施例不限定第二获取单元53执行的步骤与确定单元54执行的步骤的先后顺序。[0117]可选的是,所述物理转发设备还包括:[0118]发送单元,用于在没有获取所述KEY的情况下或者在没有查找与所述KEY匹配的表项的情况下,所述物理转发设备将所述报文发送至控制器。[0119]在本实施例中,物理转发设备接收报文后,可以从第一流表的流表描述符中获取报文的KEY中的字段的获取方式的信息、第一流表的查找方式的信息和第一流表的存储地址。物理转发设备可以根据字段的获取方式的信息获取KEY。物理转发设备根据第一流表的存储地址确定第一流表。物理转发设备根据第一流表的查找方式的信息在第一流表中查找与KEY匹配的表项。物理转发设备根据与KEY匹配的表项对报文进行处理。上述技术方案中,流表描述符记载了KEY中的字段的获取方式的信息以及流表的查找方式的信息。因此,可以通过修改流表描述符改变KEY中的字段的获取方式以及流表的查找方式。有助于部署新的业务。[0120]本实施例提供的交换机可以使用在前述对应的报文处理方法,详情参见上述图2对应实施例的相关描述,在此不再赘述。[0121]可以对图5所示的物理转发设备进行扩展以得到图6所示的物理转发设备。图6示出了本发明另一实施例提供的物理转发设备的组成结构图。图6所示的物理转发设备包括:[0122]接收单元61,用于接收控制发送的第一消息、第二消息、第三消息和第四消息。[0123]所述物理转发设备还包括:[0124]第一分配单元62,用于根据所述第一消息,为虚拟转发设备分配第一硬件资源,所述第一硬件资源是所述物理转发设备的硬件资源,所述虚拟转发设备运行在所述物理转发设备上;[0125]第二分配单元63,用于根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源;[0126]生成单元64,用于根据所述第三消息,生成所述第一流表的FTD;[0127]添加单元65,用于根据所述第四消息,将所述与所述KEY匹配的表项添加到所述第一流表中。[0128]可选的,所述第一消息包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸;所述第一硬件资源包括所述用于存储流表的存储空间以及所述用于存储指令的存储空间。[0129]本实施例提供的物理转发设备还包括图3对应实施例提供的物理转发设备中的所有单元。[0130]本实施例提供的物理转发设备可以使用在前述对应的报文处理方法,详情参见上述图4对应实施例的相关描述,在此不再赘述。[0131]本领域普通技术人员可以理解为所述实施例所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。[0132]图7示出了本发明另一实施例提供的物理转发设备的硬件结构图,本发明实施例提供的物理转发设备可以用于执行图2所示的方法。图7所示的硬件结构可以用于实现图4所示的物理转发设备。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2对应实施例。[0133]图7所示的物理转发设备包括:[0134]处理器701、存储器702、通信接口703通过总线704相互连接;总线704可以是工业标准架构体系(英文:IndustryStandardArchitecture,简称:ISA)总线或外围组件互联(英文!PeripheralComponentInterconnect,简称:PCI)总线。[0135]上述的处理器701可以是中央处理器(英文:centralprocessingunit,简称CPU)或者NP。[0136]通信接口703,用于接收报文;[0137]处理器701,用于从第一流表的FTD中获取所述报文的KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址;[0138]所述处理器701,还用于根据所述字段的获取方式的信息从所述报文获取所述KEY;[0139]所述处理器701,还用于根据所述第一流表的存储地址确定所述第一流表;[0140]所述处理器701,还用于根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项;[0141]所述处理器701,还用于根据与所述KEY匹配的表项对所述报文进行处理。[0142]可选的,所述处理器701还用于:[0143]在没有获取所述KEY的情况下或者在没有查找与所述KEY匹配的表项的情况下,所述物理转发设备将所述报文发送至控制器。[0144]可选的,所述处理器还用于:[0145]判断所述第一流表对应的FTD是否有效;[0146]若是,则从第一流表的FTD中获取所述报文的KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址,若否,则则进入异常处理流程。[0147]可选的,所述处理器还用于:[0148]判断是否需要将所述报文发送至控制器;[0149]若是,则将所述报文发送至控制器,若否,则丢弃所述报文。[0150]在本实施例中,物理转发设备接收报文后,可以从第一流表的流表描述符中获取报文的KEY中的字段的获取方式的信息、第一流表的查找方式的信息和第一流表的存储地址。物理转发设备可以根据字段的获取方式的信息获取KEY。物理转发设备根据第一流表的存储地址确定第一流表。物理转发设备根据第一流表的查找方式的信息在第一流表中查找与KEY匹配的表项。物理转发设备根据与KEY匹配的表项对报文进行处理。上述技术方案中,流表描述符记载了KEY中的字段的获取方式的信息以及流表的查找方式的信息。因此,可以通过修改流表描述符改变KEY中的字段的获取方式以及流表的查找方式。有助于部署新的业务。[0151]本领域技术人员可以理解,图7中示出物理转发设备的硬件结构并不构成对交换机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。[0152]图8示出了本发明另一实施例提供的物理转发设备的硬件结构图。本发明实施例提供的物理转发设备可以用于实施图4对应实施例的方法。图8所示的硬件结构可以用于实现图5所示的物理转发设备。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图4对应实施例。[0153]图8所示的物理转发设备包括:[0154]处理器801、存储器802、通信接口803通过总线804相互连接;总线804可以是ISA总线或PCI总线。[0155]上述的处理器801可以是CPU或者NP。[0156]通信接口803,接收控制发送的第一消息、第二消息、第三消息和第四消息;[0157]处理器801,用于根据所述第一消息,为虚拟转发设备分配第一硬件资源,所述第一硬件资源是所述物理转发设备的硬件资源,所述虚拟转发设备运行在所述物理转发设备上;[0158]所述处理器801,还用于根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源;[0159]所述处理器801,还用于根据所述第三消息,生成所述第一流表的FTD;[0160]所述处理器801,还用于根据所述第四消息,将所述与所述KEY匹配的表项添加到所述第一流表中。[0161]可选的,所述第一消息包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸;所述第一硬件资源包括所述用于存储流表的存储空间以及所述用于存储指令的存储空间。[0162]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。[0163]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0164]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0165]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0166]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0167]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以计算机程序的形式体现出来,该计算机程序存储在一个存储介质中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。具体来说,所述计算机设备包括处理器。所述处理器可以通过访问所述存储介质中的所述计算机程序,从而执行本发明各个实施例所述方法的全部或部分步骤。前述的处理器可以是CPU,NP或者现场可编程门阵列(英文:fieldprogrammablegatearray,简称:FPGA)。前述的存储介质可以是:U盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:R0M)、随机存取存储器(英文:randomaccessmemory,简称:RAM)、磁碟或者光盘。【权利要求】1.一种报文处理方法,其特征在于,所述方法包括:物理转发设备接收报文;所述物理转发设备从第一流表的流表描述符FTD中获取所述报文的关键字KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址;所述物理转发设备根据所述字段的获取方式的信息从所述报文获取所述KEY;所述物理转发设备根据所述第一流表的存储地址确定所述第一流表;所述物理转发设备根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项;所述物理转发设备根据与所述KEY匹配的表项对所述报文进行处理。2.如权利要求1所述的方法,其特征在于,所述字段的获取方式的信息是所述字段的获取方式的标识,或者,所述字段的获取方式的信息是所述字段的开始位置的信息以及所述字段的长度的信息。3.如权利要求1或2所述的方法,其特征在于,所述物理转发设备接收报文之前,所述方法还包括:所述物理转发设备接收控制器发送的第一消息;所述物理转发设备根据所述第一消息,为虚拟转发设备分配第一硬件资源,所述第一硬件资源是所述物理转发设备的硬件资源,所述虚拟转发设备运行在所述物理转发设备上;所述物理转发设备接收所述控制器发送的第二消息;所述物理转发设备根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源;所述物理转发设备接收所述控制器发送的第三消息;所述物理转发设备根据所述第三消息,生成所述第一流表的FTD;所述物理转发设备接收所述控制器发送的第四消息;所述物理转发设备根据所述第四消息,将所述与所述KEY匹配的表项添加到所述第一流表中。4.如权利要求3所述的方法,其特征在于,所述第一消息包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸;所述第一硬件资源包括所述用于存储流表的存储空间以及所述用于存储指令的存储空间。5.如权利要求3或4所述的方法,其特征在于,所述第二消息包括用于存储所述第一流表的存储空间的尺寸。6.如权利要求3或4或5所述的方法,其特征在于,所述第三消息包括所述字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址。7.—种物理转发设备,其特征在于,所述物理转发设备包括:接收单元,用于接收报文;第一获取单元,用于从第一流表的流表描述符FTD获取所述报文的关键字KEY中的字段的获取方式的信息、所述第一流表的查找方式的信息和所述第一流表的存储地址;第二获取单元,用于根据所述字段的获取方式的信息从所述报文获取所述KEY;确定单元,用于根据所述第一流表的存储地址确定所述第一流表;查找单元,用于根据所述第一流表的查找方式的信息,在所述第一流表中查找与所述KEY匹配的表项;处理单元,用于根据与所述KEY匹配的表项对所述报文进行处理。8.如权利要求7所述的物理转发设备,其特征在于,所述字段的获取方式的信息是所述字段的获取方式的标识,或者,所述字段的获取方式的信息是所述字段的开始位置的信息以及所述字段的长度的信息。9.如权利要求7或8所述的物理转发设备,其特征在于,所述接收单元还用于:接收控制器发送的第一消息、第二消息、第三消息和第四消息;所述物理转发设备还包括:第一分配单元,用于根据所述第一消息,为虚拟转发设备分配第一硬件资源,所述第一硬件资源是所述物理转发设备的硬件资源,所述虚拟转发设备运行在所述物理转发设备上;第二分配单元,用于根据所述第二消息,为所述第一流表分配第二硬件资源,所述第二硬件资源是所述第一硬件资源中的硬件资源;生成单元,用于根据所述第三消息,生成所述第一流表的FTD;添加单元,用于根据所述第四消息,将所述与所述KEY匹配的表项添加到所述第一流表中。10.如权利要求9所述的物理转发设备,其特征在于,所述第一消息包含用于存储流表的存储空间的尺寸以及用于存储指令的存储空间的尺寸,所述第一硬件资源包括所述用于存储流表的存储空间以及所述用于`存储指令的存储空间。【文档编号】H04L12/861GK103560951SQ201310566327【公开日】2014年2月5日申请日期:2013年11月13日优先权日:2013年11月13日【发明者】崔弘飞,李晓华,刘永峰,张瑞丰申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1