基于VPLS的MAC地址老化的方法及装置技术领域
本发明涉及网络数据通信技术领域,尤其涉及一种基于VPLS的MAC地址
老化的方法及装置。
背景技术
VPLS(Virtual Private LAN Services,虚拟专用局域网业务)是
一种在MPLS(Multi-protocol Label Switching,多协议标签交换
)网络上提供类似LAN(Local Area Network,局域网)的一种业务
,它可以使用户从多个地理位置分散的点同时接入网络,相互访问,
如同这些点直接接入到LAN上一样。VPLS结合了以太网和MPLS技术的优
势,是对传统LAN全部功能的仿真,其主要目的是通过运营商提供的M
PLS网络连接地域上隔离的多个由以太网构成的LAN,使得它们像一个
LAN那样去工作,从而形成虚拟专用网络。
通过MAC地址的学习,每个承载VPN的PE(Provider Edge,运营商边
缘)设备上都会生成相应的MAC地址表,该MAC地址表称作VFI (Vir
tual Forwarding Instance)。PE设备学习到的MAC地址表项如果不
再使用,则需要有老化机制来移除。
老化机制根据PE设备进行MAC地址学习所接收的报文中的源MAC地址进
行处理,其处理过程为:PE设备收到报文时,除了学习源MAC地址外,
对于已经生成的MAC表项,还需要设置“激活”或者“有效”标记,在
一定时间内未被设置“激活”或者“有效”标记的MAC表项,将从MAC
地址表中移除。
目前,网络设备的MAC老化机制一般都是基于硬件自动实现,其优点是
不用消耗CPU资源对每个MAC加时间戳,故效率较高。但是硬件老化机
制功能单一且不灵活,只能对所有的MAC地址采用统一的老化时间,而
传统的VPLS MAC地址老化也是采用和普通的MAC老化机制相同的硬件
机制来实现,因此,不能应付不同VPLS实例配置不同 MAC老化时间的
需求。
发明内容
本发明的主要目的在于提供一种基于VPLS的MAC地址老化的方法及装置
,旨在实现对于不同的VPLS实例配置不同的MAC老化时间,满足业务的
灵活性需求。
为了达到上述目的,本发明提出一种基于VPLS的MAC地址老化的方法,
包括:
在构建VPLS实例后,获取来自远端侧和/或本地侧的报文;
对所述报文进行源MAC地址学习,根据源MAC地址的学习结果,创建或
更新VPLS MAC老化表;
当预先配置的对应所述VPLS实例的老化时间到达后,根据MAC老化软件
链表及所述VPLS MAC老化表进行MAC地址老化操作。
优选地,所述在构建VPLS实例后,获取来自远端和/或本地侧的报文的
步骤之前还包括:
配置VPLS实例的MAC老化时间,保存于所述MAC老化软件链表中。
优选地,所述对报文进行源MAC地址学习,根据源MAC地址的学习结果
,创建或更新VPLS MAC老化表的步骤包括:
获取所述VPLS实例的VPNID;
以所述VPLS实例的VPNID作为键值查找VPN表;
当通过查找结果获取到所述VPLS实例使能VPLS MAC老化功能时,根据
所述VPNID及从所述报文中解析出的MAC源地址查询MAC地址表;
若所述MAC地址表中存在与所述源MAC地址对应的MAC表项,则将所述V
PLS MAC老化表中对应的Refresh标记置位;否则进行MAC地址学习上
报流程,同时创建VPLS MAC老化表。
优选地,所述获取VPLS实例的VPNID的步骤包括:
当所述报文为本地侧报文时,通过查询接口属性表获取所述VPLS实例
的VPNID;
当所述报文为远端侧报文时,通过查询标签表获取所述VPLS实例的VP
NID。
优选地,所述进行MAC地址学习上报流程包括:
当学习到一个新的MAC表项时,将具有相同VPNID的MAC表项添加到所述
MAC老化软件链表中对应位置,并顺序分配一统计寄存器地址至所述
MAC老化软件链表、VPLS MAC老化表及MAC地址表,添加相应的表项。
优选地,所述根据MAC老化软件链表及所述VPLS MAC老化表进行MAC地
址老化操作的步骤包括:
遍历MAC老化软件链表中所述VPLS实例的MAC地址;
获取所述MAC地址对应的统计寄存器地址;
根据所述MAC地址对应的统计寄存器地址,查询所述更新后的VPLS M
AC老化表;
若所述VPLS MAC老化表中所述统计寄存器地址对应的Refresh标记未
置位,则删除所述MAC老化软件链表、MAC地址表以及VPLS MAC老化表
中对应的MAC表项;
若所述VPLS MAC老化表中所述统计寄存器地址对应的Refresh标记置
位,则将Refresh清零。
本发明还提出一种基于VPLS的MAC地址老化的装置,包括:
接收及转发模块,用于在构建VPLS实例后,获取来自远端侧和/或本地
侧的报文;
查询及操作模块,用于对所述报文进行源MAC地址学习,根据源MAC地
址的学习结果,创建或更新VPLS MAC老化表;
老化处理模块,用于当预先配置的对应所述VPLS实例的老化时间到达
后,根据MAC老化软件链表及所述VPLS MAC老化表进行MAC地址老化操
作。
优选地,所述老化处理模块还用于配置VPLS实例的MAC老化时间,保存
于所述MAC老化软件链表中。
优选地,所述查询及操作模块包括:
获取单元,用于获取所述VPLS实例的VPNID;
第一查找单元,用于以所述VPLS实例的VPNID查找VPN表;
第二查找单元,用于当通过查找结果获取到所述VPLS实例使能VPLS
MAC老化功能时,根据所述VPNID及从所述报文中解析出的MAC源地址查
询MAC地址表;
学习处理单元,用于当所述MAC地址表中存在与所述源MAC地址对应的
MAC表项时,将所述VPLS MAC老化表中对应的Refresh标记置位;否则
进行MAC地址学习上报流程,同时创建VPLS MAC老化表。
优选地,所述获取单元还用于当所述报文为本地侧报文时,通过查询
接口属性表获取所述VPLS实例的VPNID;当所述报文为远端侧报文时,
通过查询标签表获取所述VPLS实例的VPNID。
优选地,所述学习处理单元还用于当学习到一个新的MAC表项时,将具
有相同VPNID的MAC表项添加到所述MAC老化软件链表中对应位置,并顺
序分配一统计寄存器地址至所述MAC老化软件链表、VPLS MAC老化表
及MAC地址表,添加相应的表项。
优选地,所述老化处理模块包括:
遍历单元,用于遍历MAC老化软件链表中所述VPLS实例的MAC地址;
地址获取单元,用于获取所述MAC地址对应的统计寄存器地址;
第三查询单元,用于根据所述MAC地址对应的统计寄存器地址,查询所
述更新后的VPLS MAC老化表;
老化单元,用于当所述VPLS MAC老化表中所述统计寄存器地址对应的
Refresh标记未置位,则删除所述MAC老化软件链表、MAC地址表以及V
PLS MAC老化表中对应的MAC表项;当所述VPLS MAC老化表中所述统
计寄存器地址对应的Refresh标记置位,则将Refresh清零。
本发明提出的一种基于VPLS的MAC地址老化的方法及装置,在构建VPL
S实例后,获取来自远端侧和/或本地侧的报文进行源MAC地址学习;根
据学习结果创建或者更新VPLS MAC老化表;当预先配置的对应所述V
PLS实例的老化时间到达后,根据MAC老化软件链表及所述VPLS MAC老
化表进行MAC地址老化操作,由此针对不同的VPLS实例可以按需分别配
置不同的MAC老化时间,解决了所有VPLS实例只能采用同一个老化时间
的局限,更能满足业务的灵活性需求。
附图说明
图1是本发明基于VPLS的MAC地址老化的方法一实施例的流程示意图;
图2a是本发明的VPLS MAC老化软件表的初始化状态示意图;
图2b是本发明的VPLS MAC老化软件表配置老化时间后的状态示意图;
图2c是本发明的VPLS MAC老化软件表添加MAC地址的状态示意图;
图3是本发明基于VPLS的MAC地址老化的方法一实施例中对报文进行源
MAC地址学习,根据源MAC地址的学习结果,创建或更新VPLS MAC老化
表的流程示意图;
图4是本发明基于VPLS的MAC地址老化的方法一实施例中根据MAC老化软
件链表及所述VPLS MAC老化表进行MAC地址老化操作的流程示意图;
图5是本发明基于VPLS的MAC地址老化的方法另一实施例的流程示意图
;
图6是本发明基于VPLS的MAC地址老化的装置一实施例的结构示意图;
图7是本发明基于VPLS的MAC地址老化的装置一实施例中查询及操作模
块的结构示意图;
图8是本发明基于VPLS的MAC地址老化的装置一实施例中老化处理模块
的结构示意图。
为了使发明的技术方案更加清楚、明了,下面将结合附图作进一步详
述。
具体实施方式
本发明实施例的解决方案主要是:在构建VPLS实例后,接收来自远端
侧和/或本地侧的报文进行MAC地址查询;根据查询结果创建或者更新
VPLS MAC老化表;当预先配置的对应所述VPLS实例的老化时间到达后
,根据MAC老化软件链表及所述VPLS MAC老化表进行MAC地址老化操作
,以实现对于不同的VPLS实例可以按需分别配置不同的MAC老化时间,
满足业务的灵活性需求。
如图1所示,本发明一实施例提出一种基于VPLS的MAC地址老化的方法
,包括:
步骤S101,在构建VPLS实例后,获取来自远端侧和/或本地侧的报文;
步骤S102,对所述报文进行源MAC地址学习,根据源MAC地址的学习结
果,创建或更新VPLS MAC老化表;
VPLS实例的构建就是在对应的PE之间建立起伪线连接,需要定义相应
的伪线控制信令,其可通过隧道建立信令的扩展实现。在建立起VPLS
实例后,PE将承担起仿真网桥的功能,将客户某一区域LAN经由AC送入
的以太网帧转发至适当的伪线,即可送达目的区域LAN,由此完成客户
不同区域LAN的互联。通常,每个VPLS实例都唯一的对应一个实例号V
PNID。
本实施例方法运行环境涉及接收及转发模块、查询及操作模块以及老
化处理模块。
在构建VPLS实例后,接收及转发模块接收来自远端侧和/或本地侧的报
文,查询及操作模块进行MAC地址查询及转发操作。
如果没有查询到该MAC地址,则上报学习该MAC地址,同时创建VPLS
MAC老化表;如果查询到该MAC地址,则根据查询结果更新VPLS MAC老
化表的刷新标记位。
本实施例预先在本地创建了MAC地址表以及MAC老化软件链表,并在构
建VPLS实例后,预先为每个VPLS实例配置有MAC老化时间,每个VPLS实
例的MAC老化时间与该VPLS实例的实例号唯一对应。
其中,VPLS MAC老化表如下表1所示,MAC地址表如下表2所示, VP
LS MAC老化软件表的初始化状态如图2a所示,VPLS MAC老化软件表
的配置老化时间后的状态如图2b所示,VPLS MAC老化软件表的添加M
AC地址的状态如图2c所示。
KEY
Result
CNT1(起始地址+1)
Refresh标记(0:表示未被命中1:表示命中过)
CNT2(起始地址+2)
Refresh标记(0:表示未被命中1:表示命中过)
CNT3(起始地址+3)
Refresh标记(0:表示未被命中1:表示命中过)
表1 VPLS MAC 老化表
Vpls实例号VpnId
Mac
出接口信息
Cnt值
表2 MAC地址表
上述表1及表2中 cnt值为统计寄存器地址 。
在配置VPLS实例MAC老化时间时,会将该实例号所配置的MAC老化
时间下发给老化处理模块。老化处理模块记录各个VPLS实例所配置的
老化时间至MAC老化软件链表中,并维护该MAC老化软件链表,同时维
护VPLS MAC老化表以供查询及操作模块操作。
查询及操作模块在接收到来自远端侧和/或本地侧的报文进行MAC地址
查询时, 若没有查询到该MAC地址,则上报学习该MAC地址,同时创
建VPLS MAC老化表,当学习到一个新的MAC表项时,将具有相同VPNI
D的MAC表项添加到同一个双向链表中,同时顺序分配一个统计寄存器
的地址,添加VPLS MAC老化表的一条表项。
若学习到的不是新的MAC表项,则将VPLS MAC老化表中对应的Refres
h标记置为1,表示该MAC表项被命中。
查询及操作模块根据报文的VPNID+MAC地址进行VPLS MAC老化表的更
新操作,并将报文送往接收及转发模块进行相应的转发。
步骤S103,当预先配置的对应所述VPLS实例的老化时间到达后,根据
MAC老化软件链表及所述VPLS MAC老化表进行MAC地址老化操作。
老化处理模块通过配置的老化时间来轮询遍历MAC老化软件链表,将满
足条件的VPLS MAC上报进行统一删除处理。
具体地,如图3所示,上述步骤S102包括:
步骤S1011,获取所述VPLS实例的VPNID;
其中,获取VPLS实例的VPNID的过程为:若所述报文为本地侧报文,则
通过查询接口属性表获取所述VPLS实例的VPNID;若所述报文为远端侧
报文,则通过查询标签表获取所述VPLS实例的VPNID。
步骤S1012,以所述VPLS实例的VPNID作为键值查找VPN表;
步骤S1013,判断所述VPLS实例是否使能VPLS MAC老化功能;若是,
则进入步骤S1014;否则,进入步骤S1015;
步骤S1014,进入普通转发流程;
步骤S1015,根据所述VPNID及从报文中解析出的MAC地址查询MAC地址
表;
步骤S1016,判断所述MAC地址表中是否存在与所述源MAC地址对应的M
AC表项,若是,则进入步骤S1017;否则,进入步骤S1018;
步骤S1017,将所述VPLS MAC老化表中对应的Refresh标记置为1;
步骤S1018,进行MAC地址学习上报流程。
所述进行MAC地址学习上报流程包括:当学习到一个新的MAC表项时,
将具有相同VPNID的MAC表项添加到所述MAC老化软件链表中对应位置,
并顺序分配一统计寄存器地址至所述MAC老化软件链表、VPLS MAC老
化表及MAC地址表,添加相应的表项。
如图4所示,上述步骤S103中根据MAC老化软件链表及所述VPLS MAC老
化表进行MAC地址老化操作的步骤包括:
步骤S1031,遍历MAC老化软件链表中所述VPLS实例的MAC地址;
步骤S1032,获取所述MAC地址对应的统计寄存器地址;
步骤S1033,根据所述MAC地址对应的统计寄存器地址,查询所述更新
后的VPLS MAC老化表;
步骤S1034,判断所述VPLS MAC老化表中所述统计寄存器地址对应的
Refresh标记置位是否为0;若是,则进入步骤S1035;否则,进入步骤
S1036;
步骤S1035,删除所述MAC老化软件链表、MAC地址表以及VPLS MAC老
化表中对应的MAC表项;
步骤S1036,将Refresh清零。
如果refresh 为0,则表示在老化时间内,该MAC地址没有被命中过,
故删除该MAC地址;如果refresh 为1,则表示在老化时间内,该MAC
地址被命中过,故不需要删除该MAC地址,同时老化处理模块将其ref
resh清零。
如图5所示,本发明另一实施例提出一种基于VPLS的MAC地址老化的方
法,在上述实施例的基础上,在上述步骤S101中构建VPLS实例后,获
取来自远端和/或本地侧的报文的步骤之前还包括:
步骤S100,配置VPLS实例的MAC老化时间,保存于所述MAC老化软件链
表中。
在本实施例中,在配置老化时间时,老化处理模块记录每个VPLS实例
对应的MAC老化时间,如果配置了该VPLS实例下的老化功能,需要将所
有与该实例相关的MAC表项设置成硬件老化功能disable,防止被普通
的硬件
MAC 老化机制删除该MAC,同时当VPLS MAC有静态MAC时,也不能删
除,需要走正常的流程。
例如,如图2a所示,配置实例名称为VPLS1的MAC老化时间为20S,配置
实例名称为VPLS2的MAC老化时间为60S,配置实例名称为VPLS3的MAC老
化时间为10S,则老化处理模块需要建立一个数据结构用于保存这些信
息。
其中用于保存VPLS实例的老化配置的数据结构为:
更为具体地,本实施例检测老化时间及进行老化操作判断的过程如下
:
设定一循环定时器,启动循环定时器用于检测老化时间。定义循环定
时器的周期为单位时间T(假设一个单位时间T值的大小为10S)。定时
器每tick一次,老化计数器累加一次,当老化计数器等于该实例配置
的老化时间时,将该计数器进行清零操作,同时对该实例所有的MAC进
行遍历操作,老化处理模块判断该MAC的老化refresh标记是否被置位
。
例如,如图2b所示,定时器在经过一个周期后,此时所有实例的老化
计时器都累加了一次,对于实例vpls3,老化时间正好为10S,需要对
其进行MAC遍历操作,同时需要把老化计数器进行归零操作。
此外,在通过MAC地址学习后更新VPLS MAC老化表时,当学习到一个
新的MAC表项时,驱动将具有相同VPNID的MAC表项添加到同一个双向链
表中,同时顺序分配一个统计寄存器的地址,添加VPLS MAC老化表的
一条表项。
例如,如图2c所示,接收及转发模块收到一系列报文,并学习到三个
新的VPLS MAC,实例为VPLS3对应的VPNID为3,MAC地址分别为macA
, macB,macC,驱动会构建MAC表项。同时,如表1所示,顺序分配他
们的统计寄存器地址为起始地址+1,起始地址+2,起始地址+3。
其中用于存储老化MAC的双向链表的数据结构为:
另外,在VPLS MAC老化软件表遍历操作中,当老化计数器的时间等于
该配置的老化时间时,会触发该实例下的MAC老化功能。
例如,当实例Vpls3的老化时间到达10S时,将对该实例下的所有MAC表
项进行遍历操作,判断是否需要对该MAC表项进行老化操作。通过双向
链表中的该MAC对应的统计寄存器地址,来查询VPLS MAC老化表,来
判断该表项是否需要被老化。
如果refresh 为0,则表示在老化时间内,该MAC没有被命中过,故删
除该MAC;如果refresh 为1,则表示在老化时间内,该MAC被命中过
,故不需要删除该MAC,同时老化处理模块将其refresh 清零。
本实施例实现了针对不同的VPLS实例可以按需分别配置不同的MAC老化
时间,解决了所有VPLS实例只能采用同一个老化时间的局限,更能满
足业务的灵活性需求。
如图6所示,本发明一实施例提出一种基于VPLS的MAC地址老化的装
置,包括:接收及转发模块501、查询及操作模块502以及老化处理模
块503,其中:
接收及转发模块501,用于在构建VPLS实例后,获取来自远端侧和/或
本地侧的报文;
查询及操作模块502,用于对所述报文进行源MAC地址学习,根据源MA
C地址的学习结果,创建或更新VPLS MAC老化表;
老化处理模块503,用于当预先配置的对应所述VPLS实例的老化时间到
达后,根据MAC老化软件链表及所述VPLS MAC老化表进行MAC地址老化
操作。
VPLS实例的构建就是在对应的PE之间建立起伪线连接,需要定义相应
的伪线控制信令,其可通过隧道建立信令的扩展实现。在建立起VPLS
实例后,PE将承担起仿真网桥的功能,将客户某一区域LAN经由AC送入
的以太网帧转发至适当的伪线,即可送达目的区域LAN,由此完成客户
不同区域LAN的互联。通常,每个VPLS实例都唯一的对应一个实例号V
PNID。
在构建VPLS实例后,接收及转发模块501接收来自远端侧和/或本地侧
的报文,由查询及操作模块502进行MAC地址查询及转发操作。
如果没有查询到该MAC地址,则上报学习该MAC地址,同时创建VPLS
MAC老化表;如果查询到该MAC地址,则根据查询结果更新VPLS MAC老
化表的刷新标记位。
本实施例预先在本地创建了MAC地址表以及MAC老化软件链表,并在构
建VPLS实例后,预先为每个VPLS实例配置有MAC老化时间,每个VPLS实
例的MAC老化时间与该VPLS实例的实例号唯一对应。
其中,VPLS MAC老化表如上表1所示,MAC地址表如上表2所示, VP
LS MAC老化软件表的初始化状态如图2a所示,VPLS MAC老化软件表
的配置老化时间后的状态如图2b所示,VPLS MAC老化软件表的添加M
AC地址的状态如图2c所示。
上述表1及表2中 cnt值为统计寄存器地址 。
在配置VPLS实例MAC老化时间时,会将该实例号所配置的MAC老化时间
下发给老化处理模块503。老化处理模块503记录各个VPLS实例所配置
的老化时间至MAC老化软件链表中,并维护该MAC老化软件链表,同时
维
护VPLS MAC老化表以供查询及操作模块502操作。
查询及操作模块502在对来自远端侧和/或本地侧的报文进行MAC地址查
询时,若没有查询到该MAC地址,则上报学习该MAC地址,同时创建VP
LS MAC老化表,当学习到一个新的MAC表项时,将具有相同VPNID的M
AC表项添加到同一个双向链表中,同时顺序分配一个统计寄存器的地
址,添加VPLS MAC老化表的一条表项。
若学习到的不是新的MAC表项,则将VPLS MAC老化表中对应的Refres
h标记置为1,表示该MAC表项被命中。
查询及操作模块502根据报文的VPNID+MAC地址进行VPLS MAC老化表的
更新操作,并将报文送往接收及转发模块501进行相应的转发。
老化处理模块503通过配置的老化时间来轮询遍历MAC老化软件链表,
将满足条件的VPLS MAC上报,进行统一删除处理。
具体地,如图7所示,所述查询及操作模块501包括:获取单元5011、
第一查找单元5012、第二查找单元5013以及学习处理单元5014,其中
:
获取单元5011,用于获取所述VPLS实例的VPNID;
第一查找单元5012,用于以所述VPLS实例的VPNID作为键值查找VPN表
;
第二查找单元5013,用于当通过查找结果获取到所述VPLS实例使能VP
LS MAC老化功能时,根据所述VPNID及从所述报文中解析出的MAC地址
查询MAC地址表;
学习处理单元5014,用于当所述MAC地址表中存在与所述源MAC地址对
应的MAC表项时,将所述VPLS MAC老化表中对应的Refresh标记置位;
否则进行MAC地址学习上报流程,同时创建VPLS MAC老化表。
所述获取单元5011获取VPLS实例的VPNID的过程为:当所述报文为本地
侧报文时,通过查询接口属性表获取所述VPLS实例的VPNID;当所述报
文为远端侧报文时,通过查询标签表获取所述VPLS实例的VPNID。
具体地,所述学习处理单元5014还用于当学习到一个新的MAC表项时,
将具有相同VPNID的MAC表项添加到所述MAC老化软件链表中对应位置,
并顺序分配一统计寄存器地址至所述MAC老化软件链表、VPLS MAC老
化
表及MAC地址表,添加相应的表项。
如图8所示,所述老化处理模块503包括:遍历单元5031、地址获取单
元5032、第三查询单元5033以及老化单元5034,其中:
遍历单元5031,用于遍历MAC老化软件链表中所述VPLS实例的MAC地址
;
地址获取单元5032,用于获取所述MAC地址对应的统计寄存器地址;
第三查询单元5033,用于根据所述MAC地址对应的统计寄存器地址,查
询所述更新后的VPLS MAC老化表;
老化单元5034,用于当所述VPLS MAC老化表中所述统计寄存器地址对
应的Refresh标记未置位时,删除所述MAC老化软件链表、MAC地址表以
及VPLS MAC老化表中对应的MAC表项;当所述VPLS MAC老化表中所述
统计寄存器地址对应的Refresh标记置位时,将Refresh清零。
进一步,所述老化处理模块503还用于配置VPLS实例的MAC老化时间,
保存于所述MAC老化软件链表中。
在配置老化时间时,老化处理模块503记录每个VPLS实例对应的MAC老
化时间,如果配置了该VPLS实例下的老化功能,需要将所有与该实例
相关的MAC表项设置成硬件老化功能disable,防止被普通的硬件MAC
老化机制删除该MAC,同时当VPLS MAC有静态MAC时,也不能删除,需
要走正常的流程。
例如,如图2a所示,配置实例名称为VPLS1的MAC老化时间为20S,配置
实例名称为VPLS2的MAC老化时间为60S,配置实例名称为VPLS3的MAC老
化时间为10S,则老化处理模块503需要建立一个数据结构用于保存这
些信息。
其中用于保存VPLS实例的老化配置的数据结构为:
更为具体地,本实施例检测老化时间及进行老化操作判断的过程如下
:
设定一循环定时器,启动循环定时器用于检测老化时间。定义循环定
时器的周期为单位时间T(假设一个单位时间T值的大小为10S)。定时
器每tick一次,老化计数器累加一次,当老化计数器等于该实例配置
的老化时间时,将该计数器进行清零操作,同时对该实例所有的MAC进
行遍历操作,老化处理模块503判断该MAC的老化refresh标记是否被置
位。
例如,如图2b所示,定时器在经过一个周期后,此时所有实例的老化
计时器都累加了一次,对于实例vpls3,老化时间正好为10S,需要对
其进行MAC遍历操作,同时需要把老化计数器进行归零操作。
此外,在通过MAC地址学习后更新VPLS MAC老化表时,当学习到一个
新的MAC表项时,驱动将具有相同VPNID的MAC表项添加到同一个双向链
表中,同时顺序分配一个统计寄存器的地址,添加VPLS MAC老化表的
一条表项。
例如,如图2c所示,接收及转发模块501收到一系列报文,并学习到三
个新的VPLS MAC,实例为VPLS3对应的VPNID为3,MAC地址分别为mac
A, macB,macC,驱动会构建MAC表项。同时,如表1所示,顺序分配
他们的统计寄存器地址为起始地址+1,起始地址+2,起始地址+3。
其中用于存储老化MAC的双向链表的数据结构为:
另外,在VPLS MAC老化软件表遍历操作中,当老化计数器的时间等于
该配置的老化时间时,会触发该实例下的MAC老化功能。
例如,当实例Vpls3的老化时间到达10S时,将对该实例下的所有MAC表
项进行遍历操作,判断是否需要对该MAC表项进行老化操作。通过双向
链表中的该MAC对应的统计寄存器地址,来查询VPLS MAC老化表,来
判断该表项是否需要被老化。
如果refresh 为0,则表示在老化时间内,该MAC没有被命中过,故删
除该MAC;如果refresh 为1,则表示在老化时间内,该MAC被命中过
,故不需要删除该MAC,同时老化处理模块503将其refresh 清零。
本发明实施例基于VPLS的MAC地址老化的方法及装置,在构建VPLS实例
后,接收并转发来自远端侧和/或本地侧的报文,对所述报文进行MAC
地址查询并转发操作;根据查询MAC地址的结果,创建或更新VPLS M
AC老化表;当预先配置的对应所述VPLS实例的老化时间到达后,根据
MAC老化软件链表及所述VPLS MAC老化表进行MAC地址老化操作,由此
针对不同的VPLS实例可以按需分别配置不同的MAC老化时间,解决了所
有VPLS实例只能采用同一个老化时间的局限,更能满足业务的灵活性
需求。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围
,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或
直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利
保护范围内。