一种报文转发方法

文档序号:7775587阅读:151来源:国知局
一种报文转发方法
【专利摘要】本发明实施例提供了一种报文转发方法,能在上层业务流程不感知底层交换芯片的基础上实现转发,同时不影响设备的业务功能和转发性能。本发明实施例所提供的报文转发方法,使用时将交换芯片作为主接口注册,该方法包括:交换芯片入接口接收报文并辨别报文类型;根据报文类型定位报文IP头的位置;将处理后的报文送入业务处理流程;根据交换芯片出接口的属性信息,获取交换芯片出接口方向报文需要加封vlan标签的值和标签的层数;对报文的链路层加封vlan标签,并发送经过业务处理的报文。
【专利说明】一种报文转发方法
【技术领域】
[0001]本发明涉及网络【技术领域】,具体涉及一种报文转发方法。
技术背景
[0002]网络设备中使用交换芯片对设备接口进行扩展是常见的一种手段,可以用较低的成本对转发接口进行复用,提高设备整体使用的灵活性和竞争力。
[0003]使用交换芯片复用接口必须利用vlan的隔离特性对接口进行划分,即不同接口送上来的报文,都会被添加该接口对应的vlan标签。此种方式可以有效的对不同接口进行区分,保证接口复用的独立性。但是使用此种方式收发的报文,比原始报文多加了一层vlan标签,在进入CPU处理时,如何对此标签进行处理,会直接影响到业务处理流程的统一性和设备转发的性能。
[0004]现有技术中将交换芯片作为主接口注册时,不对报文类型进行区分,均采用剥离vlan标签的方法进行报文转发,当转发流量较大时,由于进行了标签剥离和添加操作,对每一个报文都存在内存拷贝操作,极大的降低了设备的转发性能。

【发明内容】

[0005]有鉴于此,本发明实施例提供了一种报文转发方法,可以实现在上层业务流程不感知底层交换芯片的基础上实现转发,同时不影响设备的业务功能和转发性能。
[0006]本发明一实施例提供了一种报文转发方法,其特征在于,使用时将交换芯片作为主接口注册,所述方法包括:
[0007]交换芯片入接口接收报文并辨别报文类型;
[0008]根据报文类型定位报文IP头的位置;
[0009]将处理后的报文送入业务处理流程;
[0010]根据交换芯片出接口的属性信息,获取交换芯片出接口方向报文需要加封vlan标签的值和标签的层数;
[0011]对报文IP头前面的链路层加封vlan标签,并发送经过业务处理的报文。
[0012]其中,所述报文类型包括:本机处理或设备转发。
[0013]其中,所述报文类型为本机处理时,所述根据报文类型定位报文IP头的位置包括:剥离报文中链路层的vlan标签,使头指针指向IP头位置。
[0014]其中,所述剥离报文中链路层的vlan标签为:剥离由交换芯片添加的vlan标签。
[0015]其中,进一步包括:报文自身携带的子接口 vlan标签直接随报文一同送入业务处
理流程。
[0016]其中,所述报文类型为设备转发时,所述根据报文类型定位报文IP头的位置包括:
[0017]根据交换芯片入接口的属性信息确定由交换芯片添加的vlan标签的层数;根据交换芯片添加的vlan标签的层数,将头指针偏移至IP头位置。[0018]其中,所述头指针偏移包括:更改头指针地址信息,更改变量与交换芯片添加的vlan标签的层数相同。
[0019]本发明公开的报文转发方法,将交换芯片作为主接口注册,业务功能不收子接口限制;同时根据报文类型,采取不同的方式定位IP头的位置。对于报文类型为设备转发的情况,不需要对报文进行剥离,而是采取指南偏移的方式获取IP头位置,避免了在报文转发过程中对报文的多次拷贝;进而提到了设备的处理和转化性能。
【专利附图】

【附图说明】
[0020]图1所示为本发明一实施例提供的报文结构示意图。
[0021]图2所示为本发明一实施例提供的报文转发方法流程图。
[0022]图3所示为本发明一实施例提供的经处理后本机处理报文的结构示意图。
[0023]图4所示为本发明一实施例提供的设备转发报文转发方法示意图。
[0024]图5所示为本发明一实施例提供的对处理后的本机处理报文封装vlan标签信息后的结构不意图。
[0025]图6所示为本发明另一实施例提供的对处理后的设备转发报文封装vlan标签信息后的结构不意图。
【具体实施方式】
[0026]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]本发明实施例提供了一种携带多层vlan标签报文的转发方法,将交换芯片作为主接口注册,并根据报文类型对报文采取不同的转发方式,可以实现在上层业务流程不感知底层的交换芯片的基础上实现转发,同时不影响设备的业务功能和转发性能。
[0028]图1所示为携带多层vlan标签报文的结构示意图,如图1所示,携带多层vlan标签的报文包括MAC头、至少一个vlan标签、IP头以及报文内容。其中,图示DMAC+SMAC为
MAC头,由交换芯片添加的vlan标签位于MAC头和IP头之间,如图示VLAN1、VLAN2.......这里,报文中的VLAN标签的个数即为交换芯片添加的vlan标签的层数。
[0029]图2所示为本发明一实施例提供的报文转发方法的流程图,如图2所示,当接收到如图1所述的报文后,该方法包括:
[0030]步骤201:交换芯片入接口接收报文,并辨别报文类型。
[0031]报文类型包括:本机处理或设备转发。本机处理报文目的地为本地网络设备,接收后用于本地协议学习等,业务处理流程为送入内核协议栈进行业务处理,在本地设备终结不进行转发,仅在需要时发送与原报文相对应的应答报文,一般转发流量较小。设备转发报文目的地为其他网络设备,接收后需要送入区别于内核协议栈的设备转发业务处理流程,更新信息后再发送出去,其转发流量大。
[0032]步骤202:根据报文类型,定位报文IP头的位置
[0033]当报文类型为本机处理时,定位报文IP头的位置为:剥离报文中链路层的vlan标签,即可得到包含MAC头(DMAC+SMAC)和IP头组成的报文,剥离后的报文结构具体如图3所示。由于后续CPU所处理的报文已经不再包含vlan标签,头指针直接指向IP头,因此后续处理流程中CPU不会感知到底层交换芯片的存在。
[0034]这里需要注意,在本发明一实施例中,被剥离的vlan标签为由交换芯片添加的标签。报文自身携带的子接口 vlan标签不能进行剥离,需随报文一同送入内核协议栈中处理。
[0035]当报文类型为设备转发时,定位报文IP头的位置为:根据交换芯片入接口的属性信息确定由交换芯片添加的vlan标签的层数,将头指针偏移至IP头位置,这样CPU在识别IP头时,可直接通过头指针正确定位IP头,不会受到报文中链路层信息的干扰,从而使得上层业务流程不会感知底层交换芯片。如图4所示,在定位IP头时,头指针pucData向报文IP头位置偏移,并指向IP头的位置,偏移量为由交换芯片添加的vlan标签的层数。
[0036]头指针的偏移可通过改变头指针的地址信息实现,头指针的地址信息为在内存中的存放位置。如MAC头和IP头位置之间添加的vlan标签层数为3层,而一个vlan标签为4个字节,那么将头指针地址信息加12个字节即可实现向IP头位置的偏移。在这种情况下,避免了标签剥离和添加操作时的内存操作
[0037]步骤203:将报文送入业务处理流程。
[0038]当报文类型为本机处理时,内核协议栈仅对报文中所包含的信息进行本地学习,并发送与原报文相对应的应答报文;当报文类型为设备转发时,设备转发流程需对报文内容进行解析,并更新报文信息,然后选择相应的接口发送更新信息后的报文。
[0039]步骤204:根据交换芯片出接口的属性信息,获取交换芯片出接口方向报文需要加封vlan标签的值和标签的层数。
[0040]后续报文每经过一个交换芯片,即需要加封一层vlan标签。这里,获取需要加封的vlan标签的值以及层数(经过的交换芯片的个数),vlan标签的取值和层数存储于交换芯片出接口的属性信息中。
[0041]步骤205:对报文IP头前面的链路层加封vlan标签,并发送经业务处理后的报文。对报文的链路层信息进行封装时,多层vlan标签被重新添加。
[0042]当报文类型为本机处理时,所述封装报文链路层信息的详细过程如图5所示,多
层vlan标签(VLAN1、VLAN2......)被重新添加。对于本机处理报文业务处理,报文仅在本
地学习,报文内容并没有改变,CPU所要发送的应答报文与原报文一致,重新添加的vlan标签也与原报文一致。
[0043]当报文类型为设备转发时,所述封装报文链路层信息的详细过程如图6所示,
报文的多层vlan标签(VLAN1、VLAN2......)经CPU处理和重新封装后变为(VLAN3、
VLAN2......)。对于设备转发报文业务处理,根据路由信息,转发报文会选择相应的接口发
送出去。其对应的交换芯片vlan标签信息也会改变。这样在转发流量首包进行处理时,按本发明所提供的技术方案会重新封装其链路层信息,并保存下来。后续报文可直接封装上此链路层信息进行转发。
[0044]本发明公开的报文转发方法接收本机处理报文时,由于本机处理报文流量小不影响设备的转发性能,采用剥离vlan标签方法可使处理流程中不感知底层交换芯片的存在。
[0045]本发明公开的报文转发方法接收设备转发报文时,由于设备转发报文流量大,其转发效率高低直接影响到设备性能。采用偏移头指针的方法,避免了标签剥离和添加操作时的内存操作,保证了设备性能,提高了效率。
[0046]本领域技术人员可以理解,以上所有的步骤均可以使用程序代码来实现,并不代表实际的实现过程。
[0047]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种报文转发方法,其特征在于,使用时将交换芯片作为主接口注册,所述方法包括: 交换芯片入接口接收报文并辨别报文类型; 根据报文类型定位报文IP头的位置; 将处理后的报文送入业务处理流程; 根据交换芯片出接口的属性信息,获取交换芯片出接口方向报文需要加封Vlan标签的值和标签的层数; 对报文的链路层加封vlan标签,并发送经过业务处理的报文。
2.根据权利要求1所述的方法,其特征在于,所述报文类型包括:本机处理或设备转发。
3.根据权利要求2所述的方法,其特征在于,所述报文类型为本机处理时,所述根据报文类型定位报文IP头的位置包括: 剥离报文中链路层的vlan标签,使头指针指向IP头位置。
4.根据权利要求3所述的方法,其特征在于,所述剥离报文中链路层的vlan标签为:剥离由交换芯片添加的vlan标签。
5.根据权利要求3所述的方法,其特征在于,进一步包括:报文自身携带的子接口vlan标签直接随报文一同送入业务处理流程。
6.根据权利要求2所述的方法,其特征在于,所述报文类型为设备转发时,所述根据报文类型定位报文IP头的位置包括: 根据交换芯片入接口的属性信息确定由交换芯片添加的vlan标签的层数;根据交换芯片添加的vlan标签的层数,将头指针偏移至IP头位置。
7.根据权利要求6所述的方法,其特征在于,所述头指针偏移包括:更改头指针地址信息,更改变量与交换芯片添加的vlan标签的层数相同。
【文档编号】H04L12/741GK103634213SQ201310541581
【公开日】2014年3月12日 申请日期:2013年11月4日 优先权日:2013年11月4日
【发明者】韩阳 申请人:天津汉柏信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1