CN113765806A - Mac地址学习方法、装置、设备及可读存储介质 - Google Patents
Mac地址学习方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113765806A CN113765806A CN202111026518.9A CN202111026518A CN113765806A CN 113765806 A CN113765806 A CN 113765806A CN 202111026518 A CN202111026518 A CN 202111026518A CN 113765806 A CN113765806 A CN 113765806A
- Authority
- CN
- China
- Prior art keywords
- mac
- learning
- message
- field
- ethernet
- 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.)
- Granted
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/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种MAC地址学习方法、装置、设备及可读存储介质。该方法包括:当从报文入口接收到为学习报文的以太网报文时,通过学习报文回调函数将其存入消息队列,并将其重组打包发送至控制面;通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,在内存中保存MAC表项的镜像;控制面通过经过重组打包的以太网报文学到本地MAC后,通告给远端,同时将本地MAC表项发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;老化线程周期性遍历MAC表项的镜像缓存,将为伪存在态的MAC表项的设置为学习态,并将其写入TCAM。通过本发明,提升了EVPN业务MAC地址学习的速率,且增强了EVPN业务MAC地址学习的可靠性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种MAC地址学习方法、装置、设备及可读存储介质。
背景技术
目前,学习本地源MAC地址的方式主要有两种:
方式一,转发芯片将本地需要学习的以太网报文上送到控制面学习源MAC,控制面学到后下发给转发面;方式二,转发芯片学习源MAC,转发面适配层轮询转发芯片学到的源MAC并上送到控制面。
其中,方式一存在如下缺点:
重复上送造成信令通道拥塞,部分上送报文被丢弃,控制面处理重复报文或者收不到上送报文导致学习速率变慢;HASH表需要进行HASH计算,读写性能不高,并且存在HASH冲突的情况。
方式二存在如下缺点:
转发适配层轮询耗时;转发适配层逻辑复杂,需要进行轮询、查重、上报和重传,存在性能问题。
发明内容
为解决上述现有技术中存在的至少一个技术问题,本发明提供一种MAC地址学习方法、装置、设备及可读存储介质。
第一方面,本发明提供一种MAC地址学习方法,所述MAC地址学习方法包括:
从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;
检测所述以太网报文是否为学习报文;
若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;
转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;
控制面通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;
转发面新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。
可选的,所述检测所述以太网报文是否为学习报文的步骤包括:
获取所述以太网报文的源MAC和目的MAC;
使用所述报文入口关联的BD加上所述以太网报文的源MAC作为键值查询TCAM中的MAC表;
若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
可选的,所述MAC表的格式定义为:键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
可选的,所述将所述以太网报文重组打包发送至控制面的步骤包括:
将所述以太网报文私有头部中的有效字段取出存入包缓存中,包缓存的第一个字节定义为计数器,表示有效字段个数,有效字段是定长的,存入包缓存后,计数器自加1,包缓存偏移固定长度,计数器到达门限值后,调用组件发包回调接口将重组后的所述以太网报文发送到控制面。
可选的,所述转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像的步骤包括:
转发面新建MAC学习线程;
MAC学习线程从消息队列中读出所述以太网报文,解析所述以太网报文的私有头部获取BD字段、源MAC字段和目的端口字段,将BD字段和源MAC字段作为MAC表的键值,设置掩码长度和键值长度一致,掩码的所有bit取值为1,目的端口字段作为MAC表的数据部分,数据部分的匹配动作字段设置为伪存在态,得到所述以太网报文对应的MAC表项;
MAC学习线程将所述MAC表项刷新到TCAM,并在内存中保存MAC表项的镜像。
第二方面,本发明还提供一种MAC地址学习装置,所述MAC地址学习装置包括:
接收模块,用于从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;
检测模块,用于检测所述以太网报文是否为学习报文;
转发模块,用于若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;
转发面,用于新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;
控制面,用于通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;
转发面,还用于新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。
可选的,所述检测模块,用于:
获取所述以太网报文的源MAC和目的MAC;
使用所述报文入口关联的BD加上所述以太网报文的源MAC作为键值查询TCAM中的MAC表;
若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
可选的,所述MAC表的格式定义为:键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
可选的,转发模块,用于将所述以太网报文私有头部中的有效字段取出存入包缓存中,包缓存的第一个字节定义为计数器,表示有效字段个数,有效字段是定长的,存入包缓存后,计数器自加1,包缓存偏移固定长度,计数器到达门限值后,调用组件发包回调接口将重组后的所述以太网报文发送到控制面。
可选的,转发面,用于:
新建MAC学习线程;
MAC学习线程从消息队列中读出所述以太网报文,解析所述以太网报文的私有头部获取BD字段、源MAC字段和目的端口字段,将BD字段和源MAC字段作为MAC表的键值,设置掩码长度和键值长度一致,掩码的所有bit取值为1,目的端口字段作为MAC表的数据部分,数据部分的匹配动作字段设置为伪存在态,得到所述以太网报文对应的MAC表项;
MAC学习线程将所述MAC表项刷新到TCAM,并在内存中保存MAC表项的镜像。
第三方面,本发明还提供一种MAC地址学习设备,所述MAC地址学习设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的MAC地址学习程序,其中所述MAC地址学习程序被所述处理器执行时,实现如上所述的MAC地址学习方法的步骤。
第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有MAC地址学习程序,其中所述MAC地址学习程序被处理器执行时,实现如上所述的MAC地址学习方法的步骤。
本发明中,从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;检测所述以太网报文是否为学习报文;若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;控制面通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;转发面新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。通过本发明,提升了EVPN业务MAC地址学习的速率,且增强了EVPN业务MAC地址学习的可靠性。
附图说明
图1为本发明实施例方案中涉及的MAC地址学习设备的硬件结构示意图;
图2为本发明MAC地址学习方法一实施例的流程示意图;
图3为本发明MAC地址学习方法一实施例中MAC表的格式示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
第一方面,本发明实施例提供一种MAC地址学习设备。
参照图1,图1为本发明实施例方案中涉及的MAC地址学习设备的硬件结构示意图。本发明实施例中,MAC地址学习设备可以包括处理器1001(例如中央处理器CentralProcessing Unit,CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真WIreless-FIdelity,WI-FI接口);存储器1005可以是高速随机存取存储器(random access memory,RAM),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及MAC地址学习程序。其中,处理器1001可以调用存储器1005中存储的MAC地址学习程序,并执行本发明实施例提供的MAC地址学习方法。
第二方面,本发明实施例提供了一种MAC地址学习方法。
一实施例中,参照图2,图2为本发明MAC地址学习方法一实施例的流程示意图。如图2所示,MAC地址学习方法包括:
步骤S10,从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;
本实施例中,从当前站点的报文入口接收以太报文,该报文入口的属性是二层接口,关联EVPN业务。
步骤S20,检测所述以太网报文是否为学习报文;
本实施例中,从报文入口接收以太网报文后,需要进一步检测该以太网报文是否为学习报文。具体的,学习报文具有对应的属性,可通过以太网报文的属性确定其是否为学习报文。
进一步地,一实施例中,步骤S20包括:
获取所述以太网报文的源MAC和目的MAC;使用所述报文入口关联的BD加上所述以太网报文的源MAC作为键值查询TCAM中的MAC表;若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
本实施例中,对从报文入口接收的以太网报文进行解析,获取该以太网报文的源MAC和目的MAC,使用报文入口关联的BD加上该以太网报文的源MAC作为键值查询TCAM中的MAC表,然后根据查询结果的匹配动作字段确定以太网报文是否为学习报文。具体的,若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
进一步地,一实施例中,MAC表的格式定义为:键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
本实施例中,参照图3,图3为本发明MAC地址学习方法一实施例中MAC表的格式示意图。如图3所示,MAC表的键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
其中,匹配动作字段取值定义为:取值0表示默认态,取值1表示伪存在态,取值2表示转发态,取值3表示学习态。根据匹配动作字段处理以太网报文的流程可规定为:匹配动作字段为0或者3的话,则确定以太网报文为学习报文,并上送至收包线程;匹配动作字段为1,则丢弃报文;匹配动作字段为2,则使用BD字段加上以太网报文的目的MAC字段作为键值查询TCAM的MAC表项继续转发以太网报文。
步骤S30,若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;
本实施例中,在收包线程中注册学习报文回调函数,在以太网报文为学习报文时,通过学习报文回调函数将以太网报文存入消息队列。具体的,收包线程接收到上送的以太网报文后,轮询回调函数,进入学习报文回调函数,学习报文回调通过解析上送的以太网报文的私有头部获取上送报文的类型,如果不是MAC学习报文类型则跳过不处理,只处理MAC学习报文。学习报文回调函数将以太网报文发送到MAC消息队列,并通知MAC学习线程处理MAC消息队列。然后,将以太网报文重组打包发送至控制面。
进一步地,一实施例中,所述将所述以太网报文重组打包发送至控制面的步骤包括:
将所述以太网报文私有头部中的有效字段取出存入包缓存中,包缓存的第一个字节定义为计数器,表示有效字段个数,有效字段是定长的,存入包缓存后,计数器自加1,包缓存偏移固定长度,计数器到达门限值后,调用组件发包回调接口将重组后的所述以太网报文发送到控制面。
本实施例中,将以太网报文私有头部中的源MAC等有效字段取出存入包缓存中,包缓存的第一个字节定义为计数器,表示有效字段个数,有效字段是定长的,存入包缓存后,计数器自加1,包缓存偏移固定长度,计数器到达门限值后,调用组件发包回调接口将重组后的以太网报文发送到控制面。
步骤S40,转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;
本实施例中,转发面新建MAC学习线程,MAC学习线程收到学习回调函数发送的消息后,从MAC消息队列中读出以太网报文,解析以太网报文的私有头部获取BD字段、源MAC字段和目的端口字段,将BD字段和源MAC字段作为MAC表的键值,掩码长度和键值长度一致,掩码的所有bit取值为1,目的端口字段作为MAC表的数据部分,数据部分的匹配动作字段设置为伪存在态,这样操作就可以将以太网报文转化为一条如图3所示的MAC表项。将以太网报文转化为MAC表项后,MAC学习线程将该MAC表项刷新到TCAM,并在内存中保存MAC表项的镜像。
其中,MAC学习线程刷新MAC表项前先查询TCAM中的MAC表项,查询结果的匹配动作是默认态的话,在MAC表项规格内分配一个可用的镜像索引,填充到MAC表项的数据部分,镜像索引的范围是[1,MAC表项规格],然后将MAC表项下发到TCAM中;查询结果的匹配动作是学习态的话,镜像索引赋值为查询到的镜像索引,填充到MAC表项的数据部分,然后将MAC表项下发到TCAM中;查询结果的匹配动作是转发态或伪存在态的话,不分配镜像索引,并且不将MAC表项下发到TCAM中。
其中,MAC学习线程在内存中保存MAC表项的镜像的规则是:镜像索引未分配,则不将MAC表项保存在镜像缓存;镜像索引已分配,则按照镜像索引将MAC表项保存在镜像缓存中。
进一步地,一实施例中,步骤S40包括:
转发面新建MAC学习线程;MAC学习线程从消息队列中读出所述以太网报文,解析所述以太网报文的私有头部获取BD字段、源MAC字段和目的端口字段,将BD字段和源MAC字段作为MAC表的键值,设置掩码长度和键值长度一致,掩码的所有bit取值为1,目的端口字段作为MAC表的数据部分,数据部分的匹配动作字段设置为伪存在态,得到所述以太网报文对应的MAC表项;MAC学习线程将所述MAC表项刷新到TCAM,并在内存中保存MAC表项的镜像。
步骤S50,控制面通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;
本实施例中,控制面通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,其中,BGP是自治系统间的路由协议,BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策。同时,将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态,即将匹配动作字段设置为转发态对应的值。
步骤S60,转发面新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。
本实施例中,转发面新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,从起始的镜像索引开始,按照镜像索引访问镜像缓存并读取MAC表项,通过读取的键值查询TCAM中的MAC表项,查询结果的匹配动作是伪存在态,则将匹配动作设置为学习态,即将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,然后将该经过匹配动作字段修改的MAC表项下发到TCAM中;查询结果的匹配动作是转发态,则将MAC表项的镜像删除,并且不将MAC表项下发到TCAM中。镜像索引递增,MAC表项的镜像存在,则通过镜像的键值查询TCAM的MAC表项,如上所述根据查询结果的匹配动作做相应处理,直到镜像索引等于MAC表项规格终止。
本实施例中,从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;检测所述以太网报文是否为学习报文;若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;控制面通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;转发面新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。通过本实施例,将MAC表项定义成TCAM表而不是HASH表,避免了HASH计算和HASH冲突的情况,提高了MAC表项的读写性能;重组打包以太网报文减少了以太网报文上送数量,提高了控制面处理以太网报文的性能以及信令通道的带宽利用率;MAC学习线程刷新MAC表项的伪存在态,防止了以太网报文重复上送,提升了以太网报文的学习速率,同时以线性表的方式保存MAC表项的镜像,方便读取和修改MAC表项,并且镜像索引可以保证保存的镜像不重复;老化线程刷新MAC表项的学习态,周期上送学不到的本地MAC到控制面,直到学到所有的本地MAC,增强了MAC学习的可靠性。
第三方面,本发明实施例还提供一种MAC地址学习装置。
一实施例中,MAC地址学习装置包括:
接收模块,用于从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;
检测模块,用于检测所述以太网报文是否为学习报文;
转发模块,用于若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;
转发面,用于新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;
控制面,用于通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;
转发面,还用于新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。
进一步地,一实施例中,所述检测模块,用于:
获取所述以太网报文的源MAC和目的MAC;
使用所述报文入口关联的BD加上所述以太网报文的源MAC作为键值查询TCAM中的MAC表;
若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
进一步地,一实施例中,所述MAC表的格式定义为:键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
进一步地,一实施例中,转发模块,用于将所述以太网报文私有头部中的有效字段取出存入包缓存中,包缓存的第一个字节定义为计数器,表示有效字段个数,有效字段是定长的,存入包缓存后,计数器自加1,包缓存偏移固定长度,计数器到达门限值后,调用组件发包回调接口将重组后的所述以太网报文发送到控制面。
进一步地,一实施例中,转发面,用于:
新建MAC学习线程;
MAC学习线程从消息队列中读出所述以太网报文,解析所述以太网报文的私有头部获取BD字段、源MAC字段和目的端口字段,将BD字段和源MAC字段作为MAC表的键值,设置掩码长度和键值长度一致,掩码的所有bit取值为1,目的端口字段作为MAC表的数据部分,数据部分的匹配动作字段设置为伪存在态,得到所述以太网报文对应的MAC表项;
MAC学习线程将所述MAC表项刷新到TCAM,并在内存中保存MAC表项的镜像。
其中,上述MAC地址学习装置中各个模块的功能实现与上述MAC地址学习方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
第四方面,本发明实施例还提供一种可读存储介质。
本发明可读存储介质上存储有MAC地址学习程序,其中所述MAC地址学习程序被处理器执行时,实现如上述的MAC地址学习方法的步骤。
其中,MAC地址学习程序被执行时所实现的方法可参照本发明MAC地址学习方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种MAC地址学习方法,其特征在于,所述MAC地址学习方法包括:
从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;
检测所述以太网报文是否为学习报文;
若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;
转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;
控制面通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;
转发面新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。
2.如权利要求1所述的MAC地址学习方法,其特征在于,所述检测所述以太网报文是否为学习报文的步骤包括:
获取所述以太网报文的源MAC和目的MAC;
使用所述报文入口关联的BD加上所述以太网报文的源MAC作为键值查询TCAM中的MAC表;
若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
3.如权利要求2所述的MAC地址学习方法,其特征在于,所述MAC表的格式定义为:键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
4.如权利要求1所述的MAC地址学习方法,其特征在于,所述将所述以太网报文重组打包发送至控制面的步骤包括:
将所述以太网报文私有头部中的有效字段取出存入包缓存中,包缓存的第一个字节定义为计数器,表示有效字段个数,有效字段是定长的,存入包缓存后,计数器自加1,包缓存偏移固定长度,计数器到达门限值后,调用组件发包回调接口将重组后的所述以太网报文发送到控制面。
5.如权利要求1所述的MAC地址学习方法,其特征在于,所述转发面新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像的步骤包括:
转发面新建MAC学习线程;
MAC学习线程从消息队列中读出所述以太网报文,解析所述以太网报文的私有头部获取BD字段、源MAC字段和目的端口字段,将BD字段和源MAC字段作为MAC表的键值,设置掩码长度和键值长度一致,掩码的所有bit取值为1,目的端口字段作为MAC表的数据部分,数据部分的匹配动作字段设置为伪存在态,得到所述以太网报文对应的MAC表项,将所述MAC表项刷新到TCAM,并在内存中保存MAC表项的镜像。
6.一种MAC地址学习装置,其特征在于,所述MAC地址学习装置包括:
接收模块,用于从报文入口接收以太网报文,所述报文入口的属性是二层接口,关联EVPN业务;
检测模块,用于检测所述以太网报文是否为学习报文;
转发模块,用于若所述以太网报文为学习报文,则通过收包线程中的学习报文回调函数将所述以太网报文存入消息队列,然后将所述以太网报文重组打包发送至控制面;
转发面,用于新建MAC学习线程,通过MAC学习线程将消息队列中的以太网报文转化为MAC表项并写入TCAM,并在内存中保存MAC表项的镜像;
控制面,用于通过上送的经过重组打包的以太网报文学到本地MAC后,通过BGP通告给远端,同时将本地MAC表项下发给转发面,转发面适配层将本地MAC表项写入TCAM,设置匹配动作为转发态;
转发面,还用于新建老化线程,老化线程周期性遍历MAC表项的镜像缓存,将匹配动作字段为伪存在态对应的值的MAC表项的匹配动作字段修改为学习态对应的值,并将匹配动作字段修改为学习态对应的值的MAC表项写入TCAM。
7.如权利要求6所述的MAC地址学习装置,其特征在于,所述检测模块,用于:
获取所述以太网报文的源MAC和目的MAC;
使用所述报文入口关联的BD加上所述以太网报文的源MAC作为键值查询TCAM中的MAC表;
若查询结果的匹配动作字段为默认态或学习态对应的值,则确定以太网报文为学习报文。
8.如权利要求7所述的MAC地址学习装置,其特征在于,所述MAC表的格式定义为:键值部分由BD字段、MAC字段和PAD填充字段组成,掩码部分的长度和键值部分一致,掩码的所有bit取值为1,数据部分由匹配动作字段、目的端口字段和镜像索引字段组成。
9.一种MAC地址学习设备,其特征在于,所述MAC地址学习设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的MAC地址学习程序,其中所述MAC地址学习程序被所述处理器执行时,实现如权利要求1至5中任一项所述的MAC地址学习方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有MAC地址学习程序,其中所述MAC地址学习程序被处理器执行时,实现如权利要求1至5中任一项所述的MAC地址学习方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111026518.9A CN113765806B (zh) | 2021-09-02 | 2021-09-02 | Mac地址学习方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111026518.9A CN113765806B (zh) | 2021-09-02 | 2021-09-02 | Mac地址学习方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113765806A true CN113765806A (zh) | 2021-12-07 |
CN113765806B CN113765806B (zh) | 2022-09-02 |
Family
ID=78792631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111026518.9A Active CN113765806B (zh) | 2021-09-02 | 2021-09-02 | Mac地址学习方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113765806B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527529A (zh) * | 2024-01-05 | 2024-02-06 | 平湖科谱激光科技有限公司 | 一种可自动恢复正常的以太网数据存储方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080008182A1 (en) * | 2006-07-04 | 2008-01-10 | Huawei Technologies Co., Ltd. | Method for Ethernet Data Frame Learning and Forwarding, Ethernet Network and Bridge |
CN103117931A (zh) * | 2013-02-21 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
US20170201389A1 (en) * | 2016-01-07 | 2017-07-13 | Juniper Networks, Inc | System for avoiding traffic flooding due to asymmetric mac learning and achieving predictable convergence for pbb-evpn active-active redundancy |
US20180248795A1 (en) * | 2017-02-27 | 2018-08-30 | Cisco Technology, Inc. | Adaptive mac grouping and timeout in evpn environments using machine learning |
CN111327717A (zh) * | 2020-01-20 | 2020-06-23 | 新华三大数据技术有限公司 | 一种mac地址学习方法及装置 |
WO2021013233A1 (zh) * | 2019-07-24 | 2021-01-28 | 深圳市中兴微电子技术有限公司 | Evpn报文转发方法、系统、存储介质和终端 |
CN113079095A (zh) * | 2020-01-06 | 2021-07-06 | 烽火通信科技股份有限公司 | 一种硬件压缩打包提升mac学习速率的方法及系统 |
-
2021
- 2021-09-02 CN CN202111026518.9A patent/CN113765806B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080008182A1 (en) * | 2006-07-04 | 2008-01-10 | Huawei Technologies Co., Ltd. | Method for Ethernet Data Frame Learning and Forwarding, Ethernet Network and Bridge |
CN103117931A (zh) * | 2013-02-21 | 2013-05-22 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
WO2014127605A1 (zh) * | 2013-02-21 | 2014-08-28 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
US20170201389A1 (en) * | 2016-01-07 | 2017-07-13 | Juniper Networks, Inc | System for avoiding traffic flooding due to asymmetric mac learning and achieving predictable convergence for pbb-evpn active-active redundancy |
US20180248795A1 (en) * | 2017-02-27 | 2018-08-30 | Cisco Technology, Inc. | Adaptive mac grouping and timeout in evpn environments using machine learning |
WO2021013233A1 (zh) * | 2019-07-24 | 2021-01-28 | 深圳市中兴微电子技术有限公司 | Evpn报文转发方法、系统、存储介质和终端 |
CN113079095A (zh) * | 2020-01-06 | 2021-07-06 | 烽火通信科技股份有限公司 | 一种硬件压缩打包提升mac学习速率的方法及系统 |
CN111327717A (zh) * | 2020-01-20 | 2020-06-23 | 新华三大数据技术有限公司 | 一种mac地址学习方法及装置 |
Non-Patent Citations (2)
Title |
---|
Y. WANG等: "Reduction of EVPN C-MAC Overload draft-wang-bess-evpn-cmac-overload-reduction-01", 《IETF 》 * |
严智: "基于大二层互连技术的数据中心网络设计与实现", 《电脑迷》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527529A (zh) * | 2024-01-05 | 2024-02-06 | 平湖科谱激光科技有限公司 | 一种可自动恢复正常的以太网数据存储方法及装置 |
CN117527529B (zh) * | 2024-01-05 | 2024-03-19 | 平湖科谱激光科技有限公司 | 一种可自动恢复正常的以太网数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113765806B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109412964B (zh) | 报文控制方法及网络装置 | |
US8812727B1 (en) | System and method for distributed load balancing with distributed direct server return | |
US8234360B2 (en) | System for processing messages to support network telephony services | |
US8743691B2 (en) | Priority aware MAC flow control | |
US9185033B2 (en) | Communication path selection | |
US10257091B2 (en) | Pipeline table identification | |
CN102857491A (zh) | 集管理方案 | |
US20230006909A1 (en) | Cluster wide packet tracing | |
CN113765806B (zh) | Mac地址学习方法、装置、设备及可读存储介质 | |
WO2021088629A1 (zh) | DetNet数据包处理方法及装置 | |
WO2021088813A1 (zh) | 报文封装方法及装置、报文解封装方法及装置 | |
CN109246189B (zh) | 网络数据分发方法及装置、存储介质、服务端 | |
WO2016150020A1 (zh) | 基于调度流标识的报文调度方法和装置 | |
US20190363941A1 (en) | Communication system, communication control method, and communication program | |
JP4316349B2 (ja) | パケット転送経路制御装置および制御プログラム | |
US8396057B2 (en) | Method and apparatus for traffic regulation in a communication network | |
US8238335B2 (en) | Multi-route transmission of packets within a network | |
US10511649B2 (en) | Method and apparatus for efficiently prioritizing elements in a video stream for low-bandwidth transmission | |
CN112398754A (zh) | 数据传输方法、装置、介质、电子设备及网络接入设备 | |
CN114567589B (zh) | 路由上报的识别方法及装置 | |
CN115242892B (zh) | 一种流标识获取方法、装置、设备及介质 | |
CN111614791B (zh) | 用于实体链接分析的接入装置及其方法 | |
US20190104074A1 (en) | Mapping network frame flows to classes of service to minimize network frame flow disruption | |
US20090323548A1 (en) | Method, system and terminal for determining qos level | |
US9917764B2 (en) | Selective network address storage within network device forwarding table |
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 |