CN113507415B - 一种表项处理方法及装置 - Google Patents
一种表项处理方法及装置 Download PDFInfo
- Publication number
- CN113507415B CN113507415B CN202110600631.7A CN202110600631A CN113507415B CN 113507415 B CN113507415 B CN 113507415B CN 202110600631 A CN202110600631 A CN 202110600631A CN 113507415 B CN113507415 B CN 113507415B
- Authority
- CN
- China
- Prior art keywords
- table entry
- entry
- mac
- new
- mac hardware
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种表项处理方法及装置,该方法应用于路由设备中的NP芯片,该方法包括:在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项;根据表项索引和计数器基址,确定新的MAC硬件表项对应的计数器的地址,并将其对应的计数器的值赋为初始值;生成新的MAC硬件表项对应的新的MAC软件表项,并向路由设备中的CPU发送携带有新的MAC软件表项的表项新建消息;在到达预设的表项扫描周期后扫描到新的MAC硬件表项、且未到达对应的老化时间时,若比对出新的MAC硬件表项中的表项版本号与计数器的值相同,则确定已成功发送新的MAC软件表项。本申请可减少路由设备中CPU的处理资源的占用。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种表项处理方法及装置。
背景技术
目前,对于网络中的任一路由设备而言,该路由设备中的网络处理器(NetworkProcessor,NP)芯片在接收到的报文未命中本地的媒体存取控制(Media Access Control,MAC)硬件表项时,会将该报文镜像到该路由设备中的中央处理器(Central ProcessingUnit,CPU)进行MAC地址学习;后续CPU生成对应的MAC软件表项,并继续生成该MAC软件表项对应的MAC硬件表项(具体内容与该MAC软件表项的内容相同),将该MAC硬件表项下发给该路由设备中的NP芯片,以便于NP芯片可以基于本地的MAC硬件表项处理接收到的报文。
但是,上述这种由CPU学习MAC软件表项的处理方式,会占用CPU较多的处理资源,从而影响路由设备的处理性能。
发明内容
为克服相关技术中存在的问题,本申请提供了一种表项处理方法及装置。
根据本申请实施例的第一方面,提供一种表项处理方法,所述方法应用于路由设备中的NP芯片,所述方法包括:
在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项,其中,所述新的MAC硬件表项中包括有所述第一报文的源MAC地址、生成所述新的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;
根据所述表项索引和计数器基址,确定所述新的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;
生成所述新的MAC硬件表项对应的新的MAC软件表项,并向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息,以使所述CPU在接收到所述表项新建消息时,保存所述新的MAC软件表项,并根据所述表项索引和所述计数器基址,确定所述计数器的地址,将确定出的地址对应的所述计数器的值赋为所述初始表项版本号,其中,所述新的MAC硬件表项和所述新的MAC软件表项的内容相同;
在到达预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述新的MAC软件表项。
根据本申请实施例的第二方面,提供一种表项处理装置,所述装置应用于路由设备中的NP芯片,所述装置包括:
生成模块,用于在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项,其中,所述新的MAC硬件表项中包括有所述第一报文的源MAC地址、生成所述新的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;
第一确定模块,用于根据所述表项索引和计数器基址,确定所述新的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;
第一发送模块,用于生成所述新的MAC硬件表项对应的新的MAC软件表项,并向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息,以使所述CPU在接收到所述表项新建消息时,保存所述新的MAC软件表项,并根据所述表项索引和所述计数器基址,确定所述计数器的地址,将确定出的地址对应的所述计数器的值赋为所述初始表项版本号,其中,所述新的MAC硬件表项和所述新的MAC软件表项的内容相同;
第二确定模块,用于在到达预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述新的MAC软件表项。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,网络中的路由设备中的NP芯片在接收到的报文未命中本地的MAC硬件表项时,不再将该报文镜像到该路由设备中的CPU进行MAC地址学习,而是直接进行MAC地址学习,生成相应的MAC硬件表项,该MAC硬件表项中包括有该报文的源MAC地址、生成相应的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;然后,该NP芯片根据该表项索引和计数器基址,确定相应的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;最后,该NP芯片生成相应的MAC硬件表项对应的MAC软件表项,并向该CPU发送携带有该MAC软件表项的表项新建消息;这样一来,该CPU在接收到该表项新建消息时,保存该MAC软件表项,并根据该表项索引和该计数器基址,确定上述计数器的地址,将上述计数器的值赋为该初始表项版本号,以便于该NP芯片在到达预设的表项扫描周期后,通过比对相应的MAC硬件表项中的表项版本号与该计数器的值,确认是否已成功发送该MAC软件表项。这种由NP芯片学习MAC软件表项的处理方式,可以减少CPU的处理资源的占用,进而提升了路由设备的处理性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种表项处理方法的流程示意图;
图2为本申请实施例提供的一种表项处理装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
本申请实施例提供了一种表项处理方法,该方法应用于路由设备中的NP芯片,如图1所示,该方法可以包括如下步骤:
S11、在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项。
在本步骤中,新的MAC硬件表项中包括有第一报文的源MAC地址、生成新的MAC硬件表项时申请的唯一的表项索引和初始表项版本号。
S12、根据表项索引和计数器基址,确定新的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值。
S13、生成新的MAC硬件表项对应的新的MAC软件表项,并向路由设备中的CPU发送携带有新的MAC软件表项的表项新建消息,以使CPU在接收到表项新建消息时,保存新的MAC软件表项,并根据表项索引和计数器基址,确定计数器的地址,将确定出的地址对应的计数器的值赋为初始表项版本号。
在本步骤中,新的MAC硬件表项和新的MAC软件表项的内容相同。
S14、在到达预设的表项扫描周期后扫描到新的MAC硬件表项、且未到达新的MAC硬件表项的老化时间时,若比对出新的MAC硬件表项中的表项版本号与计数器的值相同,则确定已成功发送新的MAC软件表项。
需要说明的是,在本申请实施例中,对于NP芯片而言,之所以在生成的MAC硬件表项中增设表项索引和表项版本号,主要是为了便于后续NP芯片可以基于MAC硬件表项中的版本号、和基于表项索引确定出为MAC硬件表项设置的计数器的值的比对结果,来确认是否成功向CPU发送相关MAC软件表项,以保证双方侧保存的相关表项的一致性。
在本申请实施例中,在NP芯片侧可以事先设置一个用于提供表项索引的表项索引池,NP芯片一旦学习到新的MAC地址,可以从表项索引池中申请一个空闲的表项索引,之后,生成包括有新的MAC地址、申请到的表项索引和初始版本号的MAC硬件表项。
具体地,在上述步骤S12中,NP芯片可以通过以下方式新的MAC硬件表项对应的计数器的地址:
将表项索引作为偏移地址,对计数器基址和表项索引进行相加,得到新的MAC硬件表项对应的计数器的地址。
需要说明的是,在本申请实施例中,NP芯片执行完上述步骤S13之后,对于路由设备中的CPU而言,一旦接收到上述表项新建消息,会保存该表项新建消息中携带的MAC软件表项(即,新的MAC软件表项);之后,CPU还会根据新的MAC软件表项中的表项索引和计数器基址,进一步确定新的MAC软件表项对应的MAC硬件表项(即,新的MAC硬件表项)所对应的计数器的地址,将确定出的地址对应的计数器的值赋为新的MAC软件表项中的版本号(即,初始表项版本号)。
在这里,CPU在将确定出的地址对应的计数器的值赋为新的MAC软件表项中的版本号时,CPU可以通过与NP芯片进行信息交互,读取到确定出的地址对应的计数器的值,并更改这个值。
进一步需要说明的是,在本申请实施例中,上述步初始版本号、初始值和预设的表项扫描周期均可以根据路由设备所在的网络环境来设定。例如,初始版本号和初始值均可以设定为0等;预设的表项扫描周期可以设定为10秒等。当然,这三个数据还可以设定为其他数值,在此不再一一列举。
具体地,在上述步骤S14中,上述可以根据路由设备所在的网络环境来设定,例如,初始值可以设定为0等。
需要说明的是,在本申请实施例中,NP芯片在到达预设的表项扫描周期后扫描到新的MAC硬件表项、且未到达新的MAC硬件表项的老化时间时,若比对出新的MAC硬件表项中的表项版本号与计数器的值不相同,则确定未成功发送新的MAC软件表项,重新向路由设备中的CPU发送携带有新的MAC软件表项的表项新建消息。
也就是说,对于NP芯片而言,会按照预设的表项扫描周期扫描本地的MAC硬件表项,一旦到达预设的表项扫描周期后,NP芯片会逐一扫描每个MAC硬件表项。
针对扫描到的任一MAC硬件表项,在未到达该MAC硬件表项的老化时间时,NP芯片会比对该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值是否相同;在比对结果为相同的情形下,就意味着NP芯片成功发送了该MAC硬件表项对应的MAC软件表项,不再做其他操作;在比对结果为不相同的情形下,就意味着NP芯片未成功发送该MAC硬件表项对应的MAC软件表项,即,发生了丢包,在这种情形下,NP芯片会重新向CPU发送携带有该MAC软件表项的表项新建消息,以便CPU可以及时保存该MAC硬件表项对应的MAC软件表项。
进一步地,在本申请实施例中,NP芯片还可以执行以下操作:
在判断出接收到的第二报文的源MAC地址为新的MAC硬件表项中的MAC地址且第二报文的源端口不为新的MAC硬件表项中的端口时,对新的MAC硬件表项进行更新,其中,更新后的MAC硬件表项中的端口为第二报文的源端口,更新后的MAC硬件表项中的表项版本号为NP芯片对初始表项版本号累加设定数值后得到的表项版本号;
生成更新后的MAC硬件表项对应的更新后的MAC软件表项,并向CPU发送携带有更新后的MAC软件表项的表项更新消息,以使CPU在接收到表项更新消息时,根据更新后的MAC软件表项,替换对应的MAC软件表项,并将计数器的值赋为更新后的MAC软件表项中的表项版本号;
在到达预设的表项扫描周期后扫描到更新后的MAC硬件表项、且未到达更新后的MAC硬件表项的老化时间时,若比对出更新后的MAC硬件表项中的表项版本号与计数器的值相同,则确定已成功发送更新后的MAC软件表项;若比对出更新后的MAC硬件表项中的表项版本号与计数器的值不相同,则确定未成功发送更新后的MAC软件表项,重新向CPU发送上述表项更新消息。
通过此操作流程,NP芯片可以及时将发生变化的MAC硬件表项对应的MAC软件表项发送给CPU,以保证双方侧保存的相关表项的一致性。
更进一步地,在本申请实施例中,NP芯片还可以执行以下操作:
若本地的任一MAC硬件表项到达老化时间,则生成该MAC硬件表项对应的MAC软件表项,并向CPU发送携带有该MAC软件表项的表项删除通知消息,以使CPU在接收到表项删除消息时,将表项删除消息中携带的该MAC软件表项对应的该MAC硬件表项所对应的计数器的值赋为表项删除消息中携带的该MAC软件表项中的表项版本号,并删除本地的包括有表项删除消息中携带的该MAC软件表项中的MAC地址的MAC软件表项;
在到达预设的表项扫描周期后,若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值相同,则删除该MAC硬件表项;若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值相同,则删除该MAC硬件表项。
下面结合具体实施例对上述表项处理方法进行详细说明。
以网络中的路由设备1为例,假设路由设备1中的NP芯片接收到源MAC地址为00:AA:BB:CC:DD:EE且源端口为端口1的报文1,且判断出报文1未命中本地的MAC硬件表项,此时,NP芯片从表项索引池中申请一个空闲的表项索引(例如,0x999),然后,NP芯片生成并保存MAC硬件表项1。其中,MAC硬件表项1中包括有报文1的00:AA:BB:CC:DD:EE、0x999和初始表项版本号(例如,1)。
之后,NP芯片根据0x999和计数器基址(例如,0x400000),确定MAC硬件表项1对应的计数器(例如,计数器1)的地址,并将确定出的地址对应的计数器(即,计数器1)的值赋为初始值(例如,0)。
接下来,NP芯片生成MAC硬件表项1对应的MAC软件表项(例如,MAC软件表项1,具体内容与MAC硬件表项1的内容相同),并向路由设备1中的CPU发送携带有MAC软件表项1的表项新建消息1。
假设CPU接收到NP芯片发送的表项新建消息1,CPU保存表项新建消息1中携带的MAC软件表项1,并根据MAC软件表项1中的0x999和0x400000,确定MAC软件表项1对应的MAC硬件表项1所对应的计数器(即,计数器1)的地址,将确定出的地址对应的计数器(即,计数器1)的值赋为1。
NP芯片在到达预设的表项扫描周期后(例如,10秒)扫描到MAC硬件表项1、且未到达MAC硬件表项1的老化时间(例如,50秒)时,比对出MAC硬件表项1中的表项版本号(即,1)与计数器的值(即,1)相同,此时,NP芯片确定已成功发送MAC软件表项1。
后续假设NP芯片接收到源MAC地址为00:AA:BB:CC:DD:EE且源端口为端口2的报文2,NP芯片判断出报文2的源MAC为MAC硬件表项1中的MAC地址且报文2的源端口不为MAC硬件表项1中的端口,此时,NP芯片对MAC硬件表项1进行更新。即,NP芯片将MAC硬件表项1中的端口修改为报文2的源端口(即,端口2),将MAC硬件表项1中的表项版本号修改为NP芯片对初始表项版本号累加设定数值(例如,1)后得到的表项版本号(即,2)。
之后,NP芯片生成更新后的MAC硬件表项1对应的更新后的MAC软件表项,并向CPU发送携带有更新后的MAC软件表项的表项更新消息2。
假设CPU没有接收到表项更新消息2,即,表项更新消息2发生了丢包。
NP芯片后续在到达预设的表项扫描周期后扫描到更新后的MAC硬件表项、且未到达更新后的MAC硬件表项1的老化时间时,比对出更新后的MAC硬件表项1中的表项版本号(即,2)与计数器的值(即,1)不相同,此时,NP芯片确定未成功发送更新后的MAC软件表项,重新向CPU发送表项更新消息2。
假设CPU接收到表项更新消息2,CPU根据表项更新消息2中携带的更新后的MAC软件表项,替换对应的MAC软件表项,即,替换MAC软件表项1,并将计数器1的值赋为更新后的MAC软件表项中的表项版本号(即,2)。
NP芯片后续在到达预设的表项扫描周期后扫描到更新后的MAC硬件表项1、且未到达更新后的MAC硬件表项1的老化时间时,比对出更新后的MAC硬件表项1中的表项版本号(即,2)与计数器的值(即,2)相同,此时,NP芯片确定已成功发送更新后的MAC软件表项。
接下来,假设在某个时刻,NP芯片本地的MAC硬件表项2到达老化时间,此时,NP芯片生成MAC硬件表项2对应的MAC软件表项,并向CPU发送携带有该MAC软件表项的表项删除通知消息3。
假设CPU接收到表项删除消息3,此时,CPU将表项删除消息3中携带的该MAC软件表项对应的MAC硬件表项2所对应的计数器(例如,计数器2)的值赋为表项删除消息3中携带的该MAC软件表项中的表项版本号(例如,3),并删除本地的包括有表项删除消息3中携带的该MAC软件表项中的MAC地址的MAC软件表项。
假设后续NP芯片在到达预设的表项扫描周期后,比对出MAC硬件表项2中的表项版本号(即,3)与MAC硬件表项2对应的计数器(即,计数器2)的值(即,3)相同,此时,NP芯片删除MAC硬件表项2。
需要说明的是,NP芯片按照现有转发方式转发上述报文1和报文2,在此不在详述。
由以上技术方案可以看出,在本申请实施例中,网络中的路由设备中的NP芯片在接收到的报文未命中本地的MAC硬件表项时,不再将该报文镜像到该路由设备中的CPU进行MAC地址学习,而是直接进行MAC地址学习,生成相应的MAC硬件表项,该MAC硬件表项中包括有该报文的源MAC地址、生成相应的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;然后,该NP芯片根据该表项索引和计数器基址,确定相应的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;最后,该NP芯片生成相应的MAC硬件表项对应的MAC软件表项,并向该CPU发送携带有该MAC软件表项的表项新建消息;这样一来,该CPU在接收到该表项新建消息时,保存该MAC软件表项,并根据该表项索引和该计数器基址,确定上述计数器的地址,将上述计数器的值赋为该初始表项版本号,以便于该NP芯片在到达预设的表项扫描周期后,通过比对相应的MAC硬件表项中的表项版本号与该计数器的值,确认是否已成功发送该MAC软件表项。这种由NP芯片学习MAC软件表项的处理方式,可以减少CPU的处理资源的占用,进而提升了路由设备的处理性能。
基于同一发明构思,本申请还提供了一种表项处理装置,所述装置应用于路由设备中的NP芯片,其结构示意图如图2所示,具体包括:
生成模块21,用于在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项,其中,所述新的MAC硬件表项中包括有所述第一报文的源MAC地址、生成所述新的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;
第一确定模块22,用于根据所述表项索引和计数器基址,确定所述新的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;
第一发送模块23,用于生成所述新的MAC硬件表项对应的新的MAC软件表项,并向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息,以使所述CPU在接收到所述表项新建消息时,保存所述新的MAC软件表项,并根据所述表项索引和所述计数器基址,确定所述计数器的地址,将确定出的地址对应的所述计数器的值赋为所述初始表项版本号,其中,所述新的MAC硬件表项和所述新的MAC软件表项的内容相同;
第二确定模块24,用于在到达预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述新的MAC软件表项。
优选地,第一确定模块22,具体用于:
将所述表项索引作为偏移地址,对所述计数器基址和所述表项索引进行相加,得到所述新的MAC硬件表项对应的计数器的地址。
优选地,所述装置还包括:
第三确定模块(图2中未示出),用于在到达所述预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值不相同,则确定未成功发送所述新的MAC软件表项,重新向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息。
优选地,所述装置还包括:
更新模块(图2中未示出),用于在判断出接收到的第二报文的源MAC地址为所述新的MAC硬件表项中的MAC地址且所述第二报文的源端口不为所述新的MAC硬件表项中的端口时,对所述新的MAC硬件表项进行更新,其中,更新后的MAC硬件表项中的端口为所述第二报文的源端口,更新后的MAC硬件表项中的表项版本号为所述NP芯片对所述初始表项版本号累加设定数值后得到的表项版本号;
第二发送模块(图2中未示出),用于生成所述更新后的MAC硬件表项对应的更新后的MAC软件表项,并向所述CPU发送携带有所述更新后的MAC软件表项的表项更新消息,以使所述CPU在接收到所述表项更新消息时,根据所述更新后的MAC软件表项,替换对应的MAC软件表项,并将所述计数器的值赋为所述更新后的MAC软件表项中的表项版本号;
第三确定模块(图2中未示出),用于在到达所述预设的表项扫描周期后扫描到所述更新后的MAC硬件表项、且未到达所述更新后的MAC硬件表项的老化时间时,若比对出所述更新后的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述更新后的MAC软件表项;若比对出所述更新后的MAC硬件表项中的表项版本号与所述计数器的值不相同,则确定未成功发送所述更新后的MAC软件表项,重新向所述CPU发送所述表项更新消息。
优选地,所述装置还包括:
第三发送模块(图2中未示出),用于若本地的任一MAC硬件表项到达老化时间,则生成该MAC硬件表项对应的MAC软件表项,并向所述CPU发送携带有该MAC软件表项的表项删除通知消息,以使所述CPU在接收到所述表项删除消息时,将所述表项删除消息中携带的该MAC软件表项对应的该MAC硬件表项所对应的计数器的值赋为所述表项删除消息中携带的该MAC软件表项中的表项版本号,并删除本地的包括有所述表项删除消息中携带的该MAC软件表项中的MAC地址的MAC软件表项;
第四确定模块(图2中未示出),用于在到达所述预设的表项扫描周期后,若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值相同,则确定已成功发送所述表项删除消息,并删除该MAC硬件表项;若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值不相同,则确定未成功发送所述表项删除消息,重新向所述CPU发送所述表项删除消息。
由以上技术方案可以看出,在本申请实施例中,网络中的路由设备中的NP芯片在接收到的报文未命中本地的MAC硬件表项时,不再将该报文镜像到该路由设备中的CPU进行MAC地址学习,而是直接进行MAC地址学习,生成相应的MAC硬件表项,该MAC硬件表项中包括有该报文的源MAC地址、生成相应的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;然后,该NP芯片根据该表项索引和计数器基址,确定相应的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;最后,该NP芯片生成相应的MAC硬件表项对应的MAC软件表项,并向该CPU发送携带有该MAC软件表项的表项新建消息;这样一来,该CPU在接收到该表项新建消息时,保存该MAC软件表项,并根据该表项索引和该计数器基址,确定上述计数器的地址,将上述计数器的值赋为该初始表项版本号,以便于该NP芯片在到达预设的表项扫描周期后,通过比对相应的MAC硬件表项中的表项版本号与该计数器的值,确认是否已成功发送该MAC软件表项。这种由NP芯片学习MAC软件表项的处理方式,可以减少CPU的处理资源的占用,进而提升了路由设备的处理性能。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种表项处理方法,其特征在于,所述方法应用于路由设备中的NP芯片,所述方法包括:
在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项,其中,所述新的MAC硬件表项中包括有所述第一报文的源MAC地址、生成所述新的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;
根据所述表项索引和计数器基址,确定所述新的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;
生成所述新的MAC硬件表项对应的新的MAC软件表项,并向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息,以使所述CPU在接收到所述表项新建消息时,保存所述新的MAC软件表项,并根据所述表项索引和所述计数器基址,确定所述计数器的地址,将确定出的地址对应的所述计数器的值赋为所述初始表项版本号,其中,所述新的MAC硬件表项和所述新的MAC软件表项的内容相同;
在到达预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述新的MAC软件表项。
2.根据权利要求1所述的方法,其特征在于,根据所述表项索引和计数器基址,确定所述新的MAC硬件表项对应的计数器的地址,具体包括:
将所述表项索引作为偏移地址,对所述计数器基址和所述表项索引进行相加,得到所述新的MAC硬件表项对应的计数器的地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在到达所述预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值不相同,则确定未成功发送所述新的MAC软件表项,重新向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在判断出接收到的第二报文的源MAC地址为所述新的MAC硬件表项中的MAC地址且所述第二报文的源端口不为所述新的MAC硬件表项中的端口时,对所述新的MAC硬件表项进行更新,其中,更新后的MAC硬件表项中的端口为所述第二报文的源端口,更新后的MAC硬件表项中的表项版本号为所述NP芯片对所述初始表项版本号累加设定数值后得到的表项版本号;
生成所述更新后的MAC硬件表项对应的更新后的MAC软件表项,并向所述CPU发送携带有所述更新后的MAC软件表项的表项更新消息,以使所述CPU在接收到所述表项更新消息时,根据所述更新后的MAC软件表项,替换对应的MAC软件表项,并将所述计数器的值赋为所述更新后的MAC软件表项中的表项版本号;
在到达所述预设的表项扫描周期后扫描到所述更新后的MAC硬件表项、且未到达所述更新后的MAC硬件表项的老化时间时,若比对出所述更新后的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述更新后的MAC软件表项;若比对出所述更新后的MAC硬件表项中的表项版本号与所述计数器的值不相同,则确定未成功发送所述更新后的MAC软件表项,重新向所述CPU发送所述表项更新消息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若本地的任一MAC硬件表项到达老化时间,则生成该MAC硬件表项对应的MAC软件表项,并向所述CPU发送携带有该MAC软件表项的表项删除通知消息,以使所述CPU在接收到所述表项删除消息时,将所述表项删除消息中携带的该MAC软件表项对应的该MAC硬件表项所对应的计数器的值赋为所述表项删除消息中携带的该MAC软件表项中的表项版本号,并删除本地的包括有所述表项删除消息中携带的该MAC软件表项中的MAC地址的MAC软件表项;
在到达所述预设的表项扫描周期后,若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值相同,则确定已成功发送所述表项删除消息,并删除该MAC硬件表项;若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值不相同,则确定未成功发送所述表项删除消息,重新向所述CPU发送所述表项删除消息。
6.一种表项处理装置,其特征在于,所述装置应用于路由设备中的NP芯片,所述装置包括:
生成模块,用于在判断出接收到的第一报文未命中本地的MAC硬件表项时,生成并保存新的MAC硬件表项,其中,所述新的MAC硬件表项中包括有所述第一报文的源MAC地址、生成所述新的MAC硬件表项时申请的唯一的表项索引和初始表项版本号;
第一确定模块,用于根据所述表项索引和计数器基址,确定所述新的MAC硬件表项对应的计数器的地址,并将确定出的地址对应的计数器的值赋为初始值;
第一发送模块,用于生成所述新的MAC硬件表项对应的新的MAC软件表项,并向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息,以使所述CPU在接收到所述表项新建消息时,保存所述新的MAC软件表项,并根据所述表项索引和所述计数器基址,确定所述计数器的地址,将确定出的地址对应的所述计数器的值赋为所述初始表项版本号,其中,所述新的MAC硬件表项和所述新的MAC软件表项的内容相同;
第二确定模块,用于在到达预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述新的MAC软件表项。
7.根据权利要求6所述的装置,其特征在于,第一确定模块,具体用于:
将所述表项索引作为偏移地址,对所述计数器基址和所述表项索引进行相加,得到所述新的MAC硬件表项对应的计数器的地址。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于在到达所述预设的表项扫描周期后扫描到所述新的MAC硬件表项、且未到达所述新的MAC硬件表项的老化时间时,若比对出所述新的MAC硬件表项中的表项版本号与所述计数器的值不相同,则确定未成功发送所述新的MAC软件表项,重新向所述路由设备中的CPU发送携带有所述新的MAC软件表项的表项新建消息。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
更新模块,用于在判断出接收到的第二报文的源MAC地址为所述新的MAC硬件表项中的MAC地址且所述第二报文的源端口不为所述新的MAC硬件表项中的端口时,对所述新的MAC硬件表项进行更新,其中,更新后的MAC硬件表项中的端口为所述第二报文的源端口,更新后的MAC硬件表项中的表项版本号为所述NP芯片对所述初始表项版本号累加设定数值后得到的表项版本号;
第二发送模块,用于生成所述更新后的MAC硬件表项对应的更新后的MAC软件表项,并向所述CPU发送携带有所述更新后的MAC软件表项的表项更新消息,以使所述CPU在接收到所述表项更新消息时,根据所述更新后的MAC软件表项,替换对应的MAC软件表项,并将所述计数器的值赋为所述更新后的MAC软件表项中的表项版本号;
第三确定模块,用于在到达所述预设的表项扫描周期后扫描到所述更新后的MAC硬件表项、且未到达所述更新后的MAC硬件表项的老化时间时,若比对出所述更新后的MAC硬件表项中的表项版本号与所述计数器的值相同,则确定已成功发送所述更新后的MAC软件表项;若比对出所述更新后的MAC硬件表项中的表项版本号与所述计数器的值不相同,则确定未成功发送所述更新后的MAC软件表项,重新向所述CPU发送所述表项更新消息。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于若本地的任一MAC硬件表项到达老化时间,则生成该MAC硬件表项对应的MAC软件表项,并向所述CPU发送携带有该MAC软件表项的表项删除通知消息,以使所述CPU在接收到所述表项删除消息时,将所述表项删除消息中携带的该MAC软件表项对应的该MAC硬件表项所对应的计数器的值赋为所述表项删除消息中携带的该MAC软件表项中的表项版本号,并删除本地的包括有所述表项删除消息中携带的该MAC软件表项中的MAC地址的MAC软件表项;
第四确定模块,用于在到达所述预设的表项扫描周期后,若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值相同,则确定已成功发送所述表项删除消息,并删除该MAC硬件表项;若比对出该MAC硬件表项中的表项版本号与该MAC硬件表项对应的计数器的值不相同,则确定未成功发送所述表项删除消息,重新向所述CPU发送所述表项删除消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110600631.7A CN113507415B (zh) | 2021-05-31 | 2021-05-31 | 一种表项处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110600631.7A CN113507415B (zh) | 2021-05-31 | 2021-05-31 | 一种表项处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113507415A CN113507415A (zh) | 2021-10-15 |
CN113507415B true CN113507415B (zh) | 2022-11-18 |
Family
ID=78008728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110600631.7A Active CN113507415B (zh) | 2021-05-31 | 2021-05-31 | 一种表项处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113507415B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553602B (zh) * | 2022-04-25 | 2022-07-29 | 深圳星云智联科技有限公司 | 一种软硬生命老化控制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106532A (zh) * | 2007-07-10 | 2008-01-16 | 中兴通讯股份有限公司 | 实现交换芯片与网络处理器混合转发的方法 |
WO2013020429A1 (zh) * | 2011-08-11 | 2013-02-14 | 中兴通讯股份有限公司 | 网络处理器镜像实现方法及网络处理器 |
CN103581024A (zh) * | 2013-11-21 | 2014-02-12 | 盛科网络(苏州)有限公司 | Mac地址硬件与软件相结合的学习方法及装置 |
CN109451087A (zh) * | 2018-10-26 | 2019-03-08 | 新华三技术有限公司 | Mac表项老化处理方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141537A1 (en) * | 2003-12-29 | 2005-06-30 | Intel Corporation A Delaware Corporation | Auto-learning of MAC addresses and lexicographic lookup of hardware database |
US9535613B2 (en) * | 2014-11-24 | 2017-01-03 | Futurewei Technologies, Inc. | Hardware and software methodologies for detecting illegal memory address of a memory access operation |
-
2021
- 2021-05-31 CN CN202110600631.7A patent/CN113507415B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106532A (zh) * | 2007-07-10 | 2008-01-16 | 中兴通讯股份有限公司 | 实现交换芯片与网络处理器混合转发的方法 |
WO2013020429A1 (zh) * | 2011-08-11 | 2013-02-14 | 中兴通讯股份有限公司 | 网络处理器镜像实现方法及网络处理器 |
CN103581024A (zh) * | 2013-11-21 | 2014-02-12 | 盛科网络(苏州)有限公司 | Mac地址硬件与软件相结合的学习方法及装置 |
CN109451087A (zh) * | 2018-10-26 | 2019-03-08 | 新华三技术有限公司 | Mac表项老化处理方法和装置 |
Non-Patent Citations (3)
Title |
---|
众核网络处理器下高速包转发系统设计与实现;陈亮等;《计算机应用与软件》;20161215(第12期);全文 * |
基于FPGA的MAC层地址表设计与仿真;于翔等;《计算机工程与设计》;20130116(第01期);全文 * |
基于网络处理器的高速动态分流器设计;刘延华等;《集美大学学报(自然科学版)》;20080415(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113507415A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3418877B1 (en) | Data writing and reading method and apparatus, and cloud storage system | |
EP1750469B1 (en) | Automatic mobile device capability management | |
CN107360184B (zh) | 终端设备认证方法和装置 | |
CN110519409B (zh) | 域名动态配置方法、装置、设备及存储介质 | |
WO2020228038A1 (zh) | 域名处理方法、装置、电子设备以及存储介质 | |
CN106789859B (zh) | 报文匹配方法及装置 | |
US20140164645A1 (en) | Routing table maintenance | |
CN108234422B (zh) | 资源调度方法及装置 | |
CN113507415B (zh) | 一种表项处理方法及装置 | |
CN109218458B (zh) | Mac地址的写入方法、设备及计算机可读存储介质 | |
CN106878052B (zh) | 一种用户迁移方法和装置 | |
CN106254245A (zh) | 一种管理表项的方法及装置 | |
US10467143B1 (en) | Event-driven cache | |
CN111866203B (zh) | 一种域名解析方法、装置、可读存储介质及设备 | |
CN116633771A (zh) | 灰度发布的方法、装置、介质 | |
CN113935438B (zh) | 基于设备角色的物联网设备异常检测方法、系统及装置 | |
CN112350945B (zh) | Mac地址学习方法、网关设备及存储介质 | |
CN114338177A (zh) | 物联网定向访问管控方法与系统 | |
CN106790168B (zh) | 一种通信预处理方法、客户端及服务端 | |
CN114301872A (zh) | 基于域名的访问方法及装置、电子设备、存储介质 | |
CN114422459A (zh) | 即时消息传输的方法、装置和计算机设备 | |
CN114301686B (zh) | 一种安全策略的匹配方法及装置、存储介质 | |
CN113225308B (zh) | 网络访问的控制方法、节点设备及服务器 | |
CN112565414B (zh) | 一种数据下载方法、装置、设备及介质 | |
CN114466075B (zh) | 请求处理方法及装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |