CN103503386A - 网络设备以及处理报文方法 - Google Patents

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

Info

Publication number
CN103503386A
CN103503386A CN201280010872.5A CN201280010872A CN103503386A CN 103503386 A CN103503386 A CN 103503386A CN 201280010872 A CN201280010872 A CN 201280010872A CN 103503386 A CN103503386 A CN 103503386A
Authority
CN
China
Prior art keywords
programmable processor
message
agreement
control port
heading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280010872.5A
Other languages
English (en)
Other versions
CN103503386B (zh
Inventor
陈洪飞
龚钧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103503386A publication Critical patent/CN103503386A/zh
Application granted granted Critical
Publication of CN103503386B publication Critical patent/CN103503386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

本发明实施例提供了一种网络设备,包括可编程处理器以及不可编程处理器;可编程处理器包括第一控制端口;不可编程处理器包括第二控制端口,第二控制端口用于耦合第一控制端口;可编程处理器用于接收第一报文,第一报文的报文头对应的协议是第一协议;第一控制端口和第二控制端口用于连接可编程处理器和不可编程处理器,可编程处理器和不可编程处理器用于合作对第一报文执行第一协议,不可编程处理器用于确定可编程处理器对第一报文执行的第一协议的动作,可编程处理器用于执行动作。此外,本发明实施例还提供了处理报文的方法。根据上述技术方案,有助于减少对可编程处理器的存储空间的占用。

Description

网络设备以及处理报文方法
技术领域
本发明涉及通信领域,特别是网络设备以及处理报文方法。
背景技术
可编程处理器已广泛应用于通信领域。网络处理器(networkprocessor,NP)是一种典型的可编程处理器。目前,很多路由器和交换机中都包含了NP。为实现对报文的处理,可编程处理器中可以包含用于执行多个协议的代码。例如,为实现对网际协议(Internet Protocol,IP)报文的处理,可编程处理器中可以包含用于执行IP的代码。
为执行某种协议,需要在可编程处理器中加载用于执行该协议的代码,占用了可编程处理器的存储空间。
发明内容
为减少对可编程处理器的存储空间的占用,本发明实施例提供了网络设备以及处理报文的方法。
第一方面,提供了一种网络设备,包括可编程处理器以及不可编程处理器;
所述可编程处理器包括第一控制端口;
所述不可编程处理器包括第二控制端口,所述第二控制端口用于耦合所述第一控制端口;
所述可编程处理器用于接收第一报文,所述第一报文的报文头对应的协议是第一协议;
所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议,所述不可编程处理器用于确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器用于执行所述动作。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
在第一方面提供的网络设备的第一种可能的实现方式中,所述动作包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
根据第一方面提供的网络设备,或者第一方面提供的网络设备的第一种可能的实现方式,在第一方面提供的网络设备的第二种可能的实现方式中,
所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述不可编程处理器用于根据所述输入信息获取输出信息;
所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
根据第一方面提供的网络设备的第二种可能的实现方式,在第一方面提供的网络设备的第三种可能的实现方式中,获取所述输出信息包括:
所述不可编程处理器通过与协处理器交互获得中间数据;
所述不可编程处理器根据所述中间数据获取所述输出信息。
根据第一方面提供的网络设备的第三种可能的实现方式,在第一方面提供的网络设备的第四种可能的实现方式中,所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率(committed access rate,CAR)协处理器以及计数器(counter)。
根据第一方面提供的网络设备,第一方面提供的网络设备的第一种可能的实现方式,第一方面提供的网络设备的第二种可能的实现方式,第一方面提供的网络设备的第三种可能的实现方式,或者第一方面提供的网络设备的第四种可能的实现方式,在第一方面提供的网络设备的第五种可能的实现方式中,
所述可编程处理器还包括用于执行第三协议的代码。
根据第一方面提供的网络设备,第一方面提供的网络设备的第一种可能的实现方式,第一方面提供的网络设备的第二种可能的实现方式,第一方面提供的网络设备的第三种可能的实现方式,第一方面提供的网络设备的第四种可能的实现方式,或者第一方面提供的网络设备的第五种可能的实现方式在第一方面提供的网络设备的第六种可能的实现方式中,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
第二方面,提供了一种处理报文的方法,包括:
可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口;
所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作,所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
在第二方面提供的方法的第一种可能的实现方式中,所述可编程处理器执行所述动作包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议;或者
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
根据第二方面提供的方法,或者第二方面提供的方法的第一种可能的实现方式,在第二方面提供的方法的第二种可能的实现方式中,
所述可编程处理器确定所述动作包括:
所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述不可编程处理器根据所述输入信息获取输出信息;
所述第二控制端口向所述可编程处理器发送所述输出信息;
所述可编程处理器执行所述动作包括:
所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
根据第二方面提供的方法的第二种可能的实现方式,在第二方面提供的方法的第三种可能的实现方式中,所述不可编程处理器获取所述输出信息包括:
所述不可编程处理器通过与协处理器交互获得中间数据;
所述不可编程处理器根据所述中间数据获取所述输出信息。
根据第二方面提供的方法的第三种可能的实现方式,在第二方面提供的方法的第四种可能的实现方式中,所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
根据第二方面提供的方法,第二方面提供的方法的第一种可能的实现方式,第二方面提供的方法的第二种可能的实现方式,第二方面提供的方法的第三种可能的实现方式,或者第二方面提供的方法的第四种可能的实现方式,在第二方面提供的方法的第五种可能的实现方式中,所述可编程处理器还包括用于执行第三协议的代码。
根据第二方面提供的方法,第二方面提供的方法的第一种可能的实现方式,第二方面提供的方法的第二种可能的实现方式,第二方面提供的方法的第三种可能的实现方式,第二方面提供的方法的第四种可能的实现方式,或者第二方面提供的方法的第五种可能的实现方式,在第二方面提供的方法的第六种可能的实现方式中,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络设备的结构示意图;
图2为本发明实施例提供的一种处理报文的方法的流程示意图;
图3为本发明实施例提供的一种处理报文的方法的流程示意图;
图4为本发明实施例提供的一种处理报文的方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种网络设备的结构示意图。参见图1,所述网络设备包括可编程处理器102以及不可编程处理器104。
所述可编程处理器102包括第一控制端口106。
所述不可编程处理器104包括第二控制端口108,所述第二控制端口108用于耦合所述第一控制端口106。
所述可编程处理器102用于接收第一报文,所述第一报文的报文头对应的协议是第一协议。
所述第一控制端口106和所述第二控制端口108用于连接所述可编程处理器102和所述不可编程处理器104,所述可编程处理器102和所述不可编程处理器104用于合作对所述第一报文执行所述第一协议,所述不可编程处理器104用于确定所述可编程处理器102对所述第一报文执行的所述第一协议的动作,所述可编程处理器102用于执行所述动作。
举例来说,所述可编程处理器102可以是NP。所述不可编程处理器102可以是专用集成电路(application-specific integrated circuit,ASIC)。
举例来说,所述可编程处理器102与所述不可编程处理器104可以通过互联电路(interconnecting circuit)实现耦合。例如,所述互连电路的一端用于与所述第一控制端口106直连。所述互连电路的另一端用于与所述第二控制端口108直连。所述互联电路可以是芯片内部的电路。所述互联电路可以是交叉开关(crossbar)。
举例来说,所述网络设备可以是芯片、印刷电路板(printed circuitboard,PCB)或者网络装置。
如果所述网络设备是芯片,则所述网络设备可以是片上系统(System ona Chip,SoC)。
如果所述网络设备是印刷电路板,则所述印刷电路板包括芯片。所述芯片包括所述可编程处理器102和所述不可编程处理器104。所述印刷电路板可以是线路处理单元(line processing unit,LPU)。
如果所述网络设备是网络装置,则所述网络装置包括印刷电路板。所述印刷电路板包括芯片。所述芯片包括所述可编程处理器102和所述不可编程处理器104。举例来说,所述网络装置可以是路由器、交换机、防火墙或者负载均衡器。所述印刷电路板可以是LPU。
所述第一协议的处理流程包括,根据所述第一协议的规定以及对应所述第一协议的报文头中的信息,确定对包含所述报文头的报文执行的动作。
本发明实施例不对所述第一协议的类型以及所述动作进行限定。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
可选地,图1所示的网络设备中,所述第一协议可以是开放系统互连参考模型(Open System Interconnect Reference Model,OSIRM)定义的第X层的协议,X为2、2.5、3、4、5、6和7中的至少一个。
可选地,图1所示的网络设备中,所述动作包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第一报文可以是被封装的二层隧道协议(Layer2Tunneling Protocol,L2TP)报文。所述第一报文的报文头包括网际协议(Internet Protocol,IP)头以及用户数据报协议(User Datagram Protocol,UDP)头。所述第二报文可以是L2TP报文。所述第二报文的报文头是L2TP头。所述可编程处理器对所述L2TP报文执行所述L2TP,具体可以是所述可编程处理器对所述L2TP报文进行隧道转发。
可选地,图1所示的网络设备中,所述动作包括:
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第二不可编程处理器能够用于执行传输控制协议(Transmission Control Protocol,TCP)。所述第一报文可以是被封装的TCP报文。所述第一报文的报文头可以是IP头。所述第二报文可以是TCP报文。所述第二报文的报文头是TCP头。所述TCP头中包括源TCP端口和目的TCP端口。所述可编程处理器可以向所述第二不可编程处理器发送所述源TCP端口和目的TCP端口。所述第二不可编程处理器可以根据所述源TCP端口和目的TCP端口确定所述第二协议的动作。所述第二协议的动作可以是TCP转发。
可选地,图1所示的网络设备中,
所述第二控制端口用于接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
所述不可编程处理器用于根据所述输入信息获取输出信息;
所述第二控制端口还用于向所述可编程处理器发送所述输出信息,以使所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
可选地,图1所示的网络设备中,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述第一协议的处理流程可以是转发处理流程。所述转发处理流程包括:确定报文头中用于匹配的信息;在转发表中查找与所述用于匹配的信息匹配的转发表项;以及,根据所述转发表项确定对包含所述报文头的报文执行的动作。
举例来说,所述转发处理流程对应的所述第一协议可以是OSIRM定义的第2层的协议、第2.5层的协议或者第3层的协议。所述第2层的协议可以是以太网(Ethernet)协议、同步数字体系承载报文(packet over synchronousdigital hierarchy,POS)协议或者异步传输模式(Asynchronous TransferMode,ATM)协议。所述第2.5层的协议可以是多协议标签交换(MultiprotocolLabel Switching,MPLS)协议。所述第3层的协议可以是IP。
举例来说,如果所述第一协议是IP,则所述报文头是IP头。所述信息可以是所述IP头中的目的IP地址。根据所述输入信息获取所述输出信息,可以是根据所述目的IP地址确定路由表中与所述目的IP地址匹配的路由表项。所述输出信息可以是所述路由表项中的下一跳的标识。所述下一跳可以是用于转发所述第一报文的出接口。所述出接口可以是物理出接口。所述动作可以是IP转发。
举例来说,如果所述第一协议是媒体访问控制(Media Access Control,MAC)协议,则所述报文头是MAC协议头。所述信息可以是所述MAC协议头中的目的MAC协议地址。根据所述输入信息获取所述输出信息可以是根据所述目的MAC协议地址确定MAC协议表中与所述目的MAC协议地址匹配的MAC协议表项。所述输出信息可以是所述MAC协议表项中的用于转发所述第一报文的出接口的标识。所述出接口可以是物理出接口或者逻辑出接口。所述动作可以是MAC协议转发。
从上述技术方案可以看出,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。现有技术中,所述可编程处理器需要先获取所述输入信息,然后根据所述输入信息获取所述输出信息,最后根据所述输出信息对所述第一报文执行所述动作。本领域的技术人员可以理解,不可编程处理器是单纯的硬件,而可编程处理器则是软件和硬件的结合。通常情况下,不可编程处理器的执行效率高于可编程处理器。因此,相对于现有技术,上述技术方案可以用于提高执行效率。
可选地,图1所示的网络设备中,所述动作具体可以是转发、丢弃、封装或者发送至网络装置的控制平面的中央处理单元(Central Processing Unit,CPU)。所述可编程处理器102以及不可编程处理器104承载在所述网络装置上。
举例来说,所述转发可以是IP转发、MPLS转发或者MAC协议转发。
可选地,图1所示的网络设备中,获取所述输出信息包括:
所述不可编程处理器通过与协处理器交互获得中间数据;
所述不可编程处理器根据所述中间数据获取所述输出信息。
举例来说,所述协处理器可以是ASIC。
可选地,图1所示的网络设备中,所述协处理器可以包括下述中的至少一个:查找协处理器、CAR协处理器以及计数器。
举例来说,如果所述协处理器为查找协处理器,所述查找协处理器可以通过查找映射表获得所述中间数据。所述映射表可以是最长前缀匹配表、精确匹配表、访问控制列表(access control list,ACL)或者线性表。所述ACL可以承载在三态内容可寻址存储器(ternary content addressablememory,TCAM)中。
举例来说,所述映射表可以是转发表。所述中间数据可以是下一跳的标识。
举例来说,如果所述协处理器为CAR协处理器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
举例来说,如果所述协处理器为计数器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
可选地,图1所示的网络设备中,所述可编程处理器102还可以包括用于执行第三协议的代码。
本领域的技术人员可以理解,所述可编程处理器102可以包括算术逻辑单元(arithmetic logic unit,ALU)以及非易失性的存储介质。所述非易失性的存储介质可以用于承载所述用于执行第三协议的处理流程的代码。所述ALU可以执行所述用于执行第三协议的处理流程的代码。
举例来说,所述第三协议可以是开放系统互连参考模型定义的第Y层的协议,Y为2、2.5、3、4、5、6和7中的至少一个。
关于所述第三协议的处理流程,具体请参考所述第一协议的处理流程,此处不再赘述。需要指出的是,所述第三协议不同于所述第一协议。
可选地,图1所示的网络设备中,所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
图2为本发明实施例提供的一种处理报文方法的流程示意图。图1所示的网络设备可以用于执行所述方法。参见图2,所述方法包括:
202、可编程处理器接收第一报文,所述第一报文的报文头对应的协议是第一协议,所述可编程处理器包括第一控制端口;
204、所述可编程处理器和不可编程处理器合作对所述第一报文执行所述第一协议,其中,所述不可编程处理器确定所述可编程处理器对所述第一报文执行的所述第一协议的动作,所述可编程处理器执行所述动作。
所述不可编程处理器包括第二控制端口,所述第二控制端口耦合所述第一控制端口,所述第一控制端口和所述第二控制端口用于连接所述可编程处理器和所述不可编程处理器。
举例来说,所述可编程处理器可以是NP。所述不可编程处理器可以是ASIC。
举例来说,所述可编程处理器与所述不可编程处理器可以通过互联电路实现耦合。例如,所述互连电路的一端用于与所述第一控制端口直连。所述互连电路的另一端用于与所述第二控制端口直连。所述互联电路可以是芯片内部的电路。所述互联电路可以是crossbar。
举例来说,所述网络设备可以是芯片、PCB或者网络装置。
如果所述网络设备是芯片,则所述网络设备可以是SoC。
如果所述网络设备是印刷电路板,则所述印刷电路板包括芯片。所述芯片包括所述可编程处理器和所述不可编程处理器。所述印刷电路板可以是LPU。
如果所述网络设备是网络装置,则所述网络装置包括印刷电路板。所述印刷电路板包括芯片。所述芯片包括所述可编程处理器和所述不可编程处理器。举例来说,所述网络装置可以是路由器、交换机、防火墙或者负载均衡器。所述印刷电路板可以是LPU。
所述第一协议的处理流程包括,根据所述第一协议的规定以及对应所述第一协议的报文头中的信息,确定对包含所述报文头的报文执行的动作。
本发明实施例不对所述第一协议的类型以及所述动作进行限定。
从上述技术方案可以看出,所述可编程处理器和所述不可编程处理器用于合作对所述第一报文执行所述第一协议。其中,所述不可编程处理器用于确定所述可编程处理器执行的所述动作。所述可编程处理器能够根据所述不可编程处理器确定的所述动作执行所述动作。上述技术方案中,如果所述可编程处理器不包括用于执行所述第一协议的代码,所述可编程处理器也能够对所述第一报文执行所述第一协议的所述动作。因此,上述技术方案有助于减少对所述可编程处理器的存储空间的占用。
可选地,所述第一协议可以是OSIRM定义的第X层的协议,X为2、2.5、3、4、5、6和7中的至少一个。
可选地,图2所示的方法中,所述可编程处理器执行所述动作可以包括:
所述可编程处理器对第二报文执行第二协议,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第一报文可以是被封装的二层隧道协议(Layer2Tunneling Protocol,L2TP)报文。所述第一报文的报文头包括网际协议(Internet Protocol,IP)头以及用户数据报协议(User Datagram Protocol,UDP)头。所述第二报文可以是L2TP报文。所述第二报文的报文头是L2TP头。所述可编程处理器对所述L2TP报文执行所述L2TP,具体可以是所述可编程处理器对所述L2TP报文进行隧道转发。
可选地,图2所示的方法中,所述可编程处理器执行所述动作可以包括:
所述可编程处理器向第二不可编程处理器发送第二报文的报文头中的信息,以使所述第二不可编程处理器确定所述可编程处理器对所述第二报文执行的第二协议的动作,所述第一报文包括所述第一报文的报文头和所述第二报文,所述第二报文的报文头对应的协议为所述第二协议。
举例来说,所述第二不可编程处理器能够用于执行TCP。所述第一报文可以是被封装的TCP报文。所述第一报文的报文头可以是IP头。所述第二报文可以是TCP报文。所述第二报文的报文头是TCP头。所述TCP头中包括源TCP端口和目的TCP端口。所述可编程处理器可以向所述第二不可编程处理器发送所述源TCP端口和目的TCP端口。所述第二不可编程处理器可以根据所述源TCP端口和目的TCP端口确定所述第二协议的动作。所述第二协议的动作可以是TCP转发。
可选地,图2所示的方法中,所述可编程处理器确定所述动作包括:
302、所述第二控制端口接收所述可编程处理器发送的输入信息,所述输入信息为所述第一报文的报文头中的信息;
304、所述不可编程处理器根据所述输入信息获取输出信息;
306、所述第二控制端口向所述可编程处理器发送所述输出信息;
所述可编程处理器执行所述动作包括:
所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。
关于302、304以及306,请参见图3。
可选地,图2所示的方法中,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述第一协议的处理流程可以是转发处理流程。所述转发处理流程包括:确定报文头中用于匹配的信息;在转发表中查找与所述用于匹配的信息匹配的转发表项;以及,根据所述转发表项确定对包含所述报文头的报文执行的动作。
举例来说,所述转发处理流程对应的所述第一协议可以是OSIRM定义的第2层的协议、第2.5层的协议或者第3层的协议。所述第2层的协议可以是Ethernet协议、POS协议或者ATM协议。所述第2.5层的协议可以是多协议标签交换MPLS协议。所述第3层的协议可以是IP。
举例来说,如果所述第一协议是IP,则所述报文头是IP头。所述信息可以是所述IP头中的目的IP地址。根据所述输入信息获取所述输出信息,可以是根据所述目的IP地址确定路由表中与所述目的IP地址匹配的路由表项。所述输出信息可以是所述路由表项中的下一跳的标识。所述下一跳可以是用于转发所述第一报文的出接口。所述出接口可以是物理出接口。所述动作可以是IP转发。
举例来说,如果所述第一协议是MAC协议,则所述报文头是MAC协议头。所述信息可以是所述MAC协议头中的目的MAC协议地址。根据所述输入信息获取所述输出信息可以是根据所述目的MAC协议地址确定MAC协议表中与所述目的MAC协议地址匹配的MAC协议表项。所述输出信息可以是所述MAC协议表项中的用于转发所述第一报文的出接口的标识。所述出接口可以是物理出接口或者逻辑出接口。所述动作可以是MAC协议转发。
从上述技术方案可以看出,所述不可编程处理器可以用于执行所述第一协议的处理流程。所述可编程处理器根据所述输出信息对所述第一报文执行所述动作。现有技术中,所述可编程处理器需要先获取所述输入信息,然后根据所述输入信息获取所述输出信息,最后根据所述输出信息对所述第一报文执行所述动作。本领域的技术人员可以理解,不可编程处理器是单纯的硬件,而可编程处理器则是软件和硬件的结合。通常情况下,不可编程处理器的执行效率高于可编程处理器。因此,相对于现有技术,上述技术方案可以用于提高执行效率。
可选地,图2所示的方法中,所述动作具体可以是转发、丢弃、封装或者发送至网络装置的控制平面的CPU。所述可编程处理器以及不可编程处理器承载在所述网络装置上。
举例来说,所述转发可以是IP转发、MPLS转发或者MAC协议转发。
可选地,图2所示的方法中,所述不可编程处理器获取所述输出信息包括:
402、所述不可编程处理器通过与协处理器交互获得中间数据;
404、所述不可编程处理器根据所述中间数据获取所述输出信息。
举例来说,所述协处理器可以是ASIC。
关于402以及404,请参见图4。
可选地,图2所示的方法中,
所述协处理器包括下述中的至少一个:查找协处理器、承诺访问速率协处理器以及计数器。
举例来说,如果所述协处理器为查找协处理器,所述查找协处理器可以通过查找映射表获得所述中间数据。所述映射表可以是最长前缀匹配表、精确匹配表、ACL或者线性表。所述ACL可以承载在TCAM中。
举例来说,所述映射表可以是转发表。所述中间数据可以是下一跳的标识。
举例来说,如果所述协处理器为CAR协处理器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
举例来说,如果所述协处理器为计数器,则所述中间数据可以是用于指示允许或者禁止转发所述第一报文的信息。
可选地,图2所示的方法中,
所述可编程处理器还包括用于执行第三协议的代码。
本领域的技术人员可以理解,所述可编程处理器可以包括ALU以及非易失性的存储介质。所述非易失性的存储介质可以用于承载所述用于执行第三协议的处理流程的代码。所述ALU可以执行所述用于执行第三协议的处理流程的代码。
举例来说,所述第三协议可以是OSIRM定义的第Y层的协议,Y为2、2.5、3、4、5、6和7中的至少一个。
关于所述第三协议的处理流程,具体请参考所述第一协议的处理流程,此处不再赘述。需要指出的是,所述第三协议不同于所述第一协议。
可选地,图2所示的方法中,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (14)

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中任一所述的方法,其特征在于,所述可编程处理器执行所述动作包括:
所述可编程处理器发送所述第一报文;或者
所述可编程处理器丢弃所述第一报文。
CN201280010872.5A 2012-12-31 2012-12-31 网络设备以及处理报文方法 Active CN103503386B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/088062 WO2014101192A1 (zh) 2012-12-31 2012-12-31 网络设备以及处理报文方法

Publications (2)

Publication Number Publication Date
CN103503386A true CN103503386A (zh) 2014-01-08
CN103503386B CN103503386B (zh) 2016-05-25

Family

ID=49866753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280010872.5A Active CN103503386B (zh) 2012-12-31 2012-12-31 网络设备以及处理报文方法

Country Status (4)

Country Link
US (1) US20150304462A1 (zh)
EP (1) EP2930890B1 (zh)
CN (1) CN103503386B (zh)
WO (1) WO2014101192A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104698341A (zh) * 2015-03-10 2015-06-10 广东电网有限责任公司佛山供电局 配电线路雷击故障点定位方法和系统
WO2017020639A1 (zh) * 2015-08-04 2017-02-09 深圳市中兴微电子技术有限公司 网络处理器、报文处理数据的获取方法和存储介质
CN108604992A (zh) * 2016-05-26 2018-09-28 华为技术有限公司 使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
CN110837488A (zh) * 2019-07-15 2020-02-25 华为技术有限公司 报文传输方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101257457A (zh) * 2008-03-31 2008-09-03 华为技术有限公司 网络处理器复制报文的方法和网络处理器
CN101420358A (zh) * 2007-10-27 2009-04-29 华为技术有限公司 存储网络转发网络设备、装置与方法
CN101567846A (zh) * 2009-05-27 2009-10-28 杭州华三通信技术有限公司 路由选择方法及其系统、业务处理单元和可编程接口板
WO2010046622A1 (en) * 2008-10-22 2010-04-29 Arm Limited Integrated circuit incorporating an array of interconnected processors executing a cycle-based program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141705A (en) * 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US20030046330A1 (en) * 2001-09-04 2003-03-06 Hayes John W. Selective offloading of protocol processing
CN100440854C (zh) * 2004-06-25 2008-12-03 中国科学院计算技术研究所 一种网络处理器的数据包接收接口部件及其存储管理方法
US7613813B2 (en) * 2004-09-10 2009-11-03 Cavium Networks, Inc. Method and apparatus for reducing host overhead in a socket server implementation
CN101335644B (zh) * 2008-07-30 2011-05-11 中兴通讯股份有限公司 网络处理器动态加载微码的方法
US8996644B2 (en) * 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US8774213B2 (en) * 2011-03-30 2014-07-08 Amazon Technologies, Inc. Frameworks and interfaces for offload device-based packet processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101420358A (zh) * 2007-10-27 2009-04-29 华为技术有限公司 存储网络转发网络设备、装置与方法
CN101257457A (zh) * 2008-03-31 2008-09-03 华为技术有限公司 网络处理器复制报文的方法和网络处理器
WO2010046622A1 (en) * 2008-10-22 2010-04-29 Arm Limited Integrated circuit incorporating an array of interconnected processors executing a cycle-based program
CN101567846A (zh) * 2009-05-27 2009-10-28 杭州华三通信技术有限公司 路由选择方法及其系统、业务处理单元和可编程接口板

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104698341A (zh) * 2015-03-10 2015-06-10 广东电网有限责任公司佛山供电局 配电线路雷击故障点定位方法和系统
WO2017020639A1 (zh) * 2015-08-04 2017-02-09 深圳市中兴微电子技术有限公司 网络处理器、报文处理数据的获取方法和存储介质
CN108604992A (zh) * 2016-05-26 2018-09-28 华为技术有限公司 使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
CN108604992B (zh) * 2016-05-26 2020-09-29 华为技术有限公司 使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
CN110837488A (zh) * 2019-07-15 2020-02-25 华为技术有限公司 报文传输方法和装置
CN110837488B (zh) * 2019-07-15 2022-10-11 华为技术有限公司 报文传输方法和装置
US11726951B2 (en) 2019-07-15 2023-08-15 Huawei Technologies Co., Ltd. Packet transmission method and apparatus

Also Published As

Publication number Publication date
EP2930890A4 (en) 2015-11-18
CN103503386B (zh) 2016-05-25
EP2930890A1 (en) 2015-10-14
US20150304462A1 (en) 2015-10-22
EP2930890B1 (en) 2018-04-25
WO2014101192A1 (zh) 2014-07-03

Similar Documents

Publication Publication Date Title
CN106664261A (zh) 一种配置流表项的方法、装置和系统
CN103269315B (zh) 标签分配方法、装置、系统和网络设备
CN105791214B (zh) 一种RapidIO报文和以太网报文之间的转换方法和设备
CN104954274A (zh) 生成转发信息的方法、控制器和业务转发实体
CN104243302A (zh) 业务路由报文处理方法、装置及网络系统
CN104518967A (zh) 路由方法、设备和系统
CN104796353A (zh) 报文转发方法、交换机
CN103503386A (zh) 网络设备以及处理报文方法
CN104301246A (zh) 基于sdn的大流负载均衡转发方法及装置
WO2016106506A1 (zh) 一种路由方法和设备
CN111801911B (zh) 业务功能链拥塞跟踪
CN104394083A (zh) 转发表项处理的方法、报文转发的方法及其装置和系统
CN104219144A (zh) 确定业务流的转发路径的方法、系统和网络管理系统
WO2014022350A1 (en) Connection mesh in mirroring asymmetric clustered multiprocessor systems
CN103354520A (zh) 一种标签处理的方法及装置
CN102821049A (zh) 转发报文的方法和装置
CN101764728A (zh) 一种网络拓扑的发现方法和设备
US20200028779A1 (en) Packet processing method and apparatus
CN103493439B (zh) 接收信息的方法、发送信息的方法及装置
CN104205745A (zh) 报文处理的方法与设备
CN106209554B (zh) 跨虚拟可扩展局域网的报文转发方法和设备
CN103534999A (zh) 报文转发的方法及装置
CN103460675B (zh) 集群以及转发方法
CN103916317A (zh) 通信方法、路由桥及网络系统
CN105207904A (zh) 报文的处理方法、装置和路由器

Legal Events

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