一种在ASIC芯片中实现路由ARP信息和编辑信息分离的方法与流程

文档序号:17238585发布日期:2019-03-30 08:28阅读:422来源:国知局
一种在ASIC芯片中实现路由ARP信息和编辑信息分离的方法与流程

本发明涉及通信技术领域,尤其是涉及一种在芯片中实现路由ARP信息和编辑信息分离的方法。



背景技术:

在路由网络中,三层报文的转发是通过IP Da查找到网关(gateway)和出接口(interface),然后通过在interface上广播ARP报文来学习MAC地址和Port物理出口,当学习到ARP之后,可以通过MAC地址查找出口。因此在协议层面来看,三层报文的转发可以看着两部来完成的。先查找网关,然后通过网关查找出口。类似的,无论是MPLS,IP tunnel网络都需要ARP信息的学习,才能找到真正的出口。

针对这个问题,不同的芯片有着不同的实现方法。比较常用的有两种实现方法:一种实现方法就是完全按照上面的流程来做,实现两次IPda和MAC da两次查找,找到最终的出口。这样实现的好处是完全按照系统软件的实现来做,软件简单,但是这样来做也带来了延时长和芯片设计成本高的代价。所以这种方法通常只有在NP中实现,在ASIC芯片中不会采用。

方案二就是在芯片中只需要IPda一次查找就可以实现找到对应的出口信息。这种做法从芯片设计的角度来说减少了因为多次查找带来的延时。同时也减少了复杂度,这个是目前大部分ASIC芯片的使用方法。方案2也存在一些问题,主要是软件的复杂度提高。整个路由的Nexthop在初始状态下设置为discard属性。在学习到ARP信息的端口和MAC之后,需要对update所有的nexthop。特别是在端口up/down的时候会对同一个端口的nexthop进行刷新,效率比较低。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种在芯片中实现路由ARP信息和编辑信息分离的方法。

为实现上述目的,本发明提出如下技术方案:一种在ASIC芯片中实现路由ARP信息和编辑信息分离的方法,以IP路由转发为起点,在ASIC芯片应用下,路由IPda进行查找之后得到表DsFwd,所述表DsFwd包含一个nexthopPtr信息和一个dstPortid信息,所述nexthopPtr用来索引DsNextHop获取报文编辑信息和出口界面(interface)的信息;所述dstPortid用来索引DsPortProf来获取出口信息,其分离的方法程序包括:

第一步,创建ARP(地址分辨协议)的ARPID,通过ARPID来管理ARP信息;

第二步,创建Nexthop,整个Nexthop中包括出口界面(interface)和ARPID;

第三步,当ARP没有学习到时候,通过配置DsPortProf中的Dest Port,指定报文去CPU;

第四步,当第一个路由报文转发的时候,会由于ARP没有学习到上送到CPU,CPU发送ARP协议报文;

第五步,当ARP协议报文学习到ARP的信息之后,通过ARPID来更新ARP的出口和MACDA信息;下一个路由报文进行转发时,就可以直接发出去到学习的ARP出口,编辑学习的MACDA信息出去;

第六步,当端口发生变化时,通过ARP ID更新端口(Port)即可,省去了更新所有Nexthop。

优选地,所述编辑信息包括一个是三层信息的编辑和一个二层信息的编辑。

优选地,所述三层信息的编辑是tunnel或mpls标签。

优选地,所述二层信息的编辑是MACDA的信息。

优选地,所述ARP信息包括DsPortProf和DsL2EditEth。

优选地,所述编辑信息包括DsNextHop,DsFwd和L3Edit。

优选地,所述步骤一和二在创建时,把关联ARPId中的L2Edit和DestPortProf的索引放到对应的DsFwd和DsNexthop表中。

本发明的有益效果是:通过本方案实现ARP和Nexthop编辑信息的分离,在芯片设计较小的代价的情况下,经可能了简化了软件设计,提高了软件的效率。

附图说明

图1是本发明芯片中报文转发的流程图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

结合图1所示,本发明所揭示的一种在芯片中实现路由ARP信息和编辑信息分离的方法,以下以IP路由转发为例来说明ARP和报文编辑分离的方法。在本发明中路由IPda进行查找之后,会得到表DsFwd,其中包含两个重要的信息;一个是nexthopPtr,用来索引DsNextHop获取报文编辑和出口interface的信息;另外一个dstPortid,用来索引DsPortProf来获取出口信息。

其中编辑信息可以分成两部分,一个是三层信息的编辑,可以是tunnel,mpls标签等。另外一个二层信息的编辑,主要就是MACDA的信息。

我们把上述的信息分成两类,DsPortProf和DsL2EditEth可以归为ARP相关的信息;DsNextHop,DsFwd和L2Edit可以归结为报文编辑的信息。

在软件使用的时候,可以如下步骤来实现:

第一,创建ARP的ARPID,通过ARPID来管理DsL2EditEth和DsPortProf;

第二,创建Nexthop,整个Nexthop中包括出口Interface,和ARP ID,管理的表有DsNexthop,DsFwd,并且在创建的时候,把关联ARPId中的L2Edit和DestPortProf的索引放到对应的DsFwd和DsNexthop表中;

第三,当ARP没有学习到时候,可以通过配置DsPortProf中Dest Port,指定报文去CPU;

第四,当第一个路由报文转发的时候,会由于ARP没有学习到上送到CPU,CPU发送ARP协议报文;

第五,当ARP协议报文学习到ARP的信息之后,通过ARP ID来更新ARP的出口和MACDA信息;

第六,这样,下一个路由报文进行转发时,就可以直接出去了。

第七,当端口发生变化时,通过ARP ID更新Port即可,省去了更新所有Nexthop的问题。

通过本发明的技术方案实现ARP和Nexthop编辑信息的分离,在芯片设计较小的代价的情况下,尽可能了简化了软件设计,提高了软件的效率。本方案不仅限于IP路由,同样使用MPLS,IP tunnel等。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1