网络设备以及处理报文方法

文档序号:7989118阅读:322来源:国知局
网络设备以及处理报文方法
【专利摘要】本发明实施例提供了一种网络设备,包括可编程处理器以及不可编程处理器;可编程处理器包括第一控制端口;不可编程处理器包括第二控制端口,第二控制端口用于耦合第一控制端口;可编程处理器用于接收第一报文,第一报文的报文头对应的协议是第一协议;第一控制端口和第二控制端口用于连接可编程处理器和不可编程处理器,可编程处理器和不可编程处理器用于合作对第一报文执行第一协议,不可编程处理器用于确定可编程处理器对第一报文执行的第一协议的动作,可编程处理器用于执行动作。此外,本发明实施例还提供了处理报文的方法。根据上述技术方案,有助于减少对可编程处理器的存储空间的占用。
【专利说明】网络设备以及处理报文方法
【技术领域】
[0001]本发明涉及通信领域,特别是网络设备以及处理报文方法。
【背景技术】
[0002]可编程处理器已广泛应用于通信领域。网络处理器(network processor,NP)是一种典型的可编程处理器。目前,很多路由器和交换机中都包含了 NP。为实现对报文的处理,可编程处理器中可以包含用于执行多个协议的代码。例如,为实现对网际协议(InternetProtocol, IP)报文的处理,可编程处理器中可以包含用于执行IP的代码。
[0003]为执行某种协议,需要在可编程处理器中加载用于执行该协议的代码,占用了可编程处理器的存储空间。

【发明内容】

[0004]为减少对可编程处理器的存储空间的占用,本发明实施例提供了网络设备以及处理报文的方法。
[0005]第一方面,提供了一种网络设备,包括可编程处理器以及不可编程处理器;
[0006]所述可编程处理器包括第一控制端口 ;
[0007]所述不可编程处理器包括第二控制端口,所述第二控制端口用于耦合所述第一控制端口 ;
[0008]所述可编程处理器用于接收第一报文,所述第一报文的报文头对应的协议是第一协议;
[0009]所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议,所述不可编程处理器用于确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器用于执行所述动作。
[0010]从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
[0011]在第一方面提供的网络设备的第一种可能的实现方式中,所述动作包括:
[0012]所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
[0013]所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
[0014]根据第一方面提供的网络设备,或者第一方面提供的网络设备的第一种可能的实现方式,在第一方面提供的网络设备的第二种可能的实现方式中,
[0015]所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
[0016]所述不可编程处理器用于根据所述输入信息获取输出信息;
[0017]所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
[0018]根据第一方面提供的网络设备的第二种可能的实现方式,在第一方面提供的网络设备的第三种可能的实现方式中,获取所述输出信息包括:
[0019]所述不可编程处理器通过与协处理器交互获得中间数据;
[0020]所述不可编程处理器根据所述中间数据获取所述输出信息。
[0021]根据第一方面提供的网络设备的第三种可能的实现方式,在第一方面提供的网络设备的第四种可能的实现方式中,所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率(committed access rate, CAR)协处理器以及计数器(counter)。
[0022]根据第一方面提供的网络设备,第一方面提供的网络设备的第一种可能的实现方式,第一方面提供的网络设备的第二种可能的实现方式,第一方面提供的网络设备的第三种可能的实现方式,或者第一方面提供的网络设备的第四种可能的实现方式,在第一方面提供的网络设备的第五种可能的实现方式中,
[0023]所述可编程处理器还包括用于执行第三协议的代码。
[0024]根据第一方面提供的网络设备,第一方面提供的网络设备的第一种可能的实现方式,第一方面提供的网络设备的第二种可能的实现方式,第一方面提供的网络设备的第三种可能的实现方式,第一方面提供的网络设备的第四种可能的实现方式,或者第一方面提供的网络设备的第五种可能的实现方式在第一方面提供的网络设备的第六种可能的实现方式中,所述动作包括:
[0025]所述可编程处理器发送所述第一报文;或者
[0026]所述可编程处理器丢弃所述第一报文。
[0027]第二方面,提供了一种处理报文的方法,包括:
[0028]可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口;
[0029]所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作,所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
[0030]从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
[0031]在第二方面提供的方法的第一种可能的实现方式中,所述可编程处理器执行所述动作包括:
[0032]所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
[0033]所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
[0034]根据第二方面提供的方法,或者第二方面提供的方法的第一种可能的实现方式,在第二方面提供的方法的第二种可能的实现方式中,
[0035]所述可编程处理器确定所述动作包括:
[0036]所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
[0037]所述不可编程处理器根据所述输入信息获取输出信息;
[0038]所述第二控制端口向所述可编程处理器发送所述输出信息;
[0039]所述可编程处理器执行所述动作包括:
[0040]所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
[0041]根据第二方面提供的方法的第二种可能的实现方式,在第二方面提供的方法的第三种可能的实现方式中,所述不可编程处理器获取所述输出信息包括:
[0042]所述不可编程处理器通过与协处理器交互获得中间数据;
[0043]所述不可编程处理器根据所述中间数据获取所述输出信息。
[0044]根据第二方面提供的方法的第三种可能的实现方式,在第二方面提供的方法的第四种可能的实现方式中,所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
[0045]根据第二方面提供的方法,第二方面提供的方法的第一种可能的实现方式,第二方面提供的方法的第二种可能的实现方式,第二方面提供的方法的第三种可能的实现方式,或者第二方面提供的方法的第四种可能的实现方式,在第二方面提供的方法的第五种可能的实现方式中,所述可编程处理器还包括用于执行第三协议的代码。
[0046]根据第二方面提供的方法,第二方面提供的方法的第一种可能的实现方式,第二方面提供的方法的第二种可能的实现方式,第二方面提供的方法的第三种可能的实现方式,第二方面提供的方法的第四种可能的实现方式,或者第二方面提供的方法的第五种可能的实现方式,在第二方面提供的方法的第六种可能的实现方式中,所述可编程处理器执行所述动作包括:
[0047]所述可编程处理器发送所述第一报文;或者
[0048]所述可编程处理器丢弃所述第一报文。
【专利附图】

【附图说明】[0049]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0050]图1为本发明实施例提供的一种网络设备的结构示意图;
[0051]图2为本发明实施例提供的一种处理报文的方法的流程示意图;
[0052]图3为本发明实施例提供的一种处理报文的方法的流程示意图;
[0053]图4为本发明实施例提供的一种处理报文的方法的流程示意图。
【具体实施方式】
[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055]图1为本发明实施例提供的一种网络设备的结构示意图。参见图1,所述网络设备包括可编程处理器102以及不可编程处理器104。
[0056]所述可编程处理器102包括第一控制端口 106。
[0057]所述不可编程处理器104包括第二控制端口 108,所述第二控制端口 108用于耦合所述第一控制端口 106。
[0058]所述可编程处理器102用于接收第一报文,所述第一报文的报文头对应的协议是第一协议。
[0059]所述第一控制端口 106和所述第二控制端口 108用于连接所述可编程处理器102和所述不可编程处理器104,所述可编程处理器102和所述不可编程处理器104用于合作对所述第一报文执行所述第一协议,所述不可编程处理器104用于确定所述可编程处理器102对所述第一报文执行的所述第一协议的动作,所述可编程处理器102用于执行所述动作。
[0060]举例来说,所述可编程处理器102可以是NP。所述不可编程处理器102可以是专用集成电路(application-specific integrated circuit, ASIC)。
[0061]举例来说,所述可编程处理器102与所述不可编程处理器104可以通过互联电路(interconnecting circuit)实现稱合。例如,所述互连电路的一端用于与所述第一控制端口 106直连。所述互连电路的另一端用于与所述第二控制端口 108直连。所述互联电路可以是芯片内部的电路。所述互联电路可以是交叉开关(crossbar)。
[0062]举例来说,所述网络设备可以是芯片、印刷电路板(printed circuit board, PCB)
或者网络装置。
[0063]如果所述网络设备是芯片,贝U所述网络设备可以是片上系统(System on a Chip,SoC)。
[0064]如果所述网络设备是印刷电路板,则所述印刷电路板包括芯片。所述芯片包括所述可编程处理器102和所述不可编程处理器104。所述印刷电路板可以是线路处理单元(line processing unit, LPU)。[0065]如果所述网络设备是网络装置,则所述网络装置包括印刷电路板。所述印刷电路板包括芯片。所述芯片包括所述可编程处理器102和所述不可编程处理器104。举例来说,所述网络装置可以是路由器、交换机、防火墙或者负载均衡器。所述印刷电路板可以是LPU。
[0066]所述第一协议的处理流程包括,根据所述第一协议的规定以及对应所述第一协议的报文头中的信息,确定对包含所述报文头的报文执行的动作。
[0067]本发明实施例不对所述第一协议的类型以及所述动作进行限定。
[0068]从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
[0069]可选地,图1所示的网络设备中,所述第一协议可以是开放系统互连参考模型(Open System Interconnect Reference Model,0SIRM)定义的第 X 层的协议,X 为 2、2.5、
3、4、5、6和7中的至少一个。
[0070]可选地,图1所示的网络设备中,所述动作包括:
[0071]所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
[0072]举例来说,所述第一报文可以是被封装的二层隧道协议(Layer2TunnelingProtocol, L2TP)报文。所述第一报文的报文头包括网际协议(Internet Protocol, IP)头以及用户数据报协议(User Datagram Protocol,UDP)头。所述第二报文可以是L2TP报文。所述第二报文的报文头是L2TP头。所述可编程处理器对所述L2TP报文执行所述L2TP,具体可以是所述可编程处理器对所述L2TP报文进行隧道转发。
[0073]可选地,图1所示的网络设备中,所述动作包括:
[0074]所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
[0075]举例来说,所述第二不可编程处理器能够用于执行传输控制协议(TransmissionControl Protocol,TCP)。所述第一报文可以是被封装的TCP报文。所述第一报文的报文头可以是IP头。所述第二报文可以是TCP报文。所述第二报文的报文头是TCP头。所述TCP头中包括源TCP端口和目的TCP端口。所述可编程处理器可以向所述第二不可编程处理器发送所述源TCP端口和目的TCP端口。所述第二不可编程处理器可以根据所述源TCP端口和目的TCP端口确定所述第二协议的动作。所述第二协议的动作可以是TCP转发。
[0076]可选地,图1所示的网络设备中,
[0077]所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
[0078]所述不可编程处理器用于根据所述输入信息获取输出信息;
[0079]所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
[0080]可选地,图1所示的网络设备中,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述第一协议的处理流程可以是转发处理流程。所述转发处理流程包括:确定报文头中用于匹配的信息;在转发表中查找与所述用于匹配的信息匹配的转发表项;以及,根据所述转发表项确定对包含所述报文头的报文执行的动作。
[0081]举例来说,所述转发处理流程对应的所述第一协议可以是OSIRM定义的第2层的协议、第2.5层的协议或者第3层的协议。所述第2层的协议可以是以太网(Ethernet)协议、同步数字体系承载报文(packet over synchronous digital hierarchy, POS)协议或者异步传输模式(Asynchronous Transfer Mode, ATM)协议。所述第2.5层的协议可以是多协议标签交换(Multiprotocol Label Switching, MPLS)协议。所述第3层的协议可以是IP。
[0082]举例来说,如果所述第一协议是IP,则所述报文头是IP头。所述信息可以是所述IP头中的目的IP地址。根据所述输入信息获取所述输出信息,可以是根据所述目的IP地址确定路由表中与所述目的IP地址匹配的路由表项。所述输出信息可以是所述路由表项中的下一跳的标识。所述下一跳可以是用于转发所述第一报文的出接口。所述出接口可以是物理出接口。所述动作可以是IP转发。
[0083]举例来说,如果所述第一协议是媒体访问控制(Media Access Control, MAC)协议,则所述报文头是MAC协议头。所述信息可以是所述MAC协议头中的目的MAC协议地址。根据所述输入信息获取所述输出信息可以是根据所述目的MAC协议地址确定MAC协议表中与所述目的MAC协议地址匹配的MAC协议表项。所述输出信息可以是所述MAC协议表项中的用于转发所述第一报文的出接口的标识。所述出接口可以是物理出接口或者逻辑出接口。所述动作可以是MAC协议转发。
[0084]从上述技术方案可以看出,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。现有技术中,所述可编程处理器需要先获取所述输入信息,然后根据所述输入信息获取所述输出信息,最后根据所述输出信息对所述第一报文执行所述动作。本领域的技术人员可以理解,不可编程处理器是单纯的硬件,而可编程处理器则是软件和硬件的结合。通常情况下,不可编程处理器的执行效率高于可编程处理器。因此,相对于现有技术,上述技术方案可以用于提高执行效率。
[0085]可选地,图1所示的网络设备中,所述动作具体可以是转发、丢弃、封装或者发送至网络装置的控制平面的中央处理单元(Central Processing Unit, CPU)。所述可编程处理器102以及不可编程处理器104承载在所述网络装置上。
[0086]举例来说,所述转发可以是IP转发、MPLS转发或者MAC协议转发。
[0087]可选地,图1所示的网络设备中,获取所述输出信息包括:
[0088]所述不可编程处理器通过与协处理器交互获得中间数据;
[0089]所述不可编程处理器根据所述中间数据获取所述输出信息。
[0090]举例来说,所述协处理器可以是ASIC。
[0091]可选地,图1所示的网络设备中,所述协处理器可以包括下述中的至少一个:查找协处理器、CAR协处理器以及计数器。[0092]举例来说,如果所述协处理器为查找协处理器,所述查找协处理器可以通过查找映射表获得所述中间数据。所述映射表可以是最长前缀匹配表、精确匹配表、访问控制列表(access control list, ACL)或者线性表。所述ACL可以承载在三态内容可寻址存储器(ternary content addressable memory, TCAM)中。
[0093]举例来说,所述映射表可以是转发表。所述中间数据可以是下一跳的标识。
[0094]举例来说,如果所述协处理器为CAR协处理器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
[0095]举例来说,如果所述协处理器为计数器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
[0096]可选地,图1所示的网络设备中,所述可编程处理器102还可以包括用于执行第三协议的代码。
[0097]本领域的技术人员可以理解,所述可编程处理器102可以包括算术逻辑单元(arithmetic logic unit,ALU)以及非易失性的存储介质。所述非易失性的存储介质可以用于承载所述用于执行第三协议的处理流程的代码。所述ALU可以执行所述用于执行第三协议的处理流程的代码。
[0098]举例来说,所述第三协议可以是开放系统互连参考模型定义的第Y层的协议,Y为2,2.5、3、4、5、6和7中的至少一个。
[0099]关于所述第三协议的处理流程,具体请参考所述第一协议的处理流程,此处不再赘述。需要指出的是,所述第三协议不同于所述第一协议。
[0100]可选地,图1所示的网络设备中,所述动作包括:
[0101]所述可编程处理器发送所述第一报文;或者
[0102]所述可编程处理器丢弃所述第一报文。
[0103]图2为本发明实施例提供的一种处理报文方法的流程示意图。图1所示的网络设备可以用于执行所述方法。参见图2,所述方法包括:
[0104]202、可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口 ;
[0105]204、所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作。
[0106]所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
[0107]举例来说,所述可编程处理器可以是NP。所述不可编程处理器可以是ASIC。
[0108]举例来说,所述可编程处理器与所述不可编程处理器可以通过互联电路实现耦合。例如,所述互连电路的一端用于与所述第一控制端口直连。所述互连电路的另一端用于与所述第二控制端口直连。所述互联电路可以是芯片内部的电路。所述互联电路可以是crossbar。
[0109]举例来说,所述网络设备可以是芯片、PCB或者网络装置。
[0110]如果所述网络设备是芯片,则所述网络设备可以是SoC。[0111]如果所述网络设备是印刷电路板,则所述印刷电路板包括芯片。所述芯片包括所述可编程处理器和所述不可编程处理器。所述印刷电路板可以是LPU。
[0112]如果所述网络设备是网络装置,则所述网络装置包括印刷电路板。所述印刷电路板包括芯片。所述芯片包括所述可编程处理器和所述不可编程处理器。举例来说,所述网络装置可以是路由器、交换机、防火墙或者负载均衡器。所述印刷电路板可以是LPU。
[0113]所述第一协议的处理流程包括,根据所述第一协议的规定以及对应所述第一协议的报文头中的信息,确定对包含所述报文头的报文执行的动作。
[0114]本发明实施例不对所述第一协议的类型以及所述动作进行限定。
[0115]从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
[0116]可选地,所述第一协议可以是OSIRM定义的第X层的协议,X为2、2.5、3、4、5、6和7中的至少一个。
[0117]可选地,图2所示的方法中,所述可编程处理器执行所述动作可以包括:
[0118]所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
[0119]举例来说,所述第一报文可以是被封装的二层隧道协议(Layer2TunnelingProtocol, L2TP)报文。所述第一报文的报文头包括网际协议(Internet Protocol, IP)头以及用户数据报协议(User Datagram Protocol,UDP)头。所述第二报文可以是L2TP报文。所述第二报文的报文头是L2TP头。所述可编程处理器对所述L2TP报文执行所述L2TP,具体可以是所述可编程处理器对所述L2TP报文进行隧道转发。
[0120]可选地,图2所示的方法中,所述可编程处理器执行所述动作可以包括:
[0121]所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
[0122]举例来说,所述第二不可编程处理器能够用于执行TCP。所述第一报文可以是被封装的TCP报文。所述第一报文的报文头可以是IP头。所述第二报文可以是TCP报文。所述第二报文的报文头是TCP头。所述TCP头中包括源TCP端口和目的TCP端口。所述可编程处理器可以向所述第二不可编程处理器发送所述源TCP端口和目的TCP端口。所述第二不可编程处理器可以根据所述源TCP端口和目的TCP端口确定所述第二协议的动作。所述第二协议的动作可以是TCP转发。
[0123]可选地,图2所示的方法中,所述可编程处理器确定所述动作包括:
[0124]302、所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
[0125]304、所述不可编程处理器根据所述输入信息获取输出信息;[0126]306、所述第二控制端口向所述可编程处理器发送所述输出信息;
[0127]所述可编程处理器执行所述动作包括:
[0128]所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
[0129]关于302、304以及306,请参见图3。
[0130]可选地,图2所示的方法中,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述第一协议的处理流程可以是转发处理流程。所述转发处理流程包括:确定报文头中用于匹配的信息;在转发表中查找与所述用于匹配的信息匹配的转发表项;以及,根据所述转发表项确定对包含所述报文头的报文执行的动作。
[0131]举例来说,所述转发处理流程对应的所述第一协议可以是OSIRM定义的第2层的协议、第2.5层的协议或者第3层的协议。所述第2层的协议可以是Ethernet协议、POS协议或者ATM协议。所述第2.5层的协议可以是多协议标签交换MPLS协议。所述第3层的协议可以是IP。
[0132]举例来说,如果所述第一协议是IP,则所述报文头是IP头。所述信息可以是所述IP头中的目的IP地址。根据所述输入信息获取所述输出信息,可以是根据所述目的IP地址确定路由表中与所述目的IP地址匹配的路由表项。所述输出信息可以是所述路由表项中的下一跳的标识。所述下一跳可以是用于转发所述第一报文的出接口。所述出接口可以是物理出接口。所述动作可以是IP转发。
[0133]举例来说,如果所述第一协议是MAC协议,则所述报文头是MAC协议头。所述信息可以是所述MAC协议头中的目的MAC协议地址。根据所述输入信息获取所述输出信息可以是根据所述目的MAC协议地址确定MAC协议表中与所述目的MAC协议地址匹配的MAC协议表项。所述输出信息可以是所述MAC协议表项中的用于转发所述第一报文的出接口的标识。所述出接口可以是物理出接口或者逻辑出接口。所述动作可以是MAC协议转发。
[0134]从上述技术方案可以看出,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。现有技术中,所述可编程处理器需要先获取所述输入信息,然后根据所述输入信息获取所述输出信息,最后根据所述输出信息对所述第一报文执行所述动作。本领域的技术人员可以理解,不可编程处理器是单纯的硬件,而可编程处理器则是软件和硬件的结合。通常情况下,不可编程处理器的执行效率高于可编程处理器。因此,相对于现有技术,上述技术方案可以用于提高执行效率。
[0135]可选地,图2所示的方法中,所述动作具体可以是转发、丢弃、封装或者发送至网络装置的控制平面的CPU。所述可编程处理器以及不可编程处理器承载在所述网络装置上。
[0136]举例来说,所述转发可以是IP转发、MPLS转发或者MAC协议转发。
[0137]可选地,图2所示的方法中,所述不可编程处理器获取所述输出信息包括:
[0138]402、所述不可编程处理器通过与协处理器交互获得中间数据;
[0139]404、所述不可编程处理器根据所述中间数据获取所述输出信息。
[0140]举例来说,所述协处理器可以是ASIC。
[0141]关于402以及404,请参见图4。
[0142]可选地,图2所示的方法中,
[0143]所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
[0144]举例来说,如果所述协处理器为查找协处理器,所述查找协处理器可以通过查找映射表获得所述中间数据。所述映射表可以是最长前缀匹配表、精确匹配表、ACL或者线性表。所述ACL可以承载在TCAM中。
[0145]举例来说,所述映射表可以是转发表。所述中间数据可以是下一跳的标识。
[0146]举例来说,如果所述协处理器为CAR协处理器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
[0147]举例来说,如果所述协处理器为计数器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
[0148]可选地,图2所示的方法中,
[0149]所述可编程处理器还包括用于执行第三协议的代码。
[0150]本领域的技术人员可以理解,所述可编程处理器可以包括ALU以及非易失性的存储介质。所述非易失性的存储介质可以用于承载所述用于执行第三协议的处理流程的代码。所述ALU可以执行所述用于执行第三协议的处理流程的代码。
[0151]举例来说,所述第三协议可以是OSIRM定义的第Y层的协议,Y为2、2.5、3、4、5、6和7中的至少一个。
[0152]关于所述第三协议的处理流程,具体请参考所述第一协议的处理流程,此处不再赘述。需要指出的是,所述第三协议不同于所述第一协议。
[0153]可选地,图2所示的方法中,所述可编程处理器执行所述动作包括:
[0154]所述可编程处理器发送所述第一报文;或者
[0155]所述可编程处理器丢弃所述第一报文。
[0156]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0157]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0158]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0159]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0160]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0161]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0162]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种网络设备,其特征在于,包括可编程处理器以及不可编程处理器; 所述可编程处理器包括第一控制端口; 所述不可编程处理器包括第二控制端口,所述第二控制端口用于耦合所述第一控制端口; 所述可编程处理器用于接收第一报文,所述第一报文的报文头对应的协议是第一协议; 所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议,所述不可编程处理器用于确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器用于执行所述动作。
2.根据权利要求1所述的网络设备,其特征在于,所述动作包括: 所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者 所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
3.根据权利要求1或2所述的网络设备,其特征在于, 所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息; 所述不可编程处理器用于根据所述输入信息获取输出信息; 所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
4.根据权利要求3所述的网络设备,其特征在于,获取所述输出信息包括: 所述不可编程处理器通过与协处理器交互获得中间数据; 所述不可编程处理器根据所述中间数据获取所述输出信息。
5.根据权利要求4所述的网络设备,其特征在于, 所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
6.根据权利要求1至5中任一所述的网络设备,其特征在于, 所述可编程处理器还包括用于执行第三协议的代码。
7.根据权利要求1至6中任一所述的网络设备,其特征在于,所述动作包括: 所述可编程处理器发送所述第一报文;或者 所述可编程处理器丢弃所述第一报文。
8.一种处理报文的方法,其特征在于,包括: 可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口 ; 所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作,所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
9.根据权利要求8所述的方法,其特征在于,所述可编程处理器执行所述动作包括: 所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者 所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
10.根据权利要求8或9所述的方法,其特征在于, 所述可编程处理器确定所述动作包括: 所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息; 所述不可编程处理器根据所述输入信息获取输出信息; 所述第二控制端口向所述可编程处理器发送所述输出信息; 所述可编程处理器执行所述动作包括: 所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
11.根据权利要求10所述的方法,其特征在于,所述不可编程处理器获取所述输出信息包括: 所述不可编程处理器通过与协处理器交互获得中间数据; 所述不可编程处理器根据所述中间数据获取所述输出信息。
12.根据权利要求11所述的方法,其特征在于, 所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
13.根据权利要求8至12中任一所述的方法,其特征在于, 所述可编程处理器还包括用于执行第三协议的代码。
14.根据权利要求8至13中任一所述的方法,其特征在于,所述可编程处理器执行所述动作包括: 所述可编程处理器发送所述第一报文;或者 所述可编程处理器丢弃所述第一报文。
【文档编号】H04L29/06GK103503386SQ201280010872
【公开日】2014年1月8日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】陈洪飞, 龚钧 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1