CN105700859A - 一种基于网络处理器实现硬件表遍历的方法及装置 - Google Patents

一种基于网络处理器实现硬件表遍历的方法及装置 Download PDF

Info

Publication number
CN105700859A
CN105700859A CN201410687355.2A CN201410687355A CN105700859A CN 105700859 A CN105700859 A CN 105700859A CN 201410687355 A CN201410687355 A CN 201410687355A CN 105700859 A CN105700859 A CN 105700859A
Authority
CN
China
Prior art keywords
hardware
hardware table
table item
cpu message
message
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.)
Withdrawn
Application number
CN201410687355.2A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201410687355.2A priority Critical patent/CN105700859A/zh
Priority to PCT/CN2015/073808 priority patent/WO2016082367A1/zh
Publication of CN105700859A publication Critical patent/CN105700859A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于网络处理器实现硬件表遍历的方法及装置,上述方法包括:接收CPU报文,CPU报文携带硬件表项的匹配信息;根据硬件表项的总数,配置复制寄存器,复制寄存器的数值为需要复制CPU报文的份数,复制寄存器的数值等于硬件表项总数;根据复制寄存器的数值,复制CPU报文,并给复制的每个CPU报文分配一个复制序号,复制序号为CPU报文复制时的顺序号;逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与CPU报文的匹配信息是否匹配;若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值,本发明的方法能有效减少网络处理器中大容量硬件表遍历及匹配硬件表项批量上报的平均响应时间。

Description

一种基于网络处理器实现硬件表遍历的方法及装置
技术领域
本发明涉及通信技术领域,特别涉及一种基于网络处理器实现硬件表遍历的方法及装置。
背景技术
无源光纤网络(PON)指不含有任何电子器件及电子电源的特定光通信网,包括光线路终端(OLT)、光网络单元(ONU)和光配线网(ODN)三个部分。其中OLT设备位于中心控制站,多个ONU安装于用户场所。在OLT与ONU之间的ODN包含光纤以及无源分光器或者耦合器,但不包含任何有源电子设备。因此,PON网络具有无供电压力、环境适应性强、不受电磁雷电干扰等优势。将PON技术用于接入网建设还可以节约机房建设成本,降低运营维护费用。随着以太无源光网络(EPON)技术的出现,使得EPON无源光接入网成为新一代光接入网建设的主要选择之一。
网络处理器是一种可编程器件,特定应用于通信网络的各种任务,比如报文处理、协议分析、路由查找等。网络处理器独特的硬件设计,使其凭借灵活的编程方式和高效的报文处理在OLT设备中得到广泛应用。OLT设备中有很多应用需要大容量硬件表支持,比如硬件MAC地址表。当中央处理器CPU需要获取大容量硬件表中符合某类特征的所有表项时,如何快速遍历大容量硬件表,并将匹配表项批量上报,成为OLT设备驱动程序开发的技术难题之一。
依靠CPU逐项读取芯片中的大容量硬件表进行遍历,CPU和芯片需要交互大量的读表消息,这种方法的效率很低。为了快速遍历大容量硬件表,可以设计专门的硬件搜索引擎,使其在CPU控制下直接遍历硬件表,但这种方法对芯片硬件有较高要求,增加了开发成本。
发明内容
本发明的目的在于提供一种基于网络处理器实现硬件表遍历的方法及装置,能有效减少网络处理器中大容量硬件表遍历及匹配硬件表项批量上报的平均响应时间。
为了达到上述目的,本发明的实施例提供了一种基于网络处理器实现硬件表遍历的方法,上述方法包括:
接收CPU报文,CPU报文携带硬件表项的匹配信息;
根据硬件表项的总数,配置复制寄存器,复制寄存器的数值为需要复制CPU报文的份数,复制寄存器的数值等于硬件表项总数;
根据复制寄存器的数值,复制CPU报文,并给复制的每个CPU报文分配一个复制序号,复制序号为CPU报文复制时的顺序号;
逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与CPU报文的匹配信息是否匹配;
若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值。
其中,若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值的步骤之后,方法还包括:
根据计数器的值,从缓存表中获取保存的硬件表项。
其中,根据硬件表项的总数,配置复制寄存器的步骤包括:
检测CPU报文的类型信息;
根据类型信息,配置复制寄存器。
其中,逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与CPU报文的匹配信息是否匹配的步骤包括:
根据复制后的CPU报文的复制序号,获取硬件表项索引号等于该复制序号的硬件表项;
判断CPU报文的匹配信息与获取的硬件表项的信息是否匹配。
其中,若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值的步骤之后,方法还包括:
丢弃复制序号对应的CPU报文。
本发明实施例还提供了一种基于网络处理器实现硬件表遍历的装置,上述装置包括:
接收模块,用于接收CPU报文,CPU报文携带硬件表项的匹配信息;
配置模块,用于根据硬件表项的总数,配置复制寄存器,复制寄存器的数值为需要复制CPU报文的份数,复制寄存器的数值等于硬件表项总数;
复制模块,用于根据复制寄存器的数值,复制CPU报文,并给复制的每个CPU报文分配一个复制序号,复制序号为CPU报文复制时的顺序号;
判断模块,用于逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与CPU报文的匹配信息是否匹配;
更新模块,用于当硬件表项的信息与CPU报文的匹配信息匹配时,将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值。
其中,装置还包括:
获取模块,用于根据计数器的值,从缓存表中获取保存的硬件表项。
其中,配置模块包括:
检测单元,用于检测CPU报文的类型信息;
启动单元,用于根据类型信息,配置复制寄存器。
其中,判断模块包括:
第一单元,用于根据复制后的CPU报文的复制序号,获取硬件表项索引号等于该复制序号的硬件表项;
第二单元,用于判断CPU报文的匹配信息与获取的硬件表项的信息是否匹配。
其中,装置还包括:
丢弃模块,用于丢弃复制序号对应的CPU报文。
本发明的上述方案的有益效果如下:
在本发明实施例的基于网络处理器实现硬件表遍历的方法中,通过网络处理器的微码模块和逻辑多播模块遍历硬件表的方式,使得遍历硬件表的时间大大缩短,从而有效减少网络处理器中大容量硬件表遍历及匹配硬件表项批量上报的平均响应时间。
附图说明
图1为本发明实施例中基于网络处理器实现硬件表遍历的方法的步骤流程图;
图2为本发明实施例中图1中步骤12的具体步骤流程图;
图3为本发明实施例中图1中步骤14的具体步骤流程图;
图4为本发明实施例中线卡和网络处理器的结构示意图;
图5为本发明实施例中sys_mac_table和mac_cache_table的表项格式;
图6为本发明实施例中CPU报文的报文头部的格式;
图7为本发明实施例中CPU报文MAC_GET_PKT类型的报文头部的格式;
图8为本发明实施例中微码程序mac_iter_process的流程图;
图9为本发明实施例中基于网络处理器实现硬件表遍历的装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有技术中中央处理器CPU直接遍历大容量硬件表导致响应时间过长的问题,提供了一种基于网络处理器实现硬件表遍历的方法及装置,能有效减少网络处理器中大容量硬件表遍历及匹配硬件表项批量上报的平均响应时间。
如图1所示,本发明的实施例提供了一种基于网络处理器实现硬件表遍历的方法,上述方法包括:
步骤11,接收CPU报文,CPU报文携带硬件表项的匹配信息;
步骤12,根据硬件表项的总数,配置复制寄存器,复制寄存器的数值为需要复制CPU报文的份数,复制寄存器的数值等于硬件表项总数;
步骤13,根据复制寄存器的数值,复制CPU报文,并给复制的每个CPU报文分配一个复制序号,复制序号为CPU报文复制时的顺序号;
步骤14,逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与CPU报文的匹配信息是否匹配;
步骤15,若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值。
可选地,在本发明的上述实施例中,在执行完步骤15之后,上述方法还包括:根据计数器的值,从缓存表中获取保存的硬件表项。
可选地,在本发明的上述实施例中,在执行完步骤15之后,上述方法还包括:丢弃复制序号对应的CPU报文。
在本发明具体的实施例中,利用网络处理器的逻辑多播模块和微码模块实现大容量硬件表的快速遍历,并将匹配表项缓存,使CPU能直接读取匹配表项。当需要遍历某硬件表时,CPU会向网络处理器发送CPU报文,且该CPU报文头部携带该硬件表表项的匹配特征,表项的匹配特征是指表项的某个字段或者某几个字段等于CPU软件的指定值。如果CPU软件未指定硬件表项的任何字段的取值,则是要求获取该硬件表中所有有效的表项。接着CPU报文进入网络处理器的微码模块,对应的微码程序配置复制寄存器,该复制寄存器的数值为该报文的复制份数,复制份数等于该硬件表的表项总数。其中,微码模块是一般网络处理器共有的报文处理模块,可以存储多个微码程序;通过配置,不同来源的报文可以对应不同的微码程序。当报文进入微码模块后,相应的微码程序就开始处理该报文。其中,CPU报文对应的微码程序,其主要流程就是配置CPU报文的复制寄存器,复制寄存器保存报文的复制份数,应等于硬件表的表项总数N。然后CPU报文被送到逻辑多播模块进行复制,并且复制后的每份报文都携带一个复制序号,复制序号为CPU报文复制时的顺序号,其中,逻辑多播模块代指一般网络处理器中实现报文复制的硬件单元。复制寄存器值大于1的报文都会在逻辑多播模块中进行复制,并且复制后的每份报文都被分配一个复制序号,保存在特定寄存器中。其中,CPU报文在逻辑多播模块中被复制成N份,每份报文对应0~N-1之间的一个复制序号。逻辑多播模块复制完CPU报文之后,每份复制后报文回到微码模块,对应的微码程序都会读取该硬件表中表项索引号等于该报文复制序号的表项,表项索引号是硬件表项在硬件表中的序号;并判断该表项是否满足报文头部的匹配特征,如果满足,则将用于统计匹配表项的计数器的值加1,并将该表项写入用于缓存匹配表项的缓存表中,如果不满足,则不做处理;最后,无论该表项是否匹配,微码程序都将复制报文丢弃。
在本发明的具体实施例中,复制后的每份报文携带一个复制序号回到微码模块,相应的微码程序都会执行一次;该微码程序每执行一次,都会读取并判断该硬件表的一个不同表项,表项索引号分别等于报文的复制序号0~N-1。这样,该微码程序执行N次后,便等价于实现了对该硬件表的遍历查找。其中,由于微码程序的长度可能受到硬件资源的限制,在一个微码程序中顺序读取所有硬件表项一般无法实现,所以本发明实施例采用多次执行同一微码程序,每次执行只读取一条表项的方式。当网络处理器遍历完硬件表之后,CPU等待一定时间会直接读取上述计数器的数值,并根据计数器的数值读取缓存表中的匹配表项,即可获取批量的匹配表项(例如计数器的值是M,CPU根据计数器的数值M,读取缓存表的前M项,即为所有的匹配表项),其中,CPU的等待时长应根据硬件表的表容量和网络处理器的处理速度来确定,也可以通过实验的方法来确定。
在本发明具体的实施例中,微码程序读到一条匹配表项后,并没有立即上报给CPU,而是通过计数器计数并存入缓存表的方式集中上报,这样做可以减少CPU处理流程,方便CPU获取批量的匹配表项。计数器的初始值为0,可以由CPU进行清零操作。匹配表项存入缓存表的索引,由计数器的当前计数值确定。一般地,硬件计数器加1并返回计数值是一个不可分割的原子操作,可以避免微码程序多次执行时对匹配计数器密集操作导致混乱的问题。另外,CPU报文离开微码模块又回到微码模块,这一环路的配置可以在网络处理器初始化时进行配置。
在本发明具体的实施例中,微码模块对报文的处理十分高效,因此整个过程的处理时间远远小于CPU直接遍历大容量硬件表的响应时间。其中CPU读缓存表的时间只与匹配表项的实际数目成正比。在多数情况下,匹配表项的实际数目都比硬件表表项总数要小得多,因此本发明实施例的方法的响应时间比CPU直接遍历硬件表的响应时间要小得多。
如图2所示,在本发明的上述实施例中,步骤12的具体步骤为:
步骤21,检测CPU报文的类型信息;
步骤22,根据类型信息,配置复制寄存器。
如图3所示,在本发明的上述实施例中,步骤14的具体步骤流程为:
步骤31,根据复制后的CPU报文的复制序号,获取硬件表项索引号等于该复制序号的硬件表项;
步骤32,判断CPU报文的匹配信息与获取的硬件表项的信息是否匹配。
在本发明具体的实施例中,复制后的每份报文携带一个复制序号回到微码模块,相应的微码程序都会执行一次;该微码程序每执行一次,都会读取并判断硬件表的一个不同表项,表项索引号分别等于报文的复制序号。以下是一个具体的实施:
在一个EPON中,一个OLT包括主控卡,上联卡和线卡。考虑一块网络处理器实现的线卡,如图4所示,线卡转发并学习上下行报文的MAC地址。当前MAC地址信息记录在一张硬件表sys_mac_table中,表大小为N,即最多保存N个MAC地址。如图5所示,sys_mac_table的表项内容包括有效标志位valid,MAC地址mac_addr,端口值portId,vlan值vlanId,与静态/动态标志位static_flag。CPU可以要求获取sys_mac_table中符合某种特征的MAC地址,比如获取某端口、某vlan或者某端口+某vlan上的所有MAC地址。
为了实施上述实施例的技术方案,线卡初始化时在网络处理器芯片中配置一条报文从微码模块离开,再回到微码模块的环路队列,如图4所示。并在网络处理器芯片中定义用于计数匹配表项的硬件计数器mac_cache_counter,和用于缓存匹配表项的硬件表mac_cache_table.缓存表mac_cache_table的表项格式与MAC地址表sys_mac_table的表项格式一样,如图5所示。微码模块中存储多个微码程序,包括但不仅限于微码程序ecm_process和mac_iter_process.其中,微码程序ecm_process用来处理CPU发来的CPU报文,微码程序mac_iter_process用来处理经上述环回队列回到微码模块的报文。微码模块可以根据报文来源选择对应的微码程序进行处理。
考虑线卡CPU获取线卡某端口port1上所有MAC地址的情形。如图4所示,线卡CPU向网络处理器芯片发送获取MAC地址的CPU报文。如图6所示,CPU报文头部的格式定义为TYPE和VALUE两个部分。如图7所示,获取MAC地址的CPU报文,其TYPE部分取值定义为MAC_GET_PKT,VALUE部分取值定义为{port_match=1,portId=port1,vlan_match=0,vlanId=0}。
如图4所示,获取MAC地址的CPU报文首先进入网络处理器芯片的微码模块进行处理,相应的微码程序是ecm_process。ecm_process首先判断报文类型为MAC_GET_PKT,然后跳转到相应的子流程seq_get_mac_addr。子流程seq_get_mac_addr配置报文的复制寄存器,使复制份数等于N,并配置报文的目的队列为上述环回队列,使报文离开微码模块后能再次回到微码模块。
如图4所示,该CPU报文的复制寄存器值即复制份数大于1,因此在逻辑多播模块中被复制成N份,并且复制后的每份报文都携带一个复制序号,依次取值0~N-1。复制序号保存在特定寄存器中。这些复制报文通过环回队列回到微码模块进行处理,相应的微码程序是mac_iter_process。
如图8所示,微码程序mac_iter_process首先读特定寄存器获取报文的复制序号k,然后读取MAC地址表sys_mac_table中索引等于k的表项K。如果表项K无效,则配置丢弃该报文,程序结束。如果表项K有效,由于报文头部port_mtach=1,portId需要匹配,因此判断表项K的portId是否与报文头部的portId(=port1)相等。如果两者的portId不等,则配置丢弃该报文,程序结束。如果两者的portId相等,由于报文头部vlan_mtach=0,vlanId不需要匹配,因此进入后续流程将计数器mac_cache_counter加1并返回计数值C,并将表项K写入缓存表mac_cache_table中索引等于C-1的表项,最后配置丢弃该报文,程序结束。
计数器mac_cache_counter用来计数匹配表项的数目,每次获取MAC地址前CPU软件应将mac_cache_counter清零。由于硬件计数器的加1与返回计数值的操作是不可分割的原子操作,当微码程序mac_iter_process多次执行,对mac_cache_counter进行密集的加1返回操作时,每次操作返回的计数值C都能正确反映当前的计数结果,因此缓存表mac_cache_table的写入不会出现混乱,所有匹配的M条表项可以正确写入缓存表mac_cache_table的前M项。
CPU等待所有复制报文都处理完,就可以直接读计数器mac_cache_counter获取MAC地址的匹配总数M,并读取mac_cache_table的前M项上报。具体实施中可通过实验确定CPU的等待时长。这一等待时长应保证,当前MAC地址总数达到线卡支持的最大MAC地址数,也就是MAC地址表sys_mac_table的表大小N时,所有复制报文都能通过微码程序mac_iter_process处理完成。
从CPU软件将计数器mac_cache_counter清零,发送获取MAC地址的CPU报文开始,到最后CPU读取完成所有匹配的MAC地址信息,这一过程应该保证不被打断,相应的CPU软件的代码区间应该使用信号量等方式来保证互斥。这样做可以防止CPU连续执行获取MAC地址的操作时,对计数器mac_cache_counter与缓存表mac_cache_table操作混乱的竞争问题。在此只讨论了获取线卡指定端口上所有MAC地址的情形。获取线卡指定vlan上所有MAC地址,与获取线卡指定端口+指定vlan上所有MAC地址的情形,也适用于上述处理流程,这里不再赘述。
为了更好地实现上述目的,如图9所示,本发明实施例还提供了一种基于网络处理器实现硬件表遍历的装置90,上述装置80包括:
接收模块91,用于接收CPU报文,CPU报文携带硬件表项的匹配信息;
配置模块92,用于根据硬件表项的总数,配置复制寄存器,复制寄存器的数值为需要复制CPU报文的份数,复制寄存器的数值等于硬件表项总数;
复制模块93,用于根据复制寄存器的数值,复制CPU报文,并给复制的每个CPU报文分配一个复制序号,复制序号为CPU报文复制时的顺序号;
判断模块94,用于逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与CPU报文的匹配信息是否匹配;
更新模块95,用于当硬件表项的信息与CPU报文的匹配信息匹配时,将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值。
其中,装置90还包括:
获取模块,用于根据计数器的值,从缓存表中获取保存的硬件表项。
其中,装置90还包括:
丢弃模块,用于丢弃复制序号对应的CPU报文。
其中,配置模块92包括:
检测单元,用于检测CPU报文的类型信息;
启动单元,用于根据类型信息,配置复制寄存器。
其中,判断模块94包括:
第一单元,用于根据复制后的CPU报文的复制序号,获取硬件表项索引号等于该复制序号的硬件表项;
第二单元,用于判断CPU报文的匹配信息与获取的硬件表项的信息是否匹配。
在本发明的具体实施例中,上述接收模块91、配置模块92、复制模块93、判断模块94以及更新模块95的功能都可以通过网络处理器的接收模块、微码模块以及逻辑多播模块实现。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于网络处理器实现硬件表遍历的方法,其特征在于,包括:
接收CPU报文,所述CPU报文携带硬件表项的匹配信息;
根据所述硬件表项的总数,配置复制寄存器,所述复制寄存器的数值为需要复制所述CPU报文的份数,所述复制寄存器的数值等于硬件表项总数;
根据所述复制寄存器的数值,复制所述CPU报文,并给复制的每个CPU报文分配一个复制序号,所述复制序号为所述CPU报文复制时的顺序号;
逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与所述CPU报文的匹配信息是否匹配;
若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值。
2.如权利要求1所述的方法,其特征在于,所述若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值的步骤之后,所述方法还包括:
根据计数器的值,从所述缓存表中获取保存的硬件表项。
3.如权利要求1所述的方法,其特征在于,所述根据所述硬件表项的总数,配置复制寄存器的步骤包括:
检测所述CPU报文的类型信息;
根据所述类型信息,配置复制寄存器。
4.如权利要求1所述的方法,其特征在于,所述逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与所述CPU报文的匹配信息是否匹配的步骤包括:
根据复制后的CPU报文的复制序号,获取硬件表项索引号等于该复制序号的硬件表项;
判断所述CPU报文的匹配信息与获取的硬件表项的信息是否匹配。
5.如权利要求4所述的方法,其特征在于,所述若匹配,则将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值的步骤之后,所述方法还包括:
丢弃复制序号对应的CPU报文。
6.一种基于网络处理器实现硬件表遍历的装置,其特征在于,包括:
接收模块,用于接收CPU报文,所述CPU报文携带硬件表项的匹配信息;
配置模块,用于根据所述硬件表项的总数,配置复制寄存器,所述复制寄存器的数值为需要复制所述CPU报文的份数,所述复制寄存器的数值等于硬件表项总数;
复制模块,用于根据所述复制寄存器的数值,复制所述CPU报文,并给复制的每个CPU报文分配一个复制序号,所述复制序号为所述CPU报文复制时的顺序号;
判断模块,用于逐一将硬件表中的硬件表项与复制后的CPU报文进行比对,判断硬件表项的信息与所述CPU报文的匹配信息是否匹配;
更新模块,用于当硬件表项的信息与所述CPU报文的匹配信息匹配时,将匹配的硬件表项存储至预先配置的缓存表中,并更新预先配置的计数器的值。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
获取模块,用于根据计数器的值,从所述缓存表中获取保存的硬件表项。
8.如权利要求6所述的装置,其特征在于,所述配置模块包括:
检测单元,用于检测所述CPU报文的类型信息;
启动单元,用于根据所述类型信息,配置复制寄存器。
9.如权利要求6所述的装置,其特征在于,所述判断模块包括:
第一单元,用于根据复制后的CPU报文的复制序号,获取硬件表项索引号等于该复制序号的硬件表项;
第二单元,用于判断所述CPU报文的匹配信息与获取的硬件表项的信息是否匹配。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
丢弃模块,用于丢弃复制序号对应的CPU报文。
CN201410687355.2A 2014-11-25 2014-11-25 一种基于网络处理器实现硬件表遍历的方法及装置 Withdrawn CN105700859A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410687355.2A CN105700859A (zh) 2014-11-25 2014-11-25 一种基于网络处理器实现硬件表遍历的方法及装置
PCT/CN2015/073808 WO2016082367A1 (zh) 2014-11-25 2015-03-06 一种基于网络处理器实现硬件表遍历的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410687355.2A CN105700859A (zh) 2014-11-25 2014-11-25 一种基于网络处理器实现硬件表遍历的方法及装置

Publications (1)

Publication Number Publication Date
CN105700859A true CN105700859A (zh) 2016-06-22

Family

ID=56073446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410687355.2A Withdrawn CN105700859A (zh) 2014-11-25 2014-11-25 一种基于网络处理器实现硬件表遍历的方法及装置

Country Status (2)

Country Link
CN (1) CN105700859A (zh)
WO (1) WO2016082367A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105262854A (zh) * 2015-10-15 2016-01-20 上海斐讯数据通信技术有限公司 一种olt设备上mac地址表统一管理的方法及装置
CN106776107A (zh) * 2016-11-30 2017-05-31 迈普通信技术股份有限公司 一种奇偶校验纠错方法及网络设备
CN107729053A (zh) * 2017-10-17 2018-02-23 安徽皖通邮电股份有限公司 一种实现高速缓存表的方法
CN112637062A (zh) * 2020-12-22 2021-04-09 新华三技术有限公司合肥分公司 一种硬件转发表项同步方法及设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111600811A (zh) * 2020-04-14 2020-08-28 新华三信息安全技术有限公司 一种报文处理方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060130417A (ko) * 2005-06-14 2006-12-19 한국전자통신연구원 IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법
CN101043442A (zh) * 2006-11-17 2007-09-26 神州数码网络(北京)有限公司 一种在以太网交换机上实现urpf的方法
US7324547B1 (en) * 2002-12-13 2008-01-29 Nvidia Corporation Internet protocol (IP) router residing in a processor chipset
CN101841474A (zh) * 2010-04-15 2010-09-22 华为技术有限公司 访问控制列表的实现装置
CN101841473A (zh) * 2010-04-09 2010-09-22 北京星网锐捷网络技术有限公司 Mac地址表更新方法及装置
CN102831140A (zh) * 2012-05-18 2012-12-19 浙江大学 一种fpga中mac地址查找表的实现方法
CN102932262A (zh) * 2011-08-11 2013-02-13 中兴通讯股份有限公司 网络处理器镜像实现方法及网络处理器
CN103001878A (zh) * 2012-11-26 2013-03-27 中兴通讯股份有限公司 Mac地址哈希冲突的确定方法及装置
CN103973571A (zh) * 2013-02-05 2014-08-06 中兴通讯股份有限公司 网络处理器及其路由查找方法
US20140241357A1 (en) * 2013-02-25 2014-08-28 Brocade Communications Systems, Inc. Techniques for customizing forwarding decisions via a hardware lookup result
CN104038429A (zh) * 2013-03-05 2014-09-10 中兴通讯股份有限公司 一种在分布式转发设备上进行报文多播的方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324547B1 (en) * 2002-12-13 2008-01-29 Nvidia Corporation Internet protocol (IP) router residing in a processor chipset
KR20060130417A (ko) * 2005-06-14 2006-12-19 한국전자통신연구원 IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법
CN101043442A (zh) * 2006-11-17 2007-09-26 神州数码网络(北京)有限公司 一种在以太网交换机上实现urpf的方法
CN101841473A (zh) * 2010-04-09 2010-09-22 北京星网锐捷网络技术有限公司 Mac地址表更新方法及装置
CN101841474A (zh) * 2010-04-15 2010-09-22 华为技术有限公司 访问控制列表的实现装置
CN102932262A (zh) * 2011-08-11 2013-02-13 中兴通讯股份有限公司 网络处理器镜像实现方法及网络处理器
CN102831140A (zh) * 2012-05-18 2012-12-19 浙江大学 一种fpga中mac地址查找表的实现方法
CN103001878A (zh) * 2012-11-26 2013-03-27 中兴通讯股份有限公司 Mac地址哈希冲突的确定方法及装置
CN103973571A (zh) * 2013-02-05 2014-08-06 中兴通讯股份有限公司 网络处理器及其路由查找方法
US20140241357A1 (en) * 2013-02-25 2014-08-28 Brocade Communications Systems, Inc. Techniques for customizing forwarding decisions via a hardware lookup result
CN104038429A (zh) * 2013-03-05 2014-09-10 中兴通讯股份有限公司 一种在分布式转发设备上进行报文多播的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贺冰琰: ""基于网络处理器IXP1200的路由查找功能的微码实现"", 《现代计算机》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105262854A (zh) * 2015-10-15 2016-01-20 上海斐讯数据通信技术有限公司 一种olt设备上mac地址表统一管理的方法及装置
CN106776107A (zh) * 2016-11-30 2017-05-31 迈普通信技术股份有限公司 一种奇偶校验纠错方法及网络设备
CN106776107B (zh) * 2016-11-30 2019-07-16 迈普通信技术股份有限公司 一种奇偶校验纠错方法及网络设备
CN107729053A (zh) * 2017-10-17 2018-02-23 安徽皖通邮电股份有限公司 一种实现高速缓存表的方法
CN107729053B (zh) * 2017-10-17 2020-11-27 安徽皖通邮电股份有限公司 一种实现高速缓存表的方法
CN112637062A (zh) * 2020-12-22 2021-04-09 新华三技术有限公司合肥分公司 一种硬件转发表项同步方法及设备

Also Published As

Publication number Publication date
WO2016082367A1 (zh) 2016-06-02

Similar Documents

Publication Publication Date Title
CN105700859A (zh) 一种基于网络处理器实现硬件表遍历的方法及装置
CN107104824B (zh) 一种网络拓扑确定方法和装置
CN108809854A (zh) 一种用于大流量网络处理的可重构芯片架构
CN110912826B (zh) 利用acl扩充ipfix表项的方法及装置
CN103004158A (zh) 具有可编程内核的网络设备
US20150304124A1 (en) Message Processing Method and Device
CN107241305B (zh) 一种基于多核处理器的网络协议分析系统及其分析方法
CN111416865A (zh) 一种基于拟态防御的协议代理处理方法及系统
CN110166335A (zh) EtherCAT从站与从站同步通讯方法、控制系统、设备及存储介质
JP2006101525A (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
CN105939324A (zh) 转发报文的方法及装置
CN113542043B (zh) 网络设备的数据采样方法、装置、设备及介质
CN106021358A (zh) 一种异常信息记录方法及系统
US8006022B2 (en) Data transmission device
CN103986585A (zh) 报文预处理方法及其装置
JP6543246B2 (ja) ネットワークインターフェイス
CN107465621A (zh) 一种路由器发现方法、sdn控制器、路由器和网络系统
US9479425B2 (en) System and method for broadcasting data to multiple hardware forwarding engines
CN109672618A (zh) 冗余接口处理方法、装置、服务器及存储介质
CN105530153A (zh) 网络内的从设备通信方法、通信网络、主设备及从设备
CN114531380A (zh) 一种镜像质量核查方法、装置及电子设备
CN105340227B (zh) 开放流流表间信息传递的方法、控制器、交换机及系统
CN109218204A (zh) 一种解决mac hash冲突的方法和装置
CN101938420A (zh) 集群拓扑收集方法及装置
US7324438B1 (en) Technique for nondisruptively recovering from a processor failure in a multi-processor flow device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20160622

WW01 Invention patent application withdrawn after publication