交换芯片的报文转发方法及交换芯片的制作方法
【技术领域】
[0001]本发明涉及网络通信技术领域,尤其涉及一种交换芯片的报文转发方法及交换芯片。
【背景技术】
[0002]利用交换芯片的vlan隔离特性对网络转发芯片CPU的接口进行复用,已经成为网络设备厂商一种常用的接口扩展手段。这种方式性价比较高,能有效的增加接口数目,提高产品的竞争力,是未来设备发展的一种趋势。
[0003]—个基本的带交换芯片的网络设备硬件架构如下:转发芯片CPU的接口与交换芯片相连,通过交换芯片划分出更多的接口来使用。交换芯片通过vlan隔离,划分出一个个独立的报文通道:对不同接口进入的报文加封不同的vlan tag标签,使其互不干扰。对于交换芯片接口送上来的报文,按照奇偶分配或者hash的方式,均匀的送入CPU接口中进行处理。如下图所示:
[0004]这种接口复用的方式,需要在上送CPU的报文中打上vlan tag标签,来告诉CPU报文的入接口;同时,在出方向CPU也通过vlan tag标签来选择正确的出接口。一般这种封装和剥离vlan标签的操作都是由交换芯片驱动完成的,一般需要进行:
[0005]1、vlan通道划分,即对每个接口划分独立的vlan ;
[0006]2、上行报文加封vlan标签;
[0007]3、下行报文判断vlan标签并剥离;
[0008]Vlan标签位于报文的二层头(mac层)和三层头(IP头)之间,长度为四个字节。
[0009]这种vlan tag的加封方式存在如下问题:
[0010]其一,在上层软件的处理过程中,一般有vlan报文处理流程和非vlan报文处理流程。那么对于复用接口上送的携带vlan标签的报文,实际上并不算真正意义上的vlan报文,而只是借用vlan标签的位置来标识出入接口,其vlan标签是由交换芯片打上,并不是原始报文中携带的,应当走非vlan报文处理转发流程。而只有原始报文自身携带vlan(如从vlan子接口上送)才是真正的vlan报文。因此,在上层处理中需要花费很大精力对此种情况进行区分,防止报文走错流程,对代码复杂度和性能有影响。
[0011]其二,在报文处理过程中,有些流程(例如主机报文流程)需要最初的原始报文,即需要剥离交换芯片加封的vlan标签。vlan标签位于二三层头之间,剥离时需要整体移动报文在内存中的位置,对设备性能是一个非常大的损耗。
[0012]其三,对于原始就携带vlan的报文(如子接口进入的报文),这个加封方式会导致报文携带了双层vlan,这种双层vlan无论是在转发流程还是在报文判断上都带来了很多不便,造成流程复杂度的提升和设备性能的下降。
【发明内容】
[0013]本发明要解决的技术问题是:如何在交换芯片扩展接口方式下的报文转发,既保证接口复用,又对代码复杂度降低和性能提升有较好的效果。
[0014]为解决上述问题,本发明提供了一种交换芯片报文转发方法,其特征在于,所述报文转发包括上行转发和下行转发,
[0015]其中,所述上行转发具体包括:所述交换芯片的入接口接收到报文时,对所述报文加封vlan标签;
[0016]将加封vlan标签的报文发送到CPU接口 ;
[0017]所述下行转发具体包括:所述交换芯片的出接口接收到来自CPU的报文时,识别所述报文的vlan标签的标签信息;
[0018]根据所述标签信息选择对应的交换芯片接口发送所述报文;
[0019]其中,所述vlan标签位于所述报文的MAC层之前。
[0020]其中,所述下行转发还包括:
[0021]在将来自CPU的报文转发出去时,将所述报文的vlan标签信息剥离。
[0022]其中,所述交换芯片的入接口接收到报文时,对所述报文加封vlan标签,具体包括:
[0023]根据接收所述报文的子接口的vlan标识对所述报文加封vlan标签。
[0024]其中,所述识别所述报文的vlan标签的标签信息包括:
[0025]读取所述报文的MAC层之前的vlan标签的标签信息。
[0026]根据本发明的另一个方面,提供一种交换芯片,其特征在于,包括:
[0027]Vlan标签加封单元,用于在从入接口接收的报文的MAC层之前加封vlan标签;
[0028]Vlan标签识别单元,用于对从出接口接收的报文的MAC层之前的vlan标签进行识别;
[0029]Vlan标签剥离单元,用于将来自CPU的报文转发出去的过程中将所述报文的MAC层之前的vlan标签剥离。
[0030]本发明的转发芯片在转发报文时,将标签信息封装到MAC层前,可以在不改变原始报文的前提下,将入接口信息携带到CPU实现隔离扩展特性。同时,CPU接收到标签封装在MAC层前的报文后,可以正常出解析标签信息,解析完成后,只需将报文指针偏移至MAC层即可获得完整的原始报文,无需进行标签剥离操作,即无需移动报文在内存中的位置,这对于设备转发性能是很大的提升。
[0031]另外,新标签封装于MAC层前,不再与原始报文中的vlan标签位置重叠,即不存在判断原始vlan标签和交换芯片加封标签的问题,极大的降低了代码复杂度,简化了代码流程。
【附图说明】
[0032]图1示出了本发明的交换芯片报文转发方法的上行转发流程图。
[0033]图2示出了本发明的交换芯片报文转发方法的下行转发流程图。
【具体实施方式】
[0034]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0035]图1示出了本发明的交换芯片报文转发方法的上行转发流程图;图2示出了本发明的交换芯片报文转发方法的下行转发流程图。
[0036]如图1和图2所示,本发明一个实施例的交换芯片保文转发方法,包括上行转发和下行转发,
[0037]具体地,上行转发具体包括:
[0038]S11、交换芯片的入接口接收到报文时,对所述报文加封vlan标签;
[0039]具体地,上述步骤中,根据接收所述报文的子接口的vlan标识对所述报文加封vlan标签。
[0040]S12、将加封vlan标签的报文发送到CPU接口 ;
[0041]下行转发具体包括:
[0042]S21、所述交换芯片的出接口接收到来自CPU的报文时,识别所述报文的vlan标签的标签信息;
[0043]S22、根据所述标签信息选择对应的交换芯片接口发送所述报文;
[0044]在上述实施例中,vlan标签位于所述报文的MAC层之前。
[0045]基于上述,步骤S21的识别所述报文的vlan标签的标签信息具体为:读取所述报文的MAC层之前的vlan标签的标签信息。
[0046]进一步第,下行转发还包括:
[0047]在将来自CPU的报文转发出去时,将所述报文的vlan标签信息剥离。
[0048]即在入接口报文从交换芯片上送到CPU的过程中加封标签时,加封位置移动到MAC层之前;并且报文从CPU接口下发到交换芯片时,从报文的MAC层前识别标签信息,找至IJ对应的交换芯片出接口发出,同时,在从出接口发出时,将报文的MAC层前的标签信息剥离。
[0049]本发明将标签信息封装到MAC层之前,可以在不改变原始报文的前提下,将入接口信息携带到CPU实现隔离扩展特性。另外,本申请中获得原始报文无需在内存中移动报文位置,仅需要移动报文头指针,对性能无损耗,明显提升设备行能;此外,此方法简化了上层处理流程,不再与子接口等携带的vlan标签性形成判断冲突,降低了代码和流程的复杂度。
[0050]根据本发明的另一个实施例,提供一种交换芯片,具体包括:
[0051]Vlan标签加封单元,用于在从入接口接收的报文的MAC层之前加封vlan标签;
[0052]Vlan标签识别单元,用于对从出接口接收的报文的MAC层之前的vlan标签进行识别;
[0053]Vlan标签剥离单元,用于将来自CPU的报文转发出去的过程中将所述报文的MAC层之前的vlan标签剥离。
[0054]本发明的转发芯片在转发报文时,将标签信息封装到MAC层前,可以在不改变原始报文的前提下,将入接口信息携带到CPU实现隔离扩展特性。同时,CPU接收到标签封装在MAC层前的报文后,可以正常出解析标签信息,解析完成后,只需将报文指针偏移至MAC层即可获得完整的原始报文,无需进行标签剥离操作,即无需移动报文在内存中的位置,这对于设备转发性能是很大的提升。
[0055]另外,新标签封装于MAC层前,不再与原始报文中的vlan标签位置重叠,即不存在判断原始vlan标签和交换芯片加封标签的问题,极大的降低了代码复杂度,简化了代码流程。
[0056]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【主权项】
1.一种交换芯片报文转发方法,其特征在于,所述报文转发包括上行转发和下行转发, 其中,所述上行转发具体包括:所述交换芯片的入接口接收到报文时,对所述报文加封vlan标签; 将加封vlan标签的报文发送到CPU接口 ; 所述下行转发具体包括:所述交换芯片的出接口接收到来自CPU的报文时,识别所述报文的vlan标签的标签信息; 根据所述标签信息选择对应的交换芯片接口发送所述报文; 其中,所述vlan标签位于所述报文的MAC层之前。2.如权利要求1所述的交换芯片报文转发方法,其特征在于,所述下行转发还包括: 在将来自CPU的报文转发出去时,将所述报文的vlan标签信息剥离。3.如权利要求1所述的交换芯片抱报文转发方法,其特征在于,所述交换芯片的入接口接收到报文时,对所述报文加封vlan标签,具体包括: 根据接收所述报文的子接口的vlan标识对所述报文加封vlan标签。4.如权利要求1所述的交换芯片抱报文转发方法,其特征在于,所述识别所述报文的vlan标签的标签信息包括: 读取所述报文的MAC层之前的vlan标签的标签信息。5.一种交换芯片,其特征在于,包括: Vlan标签加封单元,用于在从入接口接收的报文的MAC层之前加封vlan标签; Vlan标签识别单元,用于对从出接口接收的报文的MAC层之前的vlan标签进行识别;Vlan标签剥离单元,用于将来自CPU的报文转发出去的过程中将所述报文的MAC层之前的vlan标签剥离。
【专利摘要】本发明公开了一种交换芯片报文转发方法及交换芯片,所述报文转发包括上行转发和下行转发,其中,所述上行转发具体包括:所述交换芯片的入接口接收到报文时,对所述报文加封vlan标签;将加封vlan标签的报文发送到CPU接口;所述下行转发具体包括:所述交换芯片的出接口接收到来自CPU的报文时,识别所述报文的vlan标签的标签信息;根据所述标签信息选择对应的交换芯片接口发送所述报文;其中,所述vlan标签位于上述报文的MAC层之前。本发明的报文转发方法,既保证接口复用,又对代码复杂度降低和性能提升有较好的效果。
【IPC分类】H04L12/723
【公开号】CN105072033
【申请号】CN201510392051
【发明人】韩阳
【申请人】北京汉柏科技有限公司
【公开日】2015年11月18日
【申请日】2015年7月6日