[0053] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0054] 需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0055] 在本发明中,设定OLT系统能够显示32768bits,也就是32K条MAC地址信息。
[0056] MAC地址信息条目的格式如表1所示。
[0057] 表1、MAC地址信息条目的格式
[0058]MAC地址(6字节) VLAN(2字节) SLOT/PON/ONU(3字节)
xx xx xx xx xx xx 1-4096 1-12/1-16/1-256
[0059] 在每一个MAC地址信息中,包括6个字节的MAC地址、2个字节的VLAN信息和各1个字节的SLOT/PON/ONU信息。其中,SLOT为线卡槽位信息。VLAN范围为1-4096。
[0060] 分布式OLT系统最多支持12个线卡,每个线卡最多支持16个PON口,每个PON口最多支持256个ONU。
[0061] 线卡能从PON芯片上遍历每个PON口的ONU来学习动态MAC地址,但从PON芯片上获取的MAC地址不包含VLAN信息。线卡能从交换芯片上获取带VLAN信息的MAC地址,但定位不到ONU。
[0062] 参照图2,本发明的分布式OLT系统中显示动态MAC地址表的方法包括以下步骤:
[0063] 步骤S1、设定MAC地址信息的查询参数。
[0064] 具体地,查询参数包括线卡槽位号、PON口ID、ONU ID和VLAN值。
[0065] 步骤S2、主控板建立一个原子任务,发送动态MAC地址信息查询请求至线卡。
[0066] 主控板通过发送动态MAC地址信息查询请求MSC_QUERY_DYNAMIC_MAC_REQ至线卡,来要求线卡查询动态MAC地址信息。
[0067] 具体地,该步骤具体包括以下操作:
[0068] 1)主控板启动定时器。
[0069] 优选地,原子任务的最大允许执行时间为60秒。即定时器设定的最大允许执行时间为60秒。当定时器超时时,结束查询。
[0070] 2)构造动态MAC地址信息查询请求MSC_QUERY_DYNAMIC_MAC_REQ。
[0071] 3)发送动态MAC地址信息查询请求MSC_QUERY_DYNAMIC_MAC_REQ到线卡。
[0072] 其中,由主控板发往线卡的查询动态MAC地址信息的请求命令如表2所示。
[0073] 表2、动态MAC地址信息查询请求
[0074]
[0075] 步骤S3、线卡判断能否执行动态MAC地址信息查询请求,并在能够执行时在自身的交换芯片和PON芯片上获取动态MAC地址信息。
[0076] 具体地,该步骤具体包括以下操作:
[0077] 1)线卡解析动态MAC地址信息查询请求MSC_QUERY_DYNAMIC_MAC_REQ;
[0078] 2)判断该动态MAC地址信息查询请求是否能够被执行,并将判断结果通过响应信息MSC_QUERY_DYNAMIC_MAC_RESP_MSG反馈至主控板。
[0079] 具体地,由线卡发往主控板的动态MAC地址信息查询请求的响应命令如表3所示。
[0080] 表3、动态MAC地址信息查询请求的响应命令
[0081]
[0082] 也就是说,当判断不能够执行时,设置MSC_QUERY_DYNAMIC_MAC_RESP_MSG的成员ret值为0;当判断能够执行时,设置MSC_QUERY_DYNAMIC_MAC_RESP_MSG的成员ret值为1。
[0083] 其中,动态MAC地址信息查询请求MSC_QUERY_DYNAMIC_MAC_REQ不能够执行的情况包括:
[0084] a、MSC_QUERY_DYNAMIC_MAC_REQ_MSG结构不能解析;
[0085] b、PON口ID值不在0到16范围内;
[0086] c、ONU口ID值不在0到256范围内;
[0087] d、VLAN值不在0到4096内;
[0088] e、ONU口ID所指示的ONU不在线或没有授权。
[0089] 对于主控板而言,当接收到响应信息MSC_QUERY_DYNAMIC_MAC_RESP_MSG后,如果响应为能够执行,则继续等待执行结果;如果响应为不能够执行,则结束查询。
[0090] 3)若能够被执行,线卡在自身的交换芯片和PON芯片上获取动态MAC地址信息。
[0091] 具体地,线卡在自身的交换芯片和PON芯片上获取动态MAC地址信息包括以下步骤:
[0092] 31)线卡在交换芯片中获取以MAC地址为索引的带VLAN信息的MAC地址的哈希表;
[0093] 32)遍历每一个PON口,遍历每一个PON口下的ONU;
[0094] 33)查询ONU下学习到的动态MAC地址;
[0095] 34)以MAC地址为索引,在带VLAN信息的MAC地址的哈希表中获取该MAC地址对应的VLAN;
[0096] 35)构造查询结果消息;
[0097] 36)将MAC地址信息存入查询结果消息。
[0098] 步骤S4、当所记录的MAC地址信息的容量大小达到板间通信的一个消息单元容量时,线卡将MAC地址信息打包成一条消息发送给主控板;当获取所有MAC地址信息后,线卡发送一条结束消息给主控板。
[0099] 具体地,当累计MAC地址信息的容量达到板间通信的一个消息单元容量时,标记为部分记录。优选地,板间通信采用UDP通信传输,每个消息单元最大允许传输8K字节。板间通信一个消息单元最多允许传输800条MAC地址信息。这是因为一条MAC地址信息包含6个字节MAC地址、2个字节的VLAN、一个字节PON口信息以及一个字节的ONU信息。由于线卡槽位信息在建立原子任务前就已经确定,所以在此不需要通过线卡传输到主控板。
[0100] 因此,当累计的MAC地址信息数量达到800条后,标记为部分记录。遍历完成后,剩余的MAC地址信息标记为最后一部分MAC地址记录。
[0101] 具体地,由线卡发往主控板的动态MAC地址信息查询结果命令MSC_DYNAMIC_MAC_QUERY_RESULT如表4所示。
[0102] 表4、动态MAC地址信息查询结果命令
[0103]
[0104] 步骤S5、主控板接收线卡发送来的查询结果消息,并在接收到结束消息后,结束原子任务,并将该原子任务收集到的MAC地址信息显示出来。
[0105] 其中,该步骤具体包括以下操作:
[0106] 51)接收查询结果消息,解析该查询结果消息并转存到显示缓存区;
[0107] 52)接收到结果消息后,提交显示缓存区数据到OLT系统管理员显示窗口通过显示进程将该原子任务收集到的MAC地址信息显示出来,同时结束原子任务,终止定时器。
[0108] 例如,OLT系统管理员分屏看到查询到的MAC地址列表的显示效果如下:
[0109]
[0110] 综上所述,本发明的分布式OLT系统中显示动态MAC地址表的方法能够及时显示数据量可能超过64K的MAC地址表,使得分布式OLT系统管理员能够准确及时的察看到系统学习到动态MAC地址;能够定位MAC地址是在具体那个端口或ONU学习到的,便于OLT系统管理员分析和定位问题,为规划网络资源提供参考;且不浪费主控板资源和板间通信资源。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0111] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。